I'm getting tired of declaring var manager:Manager= get_great_great_grandparent() at the top of every function that needs to speak to the manager.
I'd rather like to have var manager:Manager as a field and call manager= get_greate_great_grandparent() once instead. I tried calling it in the _ready() but that didn't because work cause _ready happens before parent.add_child(instance) can happen.

Is there an '_adopted()' function or something similar that an instance will run whenever 'parent.add_child(instance)` gets called?

    HydraheadHunter Why do you need to do that anyways?

    The intended way for nodes to communicate in Godot is "call down, signal up". Since you are trying to call someone upwards in the tree you should use signals.

    HydraheadHunter Is there an '_adopted()' function or something similar that an instance will run whenever 'parent.add_child(instance)` gets called?

    https://docs.godotengine.org/en/stable/tutorials/best_practices/godot_notifications.html

    You could listen for the Node::NOTIFICATION_PARENTED notification. But you should probably look into signals first.

    HydraheadHunter Hold the refence to the manager in a global variable you initialize once at startup.