Minecraft – What are the rules/range for chunk loading in single player

minecraft-java-editionminecraft-redstone

I wanted to try testing some contraptions in relation to my previous question.

In my test world (superflat, 1.13.2, single player) I created a redstone line that starts with a lever, goes east about 1000 blocks in one direction, turns south, goes a chunk south, turns west and returns 1000 blocks to end one chunk south from the origin, with a lamp.

enter image description here

The line is very simple – a repeater on entering the chunk, 14 blocks worth of redstone dust, and a solid block on the opposite side of the chunk, to be read by the repeater there again:

enter image description here

This was obviously intended to break, as under no conditions should the world in radius of 62 chunks / 1000 blocks around the player load and there should be nothing magical about powered solid blocks or repeaters at chunk borders. The signal upon reaching the border of the loaded chunks should stop and never return.

And against logic, it works. It takes some 12 seconds for the signal to complete the trip, but flicking the lever on one end of the 2000+ blocks long line reliably toggles the lamp on the other end. I even quit the game (closing it completely), then returned, starting at the lever so I'd never visit the area of the U-turn 1000 blocks away in this session – and it still worked.

Why?!

The origin is about 190 blocks south from world spawn, so it should be outside of spawn chunks, but even if spawn chunks were involved, they are only 16×16 – I made the line so excessively long to avoid this sort of issues. Also, I never experimented with /forceload or moving the spawn. Render distance – I tried with 22, 16, 10 – all the same.

Best Answer

The generation of chunks can be affected by other things than just players.

If you have a generated block that may or may not affect something that's happening in another non-generated chunk, the chunk is loaded, so that we prevent something like a Schrödinger's cat situation.

In your case, there's a redstone signal coming out of your solid block at the edge of every chunk, so the next chunk is loaded - and what a surprise! There is a block that can receive the redstone signal, which passes it on, and on...

To add some evidence, I did a bit of testing. I ran a command that tests for a block at certain coordinates:

/execute if block <x> <y> <z> [block]

When the redstone signal wasn't on the output was as following:

That position is not loaded

Test failed.

When I turned on the redstone signal, though, it suddenly worked.

Test passed.

Too bad I cannot think of a solution to your previous question that would work more than once and without having to be reset.

And even though this is something that might seem pretty obvious, but is worth mentioning: This doesn't occur for redstone only. Hoppers, Droppers, Observers, and many more blocks do the same.