For some reason, using call_deferred and set_deferred stops the shell from spawning. I have no errors, and the shell's ready function has a print that works. Any reason why?
You're adding "shell" as a child to the current node, then calling queue_free() on the current node, which deletes the node and its children. Did you intend to make "shell" a child of a higher level node that doesn't get deleted?
DaveTheCoder Ah, right.
That fixed it! Thanks 😃