4

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 16x16 - 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.

1
  • I'll test this today, because from my knowledge, chunk loading by redstone is completely broken in 1.13. Even a simple redstone line does not send its block updates into unloaded chunks properly. It would be awesome if you happened to have found in your test the only thing that still works. But it would also contradict the current code interpretations of this bug. Commented May 20, 2019 at 11:04

1 Answer 1

4

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.

8
  • I'd rather blame the repeater (on the return path) which can't decide whether it should be lit or not, so it loads the neighbor chunk... which has another repeater. The game has absolutely no qualms about not sending signals from loaded chunks into unloaded and even fails to update the state of newly-loaded chunks with influences from loaded chunks that got lost that way. In regards to hoppers - it does not occur anymore since 1.13. I don't think droppers and observers ever did it, but in 1.12 there was a good way of chunkloading with chests, which were checking if they should be double.
    – SF.
    Commented May 20, 2019 at 11:29
  • 1
    Nope! Just tested it out. It works the way I said in my answer, but not the other way around (I will edit the answer in a moment). I think the fact that repeaters don't act the way your comment says could help you in your other question
    – Quijibo
    Commented May 20, 2019 at 12:09
  • In 1.14 it doesn't load chunks anymore - but does pretty much what I stated in the linked question: follows along as chunks are loaded by the player.
    – SF.
    Commented May 21, 2019 at 0:09
  • @SF. But... wasn't your question aimed at 1.13.2?
    – Quijibo
    Commented May 29, 2019 at 4:23
  • 1
    I didn't know about this method of chunkloading, I didn't know which precise setup triggers it (as you note I used to think it's the repeater reading from outside a chunk) and I'm still not sure what are the exact rules of loading chunk that way - duration until unload, lazy/entity-processing, etc. The main question is the one in the title. My "Why?" is not satisfied by "because the game design says so, to avoid a situation [that occurs notoriously anyway]". I'm definitely happy that you identified the powered block as the cause (upvote) but I need a more in-depth answer.
    – SF.
    Commented May 29, 2019 at 12:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.