Set_skeleton_path does nothing

Godot Version

godot-4.13

Question

I’m trying to set up a system where the player can change their armor, and am doing so by instancing them as a scene and attaching it to the player’s skeleton. When I tested the Mesh attached directly everything was animated properly, and I can instantiate the armor to make it follow around, but there’s no way to link the Skeleton3D to the instantiated Mesh’s skeleton path. Here’s the code in question:

func ChangeArmor(item, equip_slot):
var armor_instance = item.instantiate()
add_child(armor_instance)
armor_instance.name = equip_slot
get_node(equip_slot).set_skeleton_path(“…”)

Literally nothing happens. Same with get_skeleton_path() you don’t even get a return value, it’s like the function just passes. I don’t know how to see the Mesh’s pointers and have even resorted to digging through the github to no avail. Am I doing it wrong, or are the functions just broken? Then if so, what’s a better way to accomplish what I’m going for?

Isn’t the BoneAttachment3D node exactly made for this purpose? Have you tried using that?

I did not, and that’s a good idea, but it wouldn’t work for my purposes. The “armor” (probably should’ve just called them clothes) is full-body covering and weight painted, it’s a little infeasible to separate it into many pieces and have a BoneAttachment3D for each bone.

Ahh got you. Ok I’m not sure. Let me try and test.