Not completely optomised but it serves its purpose well; see "renderer" sprite for a (honestly) short tutorial. RUN ON FORKPHORUS: https://forkphorus.github.io/app.html?id=425225338&webgl=true&fps= TL;DR Every sprite in scratch has a unique layer index. Sprites with a lower layer index will be drawn before sprites with a higher layer index. In order to achieve layering, an effect where non-overlapping sprites are (essentially) drawn in groups, one has to send sprites to front in order of thier layer -- keeping track of the range of layer indexes in any given layer; once all of this is computed, sprites can just go to the range of a layer's index to go to that layer. (The reason that tiling doesn't work correctly is due to sprite fencing, this can be easily fixed by setting up the renderer sprite to have a bounds_y that you can actually set a 16x16px to -- but, this is an example for layering, so It's not an issue right now. Moreover, the code is not optomised, becuase, again, this is just an example) (apparently, if you run this game at 999 fps, the layering won't work as intended).