The Godot Q&A is currently undergoing maintenance!

Your ability to ask and answer questions is temporarily disabled. You can browse existing threads in read-only mode.

We are working on bringing this community platform back to its full functionality, stay tuned for updates.

godotengine.org | Twitter

+3 votes

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.

in Engine by (234 points)

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.

4 Answers

+10 votes
Best answer

The docs have a complete list of export hints: http://docs.godotengine.org/en/latest/reference/gdscript.html#exports

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

by (1,096 points)
selected by

The export hints were moved to:
This link

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

A list would still have been helpful

+1 vote

I guess all built-in types + array types can be exported, you can find list of types here: http://docs.godotengine.org/en/latest/reference/gdscript.html#built-in-types

by (179 points)
+3 votes

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.

;)

by (751 points)

very clever way

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

export(Resource) var resource

This will save you some clicks.

+9 votes

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:
http://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_exports.html#doc-gdscript-exports

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 THING1, THING2, 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]
by (343 points)
edited by

THIS IS A LIFESAVER

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.