/forceload loads an area one chunk larger than specified
When trying to load a single chunk with /forceload a 3x3 area of chunks is made accessible instead.
I would expect /forceload to load exactly the chunks specified, no more or less.
It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.
However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).
Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.
Learning a bit more about the new chunk loading mechanics, the above paragraph is nonsense.
It however would be useful if loading chunks as entity ticking would be an option for the forceload command.
I made a comparison video of chunk loading in 1.13.2 and 18w50a where this is also visible: https://www.youtube.com/watch?v=H3dMoFulIog
The forceloaded chunks are on the lower left side marked with a different color.
Both sides of the visualisation were recorded in the same world with the same forceloaded area. The tool clearly detects one chunk more around the forceloaded area. Manual tests with commands also confirm this.
Good command to test if a chunk is loaded:
/execute unless block <x> <y> <z> air{N:O} run say chunk is loaded
Created Issue:
/forceload loads an area one chunk larger than specified
When trying to load a single chunk with /forceload a 3x3 area of chunks is loaded instead.
I would expect /forceload to load exactly the chunks specified, no more or less.
It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.
However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.
When trying to load a single chunk with /forceload a 3x3 area of chunks is loaded instead.
I would expect /forceload to load exactly the chunks specified, no more or less.
It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.
However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.
I made a comparison video of chunk loading in 1.13.2 and 18w50a where this is also visible: https://www.youtube.com/watch?v=H3dMoFulIog
Both sides of the visualisation were recorded in the same world with the same forceloaded area. The tool clearly detects one chunk more around the forceloaded area. Manual tests with commands also confirm this.
Good command to test if a chunk is loaded:/execute unless block <x> <y> <z> air{N:O} run say chunk is loaded
When trying to load a single chunk with /forceload a 3x3 area of chunks is loaded instead.
I would expect /forceload to load exactly the chunks specified, no more or less.
It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.
However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.
I made a comparison video of chunk loading in 1.13.2 and 18w50a where this is also visible: https://www.youtube.com/watch?v=H3dMoFulIog
![]()
The forceloaded chunks are on the lower left side marked with a different color.
Both sides of the visualisation were recorded in the same world with the same forceloaded area. The tool clearly detects one chunk more around the forceloaded area. Manual tests with commands also confirm this.
Good command to test if a chunk is loaded:/execute unless block <x> <y> <z> air{N:O} run say chunk is loaded
When trying to load a single chunk with /forceload a 3x3 area of chunks is
loadedinstead.I would expect /forceload to load exactly the chunks specified, no more or less.
It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.
However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.
I made a comparison video of chunk loading in 1.13.2 and 18w50a where this is also visible: https://www.youtube.com/watch?v=H3dMoFulIog
![]()
The forceloaded chunks are on the lower left side marked with a different color.
Both sides of the visualisation were recorded in the same world with the same forceloaded area. The tool clearly detects one chunk more around the forceloaded area. Manual tests with commands also confirm this.
Good command to test if a chunk is loaded:/execute unless block <x> <y> <z> air{N:O} run say chunk is loadedWhen trying to load a single chunk with /forceload a 3x3 area of chunks is made accessible instead.
I would expect /forceload to load exactly the chunks specified, no more or less.
-It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.
However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.-
Learning a bit more about the new chunk loading mechanics, the above paragraph is nonsense.
It however would be useful if loading chunks as entity ticking would be an option for the forceload command.I made a comparison video of chunk loading in 1.13.2 and 18w50a where this is also visible: https://www.youtube.com/watch?v=H3dMoFulIog
![]()
The forceloaded chunks are on the lower left side marked with a different color.
Both sides of the visualisation were recorded in the same world with the same forceloaded area. The tool clearly detects one chunk more around the forceloaded area. Manual tests with commands also confirm this.
Good command to test if a chunk is loaded:/execute unless block <x> <y> <z> air{N:O} run say chunk is loaded
When trying to load a single chunk with /forceload a 3x3 area of chunks is made accessible instead.
I would expect /forceload to load exactly the chunks specified, no more or less.
-It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).
Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.-
Learning a bit more about the new chunk loading mechanics, the above paragraph is nonsense.
It however would be useful if loading chunks as entity ticking would be an option for the forceload command.I made a comparison video of chunk loading in 1.13.2 and 18w50a where this is also visible: https://www.youtube.com/watch?v=H3dMoFulIog
![]()
The forceloaded chunks are on the lower left side marked with a different color.
Both sides of the visualisation were recorded in the same world with the same forceloaded area. The tool clearly detects one chunk more around the forceloaded area. Manual tests with commands also confirm this.
Good command to test if a chunk is loaded:/execute unless block <x> <y> <z> air{N:O} run say chunk is loadedWhen trying to load a single chunk with /forceload a 3x3 area of chunks is made accessible instead.
I would expect /forceload to load exactly the chunks specified, no more or less.
It might be that this extra chunk is meant to make the chunks specified in the command entity processing chunks.
However to achieve that a 5x5 area would need to be loaded around each forceloaded chunk or the condition for entity processing chunks would need to change (it might be that the 5x5 is no longer needed due to recent world generation changes).
Either way, in my opinion forceload should only load the chunks specified in the command. It is always possible to load a larger area for the user for the command if an entity processing chunk is needed.
Learning a bit more about the new chunk loading mechanics, the above paragraph is nonsense.
It however would be useful if loading chunks as entity ticking would be an option for the forceload command.I made a comparison video of chunk loading in 1.13.2 and 18w50a where this is also visible: https://www.youtube.com/watch?v=H3dMoFulIog
![]()
The forceloaded chunks are on the lower left side marked with a different color.
Both sides of the visualisation were recorded in the same world with the same forceloaded area. The tool clearly detects one chunk more around the forceloaded area. Manual tests with commands also confirm this.
Good command to test if a chunk is loaded:/execute unless block <x> <y> <z> air{N:O} run say chunk is loaded
Things start to get more clear. Especially levels.txt
helps a lot ![]()
Paraphrasing again to avoid misunderstandings:
So some actions can place tickets on chunks to force them to load, generate (different levels) or load the surroundings.
You named a few things that can place tickets and what ticket level they have, like players and spawn chunks. I assume random ticks and block updates probably both cause (temporary) ticket level 33, judging by the level of the "unknown"s?
And then there is actions that only run if there is a certain ticket level in the chunk.
What I currently got from testing:
| Thing | Required level |
|---|---|
| Entity processing | <=31 |
| Accessing the entities via global list | <=31; should probably be <=33 |
| Accessing the entities via local list | <=31; should probably be <=33 |
| Running scheduled ticks | <=33 |
| Tileentity processing | <=33 |
| Block events | ? (at least <=33) |
| Accessing blocks (e.g. setblock) | <=33 |
In a few weeks I will have time to test these things in more detail.
To the couple of other things
- The chunks that kept their ticket level when moving around with server lag kept that level even after the lag was gone. Only "picking them up" again would remove it. I will try to recreate it when I got time and make a report if it still happens.
- I was about to ask why the player doesn't have just one ticket, thanks for clarifying
(Also I think the player had one ticket until one of the first snapshots of this year, as this probably caused MC-141483) - Haha, I would have taken you for the author after giving that detailed explanation. Just out of curiosity, may I ask who the author is?
About the 2 wide ticking border
After reading this second part of the explanation, I'm pretty sure what I described is due to ticket level 33 (border) is being handled differently than ticket level 34 (border).
This means MC-141482 is the same behaviour as the 2 wide border I described for the chunks around player placed tickets.
It's about /forceload "loading" more chunks than specified. Forceloading a chunk currently makes it's neighbours accessible as well.
Also the list of required levels above pretty much describes the observed already. Most things require <=33 (so a level classified as "border") rather than <=32 (which would be "ticking").
To test this behaviour:
1. Forceload a chunk
2. Take note of coordinates of any block in a chunk next to the forceloaded chunk.
3. Get far enough away for it to not be affected by the players ticket level
4. Run this command on the coordinates you took note of:
/execute unless block <x> <y> <z> air{N:O} run say chunk is loaded
The command only has an output if the blocks in the chunk can be accessed.
It will produce an output for chunks next to a forceloaded chunk.
Obviously it will also produce an output for chunks next to the "ticking" chunks caused by a players tickets.
Alternatively you can place a repeating command block with a say command in the chunk. That only runs if scheduled ticks get processed, so if you still get outputs that indicates that ticket level 33 still runs scheduled ticks. (and it does)
I you are looking at chunk loading logic and entity lists these two issues might also interest you:
Since forceloaded chunks are meant to be ticking, certain border is required. Also, after fixing
MC-151710this area has been increased to 5x5.