English | 中文 |
Applicable versions: 1.13.x
Game Loop
├── Player Action
├── For each world
│ ├── Natural Spawning
│ ├── Chunk Unload
│ ├── World Time Update
│ ├── Tile Tick
│ ├── Chunk Tick
│ ├── Block Change Sync
│ ├── Block Event
│ ├── Entity
│ └── Tile Entity
├── Player Entity
└── Auto save
Game Loop
├── Async task
│ └── Player Action
├── Command Function
├── For each world
│ ├── World Time Sync
│ ├── World Border
│ ├── Weather
│ ├── Sleeping
│ ├── Natural Spawning
│ ├── Special Spawning
│ │ └── Phantom Spawning
│ ├── Chunk Unload
│ ├── World Time Update
│ ├── Tile Tick
│ ├── Player Check Light
│ ├── Chunk Tick
│ │ ├── Light Logic
│ │ ├── Thunder
│ │ ├── Ice and Snow
│ │ └── Random Tick
│ ├── Player Chunk Map
│ │ └── Block Change Sync
│ ├── Village
│ ├── Zombie Siege Spawning
│ ├── Portal Cache
│ ├── Block Event
│ ├── Dragon Fight
│ ├── Entity
│ ├── Tile Entity
│ └── Entity Tracker
├── Network
│ └── Player Entity
├── Console
└── Auto save
The main and the infinite loop
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.MinecraftServer#runServer
Executing async tasks
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.MinecraftServer#waitUntilNextTick
net.minecraft.server.MinecraftServer#runServer
Handling player actions from packets from clients
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.network.protocol.PacketUtils#ensureRunningOnSameThread
Executes functions and datapacks
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.ServerFunctionManager#tick
net.minecraft.server.MinecraftServer#tickChildren
For each world, do following logics
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.MinecraftServer#tickChildren
Sync world time to client
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.network.protocol.game.ClientboundSetTimePacket
net.minecraft.server.MinecraftServer#tickChildren
World border update
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.world.level.border.WorldBorder#tick
net.minecraft.server.level.ServerLevel#tick
Update weather
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#advanceWeatherCycle
net.minecraft.server.level.ServerLevel#tick
Player sleeping logic
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#wakeUpAllPlayers
net.minecraft.server.level.ServerLevel#tick
Natural mob spawning
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.world.level.NaturalSpawner#spawnForChunk
net.minecraft.server.level.ServerChunkCache#tickChunks
Spawning special mobs
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#tickCustomSpawners
net.minecraft.server.level.ServerChunkCache#tickChunks
Spawning phantoms
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#tickCustomSpawners
net.minecraft.server.level.ServerChunkCache#tickChunks
Unloading chunks
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ChunkMap#tick(java.util.function.BooleanSupplier)
net.minecraft.server.level.ServerChunkCache#tick
Update gametime and daytime of the world
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#tickTime
net.minecraft.server.level.ServerLevel#tick
Executing tile tick events, including block tile ticks and fluid tile ticks
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.world.ticks.LevelTicks#tick
net.minecraft.server.level.ServerLevel#tick
Random light level check nearby players
Code References
Minecraft 1.13.2, mcp mapping
net.minecraft.world.WorldServer#playerCheckLight
net.minecraft.world.WorldServer#tickBlocks
Chunk Tick
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#tickChunk
net.minecraft.server.level.ServerChunkCache#tickChunks
Light check and skylight recalculation
Code References
Minecraft 1.13.2, mcp mapping
net.minecraft.world.chunk.Chunk#enqueueRelightChecks
net.minecraft.world.WorldServer#tickBlocks
Lighting and skeleton trap spawning
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#tickChunk
Forming ice and snow
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#tickChunk
Block and fluid random ticks
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#tickChunk
Player chunk map update
Code References
Minecraft 1.13.2, mcp mapping
net.minecraft.server.management.PlayerChunkMap#tick
net.minecraft.world.WorldServer#tick
Sync changed blocks in the chunk to the client
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ChunkHolder#broadcastChanges
net.minecraft.server.level.ServerChunkCache#tickChunks
Village logics
Code References
Minecraft 1.13.2, mcp mapping
net.minecraft.village.VillageCollection#tick
net.minecraft.world.WorldServer#tick
Spawning zombie sieges
Code References
Minecraft 1.13.2, mcp mapping
net.minecraft.village.VillageSiege#tick
net.minecraft.world.WorldServer#tick
Timeout portal cache cleanup
Code References
Minecraft 1.13.2, mcp mapping
net.minecraft.world.Teleporter#tick
net.minecraft.world.WorldServer#tick
Block events
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ServerLevel#runBlockEvents
net.minecraft.server.level.ServerLevel#tick
Dragon fight logic
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.world.level.dimension.end.EndDragonFight#tick
net.minecraft.server.level.ServerLevel#tick
Ticking entities
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.world.level.Level#guardEntityTick
net.minecraft.server.level.ServerLevel#tick
Ticking tile entities
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.world.level.Level#tickBlockEntities
net.minecraft.server.level.ServerLevel#tick
Sync entity updates to the client
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.level.ChunkMap#tick
net.minecraft.server.level.ServerChunkCache#tickChunks
Network system ticking
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.network.ServerConnectionListener#tick
net.minecraft.server.MinecraftServer#tickChildren
Ticking entity logic of players
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.network.ServerGamePacketListenerImpl#tick
net.minecraft.network.Connection#tick
Handling console inputs
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.dedicated.DedicatedServer#handleConsoleInputs
net.minecraft.server.dedicated.DedicatedServer#tickChildren
Auto save
Code References
Minecraft 1.19, mojmap mapping
net.minecraft.server.MinecraftServer#saveEverything
net.minecraft.server.MinecraftServer#tickServer