Ah I figured it out, you do use Node.Get() if you want to access a variable edited in the ready instead of making an instance of the class, however the ready functions are processed in a certain order in godot. It processes the children of a parent top down and then the parent,
eg if
ParentNode
Child1
Child2
Child3
It would do, Child1 ready() --> child2 ready() --> child3 ready --> ParentNode ready().
Thats why it wasn't working, because my nodes were in the wrong order, and I was making an instance of the class instead of using var thing = (cast to myVariable type)Node.Get("myVariable");