You can drag the green 'player' around to test it from different approaches and/or move the black walls to test out different obstacles. The player in this example needs to be positioned beyond the 1-9 radius, basically he needs to encounter the "9 block" first, but as long as he can do that he should reach the goal. This is because once he reaches the 9 block he then travels to the nearest 8, then 7, and so on, and eventually reaches the goal.
The 1-9 block radius around the goal is generated instantly with raycast. It has to be done instantly otherwise spawn behavior gets bugged, this means you can't simply turn it off after 7 or 5 if that's all it takes to encounter the player, and so this is why the player needs to be beyond the 9 block radius in the beginning. Otherwise he might run toward higher valued blocks instead of progressively lower ones. But maybe I can fix this, this was just a test after all and it seems to work.
The 1-9 block radius can be increased, probably to absurd amounts if you have the patience. It's the same logic is used within all the blocks, you just copy/paste and change the spawn values to the next higher value, i.e 5 block spawns 6, 10 block spawns 11, and so on. It's not hard but kind of tedious making new blocks for each one so I"m not doing that yet. There also might be an easier way to do this with only a single block type but I haven't figured that out yet.