Work in progress

Godot documentation is being updated to reflect the latest changes in version 4.0. Some documentation pages may still state outdated information. This banner will tell you if you're reading one of such pages.

The contents of this page are up to date. If you can still find outdated information, please open an issue.


Inherits: Node3D < Node < Object

A node that will attach to a bone.


This node will allow you to select a bone for this node to attach to. The BoneAttachment3D node can copy the transform of the select bone, or can override the transform of the selected bone.

The BoneAttachment3D node must either be a child of a Skeleton3D node or be given an external Skeleton3D to use in order to function properly.













get_external_skeleton ( ) const


get_use_external_skeleton ( ) const


on_bone_pose_update ( int bone_index )


set_external_skeleton ( NodePath external_skeleton )


set_use_external_skeleton ( bool use_external_skeleton )

Property Descriptions

int bone_idx = -1

  • void set_bone_idx ( int value )

  • int get_bone_idx ( )

The index of the attached bone.

String bone_name = ""

  • void set_bone_name ( String value )

  • String get_bone_name ( )

The name of the attached bone.

bool override_pose = false

  • void set_override_pose ( bool value )

  • bool get_override_pose ( )

Whether the BoneAttachment3D node will override the bone pose of the bone it is attached to. When set to true, the BoneAttachment3D node can change the pose of the bone. When set to false, the BoneAttachment3D will always be set to the bone's transform.

Method Descriptions

NodePath get_external_skeleton ( ) const

Returns the NodePath to the external Skeleton3D node, if one has been set.

bool get_use_external_skeleton ( ) const

Returns whether the BoneAttachment3D node is using an external Skeleton3D rather than attempting to use its parent node as the Skeleton3D.

void on_bone_pose_update ( int bone_index )

A function that is called automatically when the Skeleton3D the BoneAttachment3D node is using has a bone that has changed its pose. This function is where the BoneAttachment3D node updates its position so it is correctly bound when it is not set to override the bone pose.

void set_external_skeleton ( NodePath external_skeleton )

Sets the NodePath to the external skeleton that the BoneAttachment3D node should use. See set_use_external_skeleton to enable the external Skeleton3D node.

void set_use_external_skeleton ( bool use_external_skeleton )

Sets whether the BoneAttachment3D node will use an extenral Skeleton3D node rather than attenpting to use its parent node as the Skeleton3D. When set to true, the BoneAttachment3D node will use the external Skeleton3D node set in set_external_skeleton.