Thanks for the suggestions! :D Those crazy nested trees are exactly what I'm trying to avoid.[quote author=chitoge link=topic=15652.msg16897#msg16897 date=1466879612]You have multiple body parts of an NPC under a Tilemap, and you want to be able to sort their Z and Y axes. I would make them a separate scene entirely so you can implement your scripts and changes, and they are a top level node alongside your Player, so Y sort should probably work.Maybe have 3 main groups under Y sort: Player, Non-Player, and a Node2D that stores all dynamically generated Tilemaps.[/quote]That's what I'm doing, but Y sort will not work. It appears that it only works on direct children of the Y sort. So this doesn't work: YSort |Objects(Node2D) |tilemap1 |tilemap2 |NPC(Node2D) |NPC1 |NPC2 |PlayerCuriously, if I start with this set up it works: YSort |Tilemap |_PlayerBut if you have more than one tile map, then all but the first wont work (but will if they have different tile sets). If I just have the Y sort and the player, and then load in the tile map from another scene it doesn't Y sort, even though the resulting tree is exactly the same. So, I can only conclude that Y sort doesn't work. I tried using individual sprites for objects. But this creates it's own problems. If I load all the sprites into the Y sort node it works fine. But if I group all the sprites into a Node2D (or any other node) it wont. The problem is the objects need to be sensibly grouped so that I can unload them when player moves out of that area and the Y sort node just becomes a mess of sprite nodes. Basically, I'm creating a large top-down world and rather than having one massive map, I'm breaking down into chunks and loading them in/out as needed. Everything works great, except where things need Y sorting.Your spot on about the animations. Y sort only seems to sort properly if everything under the node has the same Z index. I managed to solve this by having a function track in the player animations that moves the order of the player sprites around in their tree rather than changing each parts Z index. It strikes me as an incredibly hacky solution, that does exactly the same thing as animating the Z index, but using more processes and effort. At least it works with the Y sort node. One problem solved!