Skip to content

Instantly share code, notes, and snippets.

@puppetmaster-
Last active January 5, 2018 14:26
Show Gist options
  • Save puppetmaster-/3b8a2c7941d751bd67551f4b5c2f1941 to your computer and use it in GitHub Desktop.
Save puppetmaster-/3b8a2c7941d751bd67551f4b5c2f1941 to your computer and use it in GitHub Desktop.
Godot: export examples #GODOT #cheatsheet
extends Node2D
# If the exported value assigns a constant or constant expression,
# the type will be inferred and used in the editor
export var number = 5
# Export can take a basic data type as an argument which will be
# used in the editor
export(int) var number2
# Export can also take a resource type to use as a hint
export(Texture) var character_face
# Ein TSCN File man erspart sich das load
export(PackedScene) var scene
export(Curve2D) var action
# Integers and strings hint enumerated values
# Editor will enumerate as 0, 1 and 2
export(int, "Warrior", "Magician", "Thief") var character_class
# Editor will enumerate with string names
export(String, "Rebecca", "Mary", "Leah") var character_name
# Strings as paths
# String is a path to a file
export(String, FILE) var f1
# String is a path to a directory
export(String, DIR) var f2
# String is a path to a file, custom filter provided as hint
export(String, FILE, "*.txt") var f3
# Using paths in the global filesystem is also possible,
# but only in tool scripts (see further below)
# String is a path to a PNG file in the global filesystem
#export(String, FILE, GLOBAL, "*.png") var tool_image
# String is a path to a directory in the global filesystem
#export(String, DIR, GLOBAL) var tool_dir
export(bool) var boolean
# The MULTILINE setting tells the editor to show a large input
# field for editing over multiple lines
export(String, MULTILINE) var text
# Limiting editor input ranges
# Allow integer values from 0 to 20
export(int, 20) var i
# Allow integer values from -10 to 20
export(int, -10, 20) var j
# Allow floats from -10 to 20, with a step of 0.2
export(float, -10, 20, 0.2) var k
# Allow values y = exp(x) where y varies betwee 100 and 1000
# while snapping to steps of 20. The editor will present a
# slider for easily editing the value.
export(float, EXP, 100, 1000, 20) var l
# Floats with easing hint
# Display a visual representation of the ease() function
# when editing
export(float, EASE) var transition_speed
# Color given as Red-Green-Blue value
export(Color, RGB) var col1 # Color is RGB
# Color given as Red-Green-Blue-Alpha value
export(Color, RGBA) var col2 # Color is RGBA
# another node in the scene can be exported too
export(NodePath) var node
# Individually edit the bits of an integer
#export(int, FLAGS) var spell_elements = ELEMENT_WIND | ELEMENT_WATER
# Set any of the given flags from the editor
export(int, FLAGS, "Fire", "Water", "Earth", "Wind") var spell_elements2 = 0
# Exporting arrays
# Exporting arrays works but with an important caveat:
# While regular arrays are created local to every class instance,
# exported arrays are shared between all instances.
# This means that editing them in one instance will cause them to change in all other instances.
# Exported arrays can have initializers, but they must be constant expressions.
# Exported array, shared between all instances.
# Default value must be a constant expression.
export var a=[1,2,3]
# Typed arrays also work, only initialized empty:
export var vector3s = Vector3Array()
export var strings = StringArray()
# Regular array, created local for every instance.
# Default value can include run-time values, but can't
# be exported.
var b = [a,2,3]
func _ready():
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment