List of export hints

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By brunosxs
:warning: Old Version Published before Godot 3 was released.

Hello,
Where can I find a list of all possible hints for var export?

like (NodePath), (bool), (int),(String)

The only thing I found on the documentation was under @Global Scope.PROPERTY_HINT*

Thanks in advance.

I believe it can be any built-in or resource types. Those PROPERTY_HINT_ are use internally by the editor, but I don’t think you can use those for GDScript exports.

vnen | 2016-07-14 15:41

:bust_in_silhouette: Reply From: Vladislav Vorobiev

I guess all built-in types + array types can be exported, you can find list of types here: GDScript reference — Godot Engine (latest) documentation in English

:bust_in_silhouette: Reply From: eska

The docs have a complete list of export hints: GDScript reference — Godot Engine (latest) documentation in English

Not all hints available in C++ are exposed to GDScript, but most are.

The export hints were moved to:
This link

cholasimmons | 2020-09-15 23:59

The page is named “GDScript Exports”. As of 2020, it is here. It contains a long code block of examples.

CharlesMerriam | 2020-10-20 09:15

A list would still have been helpful

takje | 2020-11-21 18:26

:bust_in_silhouette: Reply From: vinod

Declare an array using export hint in a script like this

export(Array) var testarray

Then click on the script attached node and check the property inspector.
Set the size of the exported array to 1 and you’ll see a dropdown listing all the possible things with correct class names.

:wink:

very clever way

brunosxs | 2016-07-26 21:21

It’s been 2 years but I wanna add an improvement here:

export(Resource) var resource

This will save you some clicks.

Dlean Jeans | 2018-08-16 15:31

:bust_in_silhouette: Reply From: 807

This is late, but since this topic is the first search result of google for godot export hints, and I ask google for this hints a lot, i will re-answer that only for googling pourposes:

new hints docs:

#Godot exports hints at oct-19:


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 number

Export can also take a resource type to use as a hint.

export(Texture) var character_face
export(PackedScene) var scene_file

There are many resource types that can be used this way, try e.g. the following to list them:

export(Resource) var resource

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

Named enum values


Editor will enumerate as THING_1, THING_2, ANOTHER_THING.

enum NamedEnum {THING_1, THING_2, ANOTHER_THING = -1}
export (NamedEnum) var x

Strings as paths


String is a path to a file.

export(String, FILE) var f

String is a path to a directory.

export(String, DIR) var f

String is a path to a file, custom filter provided as hint.

export(String, FILE, "*.txt") var f

Using paths in the global filesystem is also possible, but only in scripts in “tool” mode.
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

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 between 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

Colors


Color given as red-green-blue value (alpha will always be 1)

export(Color, RGB) var col

Color given as red-green-blue-alpha value

export(Color, RGBA) var col

Another node in the scene can be exported, too.

export(NodePath) var node

Bit Flags:


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_elements = 0

Exporting Arrays:


Exported array, shared between all instances. Default value must be a constant expression.

export var a = [1, 2, 3]

Exported arrays can specify type (using the same hints as before).

export(Array, int) var ints = [1,2,3]
export(Array, int, "Red", "Green", "Blue") var enums = [2, 1, 0]
export(Array, Array, float) var two_dimensional = [[1.0, 2.0], [3.0, 4.0]]

You can omit the default value, but then it would be null if not assigned.

export(Array) var b
export(Array, PackedScene) var scenes

Typed arrays also work, only initialized empty:

export var vector3s = PoolVector3Array()
export var strings = PoolStringArray()

Regular array, created local for every instance. Default value can include run-time values, but can’t be exported.

var c = [a, 2, 3]

THIS IS A LIFESAVER

RagingDisappointment | 2022-09-17 15:44