duane I tried having a YSort Node with a Node2D as a child, the Node2D would duplicate itself so that the new objects could get their positions. The problem is, they all had to be children of the YSort Node, so the code had to be in the YSort, but then it was impossible to tell the distance of the Node2D from the player, as there would be several Node2Ds that would have to share one variable, and all of them would have different distrances, which would mess everything up. I tried putting the code into the Node2Ds and changing the parent, but for whatever reason, it just wouldn't parent itself, I used Node2D.get_parent().add_child(newObject), when var newObject = object.instance()