Post

Godot - Syntax cheat sheet

Getting Started with Godot: A GDScript Cheat Sheet

I recently started exploring Godot, and I’ve found that the syntax of GDScript is quite similar to Python. I asked ChatGPT for a cheat sheet, which I’m sharing here for my future self—who tends to forget things easily.

I haven’t tested everything yet, so if I come across any incorrect syntax in this article, I’ll update it accordingly.

Variables and Constants

1
2
3
4
5
6
var my_variable = 10  # Variable declaration
const MY_CONSTANT = 100  # Constant declaration

# Type hinting
var my_int: int = 42
var my_string: String = "Hello, Godot"

Functions

1
2
3
4
5
6
func my_function():
    print("Hello, Godot")

# Parameter and return type specification
func add_numbers(a: int, b: int) -> int:
    return a + b

Conditionals

1
2
3
4
5
6
if condition:
    print("Condition is true")
elif other_condition:
    print("Another condition")
else:
    print("Condition is false")

Loops

1
2
3
4
5
6
7
8
9
# For loop
for i in range(5):
    print(i)  # Outputs: 0, 1, 2, 3, 4

# While loop
var count = 0
while count < 5:
    print(count)
    count += 1

Arrays and Dictionaries

1
2
3
4
5
6
7
8
9
10
# Array
var my_array = [1, 2, 3, 4]
my_array.append(5)  # Add an element

# Dictionary
var my_dict = {
    "name": "Godot",
    "version": 4
}
print(my_dict["name"])  # Outputs: "Godot"

Classes and Inheritance

1
2
3
4
5
6
7
8
9
extends Node2D  # Parent class

# Class variable and function
class_name MyNode

var my_value: int = 0

func _ready():
    print("Node is ready")

Signals

1
2
3
4
5
6
7
8
9
10
11
12
13
# Define a signal
signal my_signal(value)

# Connect the signal
func _ready():
    connect("my_signal", self, "_on_my_signal")

# Emit the signal
emit_signal("my_signal", 42)

# Signal callback function
func _on_my_signal(value):
    print("Signal received with value: ", value)

Node References

1
2
3
4
5
# Reference a node by path
onready var my_node = $NodeName

# Find a child node by path
var child_node = get_node("ChildNodeName")

Scene Transitions

1
2
3
4
5
6
7
# Change scene
get_tree().change_scene("res://scenes/next_scene.tscn")

# Load and instance a scene resource
var scene = load("res://scenes/my_scene.tscn")
var instance = scene.instance()
add_child(instance)

User Input

1
2
3
func _input(event):
    if event.is_action_pressed("ui_accept"):
        print("Accept button pressed")

Playing Audio

1
2
# Play AudioStreamPlayer
$AudioStreamPlayer.play()

Timer

1
2
3
4
5
6
7
# Timer setup
func _ready():
    $Timer.start()

# Timer signal connection
func _on_Timer_timeout():
    print("Timer timed out!")

Random Numbers

1
var rand_value = randi() % 100  # Random value between 0 and 99

Physics Process

1
2
3
func _physics_process(delta):
    # Called every physics frame
    position.x += 100 * delta

GUI Control (Control Node)

1
2
3
4
5
6
# Change text label
$Label.text = "New Text"

# Connect button click event
func _on_Button_pressed():
    print("Button pressed!")
This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.