- Edited
xRegnarokx Those are again some abstract functionalities you for some reason want to ascribe to random nodes. Why? Your TurnCotrol and ShipMove are not things. They are bureaucratic go-betweens that have no reason to exist in a well designed system. Turns are controlled by players, and ships are moved also by players or by themselves following the orders from players.
So instead nodes named TurnControl and ShipMove, you need to have scenes named Player and Ship. These will represent exactly those things.
Each scene will have to have a script attached to its top node. This script should contain functions that perform actions that the thing is capable of doing. So, for example the Ship thing may have functions like: move_to(), attack(), take_damage(), set_weapon(), get_hitpoints(), etc...
Now the Player thing can communicate with any Ship thing by calling these functions. It can order it what to do or check its status. Just like a player in a board game would do with their units on the board. In object oriented programming we call those functions an "interface". It's the means by which other things manipulate that thing.
In the above example, the Ship thing is autonomous. It can perform actions that Player requests of it but Player doesn't need to know how exactly the Ship does it. The Player need not to care about any nodes inside the Ship. It just has to call functions provided in Ships' "interface" and reap the results. This greatly simplifies Player's life. In other words, each thing keeps the details of its inner working to itself, making it self-contained and thus easier to maintain and repair if it breaks down. In object oriented programming, this is known as "encapsulation".