On the contrary, actually, your code seems to be working, just that the signal
emitted from a single 'Ruth' is connected to both 'Ruths'. I'm not sure what's the structure of the nodes you're using, but here's how it's usually done:
1- Make a single 'Ruth' its own scene, separated from everything else.
2- Add the same script logic to this individual scene.
3- Make another scene (the level).
4- The 'Ruth' scene is loaded into a variable (eg. var Ruth = preload("*pathway to your Ruth scene")
or using load
function). This is done in the script of the parent(/level) node (or an Autoload if you wish).
5- For adding a single Ruth, instance the 'Ruth variable' (basically a PackedScene
of Ruth scene) then add it as a child of level node. code: add_child(Ruth.instance()
I'm assuming that method of adding the Ruth scene as a child of the level is slightly different. If so the above steps should solve your problem. Also, you could drag-and-drop the scene file into the 'level scene tree' to instance Ruth more easily, if not added during runtime.