01 Ticket Types in the Loading System
This chapter introduces the basics of loading tickets.
1 Loading Ticket
A loading ticket contains:
net.minecraft.server.world.ChunkTicket
typeThe loading ticket type; records the reason for loading.levelThe loading level; determines what computations the chunk performs.tickCreatedThe creation time; used to determine whether the loading ticket has expired.
2 Loading Ticket Type
There are 8 types of loading tickets in Minecraft:
net.minecraft.server.world.ChunkTicketType
start: Used to load the spawn point when the world starts. The loading distance is 11, which corresponds to loading level 22.net.minecraft.server.MinecraftServer#prepareStartRegiondragon: Used to load the End main island during the dragon fight. The loading distance is 9, which corresponds to loading level 24.net.minecraft.entity.boss.dragon.EnderDragonFight#tickplayer: Used for player chunk loading.forced: Used to implement the/forceloadcommand and force-load spawn points.light: Used to load chunks that need light calculation.portal: Used to load chunks in the target dimension when entities or players pass through a portal. If not used within 300gt (15s), the associated loading ticket is removed. The loading distance is 3.net.minecraft.world.PortalForcer#getPortalRectpost_teleport: Used to load target chunks when entities or players teleport, such as with/tp. Removed after 5gt.unknown: Used whengetChunkis called in the game code to load chunks. Removed after 1gt.
The loading level corresponds to the loading distance via the following algorithm:
Loading level = 33 - Loading distance
net.minecraft.server.world.ChunkTicketManager#addTicket
Note that ChunkTicketType does not specify the loading distance. For example, post_teleport has a loading distance of 1 when used with the /tp command, but 0 in other cases.
3 Loading Level
The loading level is restricted to [22-45]. Here's why the upper limit is set this way:
In 1.20.1, ChunkStatus.getMaxDistanceFromFull() returns 12. See section 1.6 for details.
4 Loading Level Type
The loading level determines what operations a chunk can perform. There are four types:
net.minecraft.server.world.ChunkLevelType
The relationship between loading level and level type:
net.minecraft.server.world.ChunkLevels#getType
The level type determines what computations the chunk performs.
- Entity Ticking (strong loading)
ENTITY_TICKING: When the loading level is 31 or below, entity ticking occurs. All game processes are computed, including entity logic. - Block Ticking (weak loading)
BLOCK_TICKING: When the loading level is 32 or below, basic computation occurs. Entities are not ticked, but other systems operate normally, such as redstone components. - Loading Boundary
FULL: When the loading level is 33, it's the loading boundary. Almost no game processes are computed, but entities are tracked, meaning entities within the loading boundary are counted toward the mob cap. - Inaccessible
INACCESSIBLE: When the loading level is greater than 33, it's inaccessible. These chunks are not truly loaded; only partial world generation has been performed.
5 ChunkHolder
This is outside the scope of this article, but here is a brief introduction to ChunkHolder's role.
ChunkHolder is the container for chunks in the underlying chunk management system. It stores the chunk itself, the chunk loading level, the chunk generation status, and the chunk's allowed uses. It can be roughly thought of as the in-game instance of a chunk.
6 ChunkStatus
This is outside the scope of this article, but here is a brief introduction to ChunkStatus.
ChunkStatus corresponds to the chunk generation stage. In 1.20.1, the stages are:
empty: Empty chunk;structure_starts: Identifies structures that may begin generating in the chunk;structure_reference: Used for world generation;biomes: Determines biomes;noise: Generates the rough terrain outline and bedrock layer;surface: Replaces blocks near the surface;carvers: Generates caves and ravines;features: Generates underwater caves and ravines;initialize_light: Calculates the initial lighting of the chunk?;light: Calculates the lighting of the chunk;full: Chunk loading is complete;ProtoChunkconverts toWorldChunk.
Chunk status corresponding to each loading level:
- 34-:
full; - 35:
initialize_light; - 36:
carvers; - 37:
biomes; - 38~45:
structure_starts.



