GDScript
Language for the Godot game engine.
Everything after "#" is a comment.
# A file is a class!
(optional) icon to show in the editor dialogs
rust
@icon("res://path/to/optional/icon.svg")
(optional) class definition
rust
class_name MyClass
Inheritance
rust
extends BaseClass
Member variables
rust
var a = 5
var s = "Hello"
var arr = [1, 2, 3]
var dict = {"key": "value", 2: 3}
var other_dict = {key = "value", other_key = 2}
var typed_var: int
var inferred_type := "String"
Constants
rust
const ANSWER = 42
const THE_NAME = "Charly"
Enums
rust
enum {UNIT_NEUTRAL, UNIT_ENEMY, UNIT_ALLY}
enum Named {THING_1, THING_2, ANOTHER_THING = -1}
Built-in vector types
rust
var v2 = Vector2(1, 2)
var v3 = Vector3(1, 2, 3)
Functions
rust
func some_function(param1, param2, param3):
const local_const = 5
if param1 < local_const:
print(param1)
elif param2 > 5:
print(param2)
else:
print("Fail!")
for i in range(20):
print(i)
while param2 != 0:
param2 -= 1
match param3:
3:
print("param3 is 3!")
_:
print("param3 is not 3!")
var local_var = param1 + 3
return local_var
Functions override functions with the same name on the base/super class.
If you still want to call them, use "super":
rust
func something(p1, p2):
super(p1, p2)
It's also possible to call another function in the super class:
rust
func other_something(p1, p2):
super.something(p1, p2)
Inner class
rust
class Something:
var a = 10
Constructor
rust
func _init():
print("Constructed!")
var lv = Something.new()
print(lv.a)