Skip to content
Shop

CommunityJoin Our PatreonDonate

Sponsored Ads

Sponsored Ads

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)

Resources

-Water Shader -Headers for HTML export to Netlify