Attention: Here be dragons
This is the
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
A pre-parsed scene tree path.
A pre-parsed relative or absolute path in a scene tree, for use with Node.get_node and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For example,
"Path2D/PathFollow2D/Sprite2D:texture:size" would refer to the
size property of the
texture resource on the node named
"Sprite2D", which is a child of the other named nodes in the path.
You will usually just pass a string to Node.get_node and it will be automatically converted, but you may occasionally want to parse a path ahead of time with NodePath or the literal syntax
^"path". Exporting a NodePath variable will give you a node selection widget in the properties panel of the editor, which can often be useful.
A NodePath is composed of a list of slash-separated node names (like a filesystem path) and an optional colon-separated list of "subnames" which can be resources or properties.
Some examples of NodePaths include the following:
# No leading slash means it is relative to the current node. ^"A" # Immediate child A ^"A/B" # A's child B ^"." # The current node. ^".." # The parent node. ^"../C" # A sibling node C. ^"../.." # The grandparent node. # A leading slash means it is absolute from the SceneTree. ^"/root" # Equivalent to get_tree().get_root(). ^"/root/Main" # If your main scene's root node were named "Main". ^"/root/MyAutoload" # If you have an autoloaded node or scene.
See also StringName, which is a similar concept for general-purpose string interning.
Note: In the editor, NodePath properties are automatically updated when moving, renaming or deleting a node in the scene tree, but they are never updated at runtime.
Note: In a boolean context, a NodePath will evaluate to
false if it is empty (
NodePath("")). Otherwise, a NodePath will always evaluate to
There are notable differences when using this API with C#. See Différences de l'API C# par rapport à GDScript for more information.
NodePath ( )
get_as_property_path ( ) const
get_concatenated_names ( ) const
get_concatenated_subnames ( ) const