Is there a way to create new nodes of a certain type once the game is running? Basically, I want to be able to feed an array into a function and then generate a label for each item in that array, but since I wouldn't necessarily have the same number of items each time, I'd like to be able to generate them dynamically instead of just pre-building it with a specific amount. As far as I can tell, the add_child function requires a specific, existing node, and I'm not seeing another function that does what I want, but I suspect there's a good chance I'm missing something!

by code you can create nodes (you can look for information, I'm a bit dumb to explain and better an expert say it), and you call them in the same way you would call a shot from a shotgun for example.

It is always a good idea to read the docs
https://docs.godotengine.org/en/stable/getting_started/step_by_step/instancing.html (what's an instance)
https://docs.godotengine.org/en/stable/tutorials/scripting/nodes_and_scene_instances.html#instancing-scenes (instancing from script)

In short
1 - You put your node into a scene and save it
2 - Drag the scene to your script while holding Ctrl to preload as a packedScene
3 - Instantiate
4 - Add to the world with add_child or add_sibling
5 - Change properties like position

This is very basic and you can find lots of tutorials in youtube and the internet.

Edit: you can also create new nodes with new()
https://docs.godotengine.org/en/stable/tutorials/scripting/nodes_and_scene_instances.html#creating-nodes
But it's a bit more advanced

    Jesusemora You're right, that is very basic, but it's also not what I was asking about: I was asking about generating new nodes in code rather than as packedScenes, which I would think would've been clear because I specifically mentioned add_child not working for this purpose. That last link does help, so thank you, but if the thing I'm asking for is, by your own admission, "more advanced", it feels kinda rude to drag me for not reading docs that don't actually answer my question.

      razorborne "new node" is in the second link I posted, it's just before instantiate.
      I considered that there was no difference between using a scene and a node for what you want. You didn't exactly explain why it was not working.
      add_child doesn't create a node, it adds it to the scene. You create a node with instantiate or new, the difference is instantiate creates a copy.
      New is only a bit more advanced than instantiate because you have to assign properties, like the image of a sprite.
      I apologize if I sounded rude.

      No need to use a scene if you're only creating a single fresh node. Just use NodeType.new() and add_child(). Scenes are typically used to instantiate predefined constellations of nodes.