The longer I use godot, the more i realize it's not like... fully baked. I love it when I go hunting through the documentation only to be greeted by:

There's just a bunch of small things about it that drive me a little crazy. (Though, I am using 3.2 and I understand that this particular gripe has since been fixed. Not the documentation thing but the actual problem I'm having right now.)
Basically, I'm coding some better looking ui, and I made a box that can contain as many selectable elements as I want. I wanted to make an array of nodes that can be accessed from the inspector so I can choose on a case-by-case basis ui elements to be used as buttons.
You can set the data type from the inspector, and after some trial and error, I settled on "NodePath" since it allows you to select a Node form the current scene via dropdown menu. So in order to snag the signals emitted...
for i in buttons.size():
> buttons[i].connect("mouse_entered",self,"select")
This yielded:
Invalid call. Nonexistent function 'connect' in base 'NodePath'.
(all Nodes contain "connect()", so clearly this is a mismatched type.)
I had thought that this would just reference the node I wanted, but it turns out it's just a data type called "NodePath" which just stores the string? I guess? of a relative path. to the node I want. So then, I thought I could use "get_node()" which, in it's description, takes a NodePath to fetch the Node itself. You would think that should work, right? I would think that should work. So then...
for i in buttons.size():
> var button = get_node(buttons[i])
> button.connect("mouse_entered",self,"select")
But that yields:
Invalid type in function 'get_node' in base 'NinePatchRect (SelectBox.gd)'. Cannot convert argument 1 from Object to NodePath.
But... but it is a NodePath???? I selected the NodePath type??? You just told me that it was a NodePath in the previous error?????
In the tooltip, it literally says it requires data of type: NodePath (though I think in actuality it maybe only takes strings and then converts them into NodePaths?)

Godot is super persnickety about types in a way that I don't usually see from a language where I don't technically have to declare a type before it's used. I usually end up having to program in my own conversions in places where I think it would do it itself.
Doing math between integers and floats usually converts the the answer to an integer which is absolutely not what I would think should happen in that case but okay, I guess. Forgetting that I have to pin a .0 on the end of every number i intend to do math with has ruined my day more than once. I don't know if this is a python thing or a godot thing but it kills me a little bit. I guess I'm just spoiled by more thoughtfully made languages/libraries, but I digress....I think, technically, the thing I want is the RID (which is an option from the dropdown in the inspector), however, when selected, it just prints an error into the inspector saying invalid RID (I think because the feature is not complete) and it can't be changed, so that's cool.
Anyways, I guess the solution is just to type out the path in a string. (It is. It worked.)
The data, to my eyes, is completely indistinguishable, but I literally can't convert the NodePath in to a string using code as far as I can tell, so I just have to go back and type all the paths by hand.... sigh....
