Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Diagram lanes

Generated from TEMPLATE.md’s lane key by python tools/check_lanes.py --index. Do not edit by hand.

Almost every lane in a sequence diagram is a class, and a lane means the same thing on every page: the key in TEMPLATE.md is the authority, and check_lanes.py fails a deploy on a page that disagrees with it. The last rows are the exceptions — lanes that stand for a thread, the process, the wire, the disk, a service or the game’s own code rather than for one class.

273 lanes are classes and 10 are not. A lane is normally the initials of the class’s CamelCase words, a trailing Impl dropped (ServerGamePacketListenerImpl is SGPL), but more than a third are not: a short one-word class is its own lane (Player, Sheep), a longer one-word class takes a fixed prefix (Connection is Conn, Enchantment is Ench), and a collision is resolved by lengthening the later claimant, never by reassigning a row — which is why ChestMenu is ChestM and not CM (ChunkMap had it first); and a class a page draws twice, as two copies, has a second lane; and a few follow none of these (MC is Minecraft, PDM is PatchedDataComponentMap). Derive nothing from a lane; read it off this table.

laneclass
AAAbstractArrow
ABAbstractBoat
ACMAbstractContainerMenu
AFBEAbstractFurnaceBlockEntity
APAcquirePoi
ATSAttributeTrackSampler
AttrIAttributeInstance
AttrMAttributeMap
BCBuildContexts
BDBlendingData
BDFSBlendDensityFunction.Sampler
BDRBrainDebugRenderer
BERDBlockEntityRenderDispatcher
BIBucketItem
BIRBuiltInRegistries
BLEBlockLightEngine
BlenderBlender
BlockBlock
BootBootstrap
BrainBrain
BSPHBlockStatePredictionHandler
CAChunkAccess
CAdvClientAdvancements
CameraCamera
CBEChestBlockEntity
CCCClientChunkCache
CComPLClientCommonPacketListenerImpl
CCPLClientConfigurationPacketListenerImpl
CDSClientDebugSubscriber
CECommandEncoder
CEMEnchantmentMenu
CGTChunkGenerationTask
CHChunkHolder
ChanAChannelAccess
ChatCChatComponent
CHelpContainerHelper
ChestMChestMenu
ChestRChestRenderer
CHPLClientHandshakePacketListenerImpl
ChunkGChunkGenerator
CLClientLevel
ClimSClimate.Sampler
CLisChatListener
CMChunkMap
CMapContextMap
CmdsCommands
CMTEChunkMap.TrackedEntity
CNUCollectingNeighborUpdater
ConnConnection
ConsConsumable
CPLClientPacketListener
CPListClimate.ParameterList
CraftMCraftingMenu
CRUComponentRenderUtils
CScrChatScreen
CSEDSynchedEntityData
CSPClientSuggestionProvider
CSTChunkStatusTasks
CSugCommandSuggestions
CTCombatTracker
CTDChunkTaskDispatcher
CWSCreateWorldScreen
DataCDataCommands
DBDoorBlock
DCPDataComponentPatch
DCSDialogControlSet
DlgCDialogCommand
DlgSDialogScreen
DMDistanceManager
DMRDefaultedMappedRegistry
DRWEDefaultRedstoneWireEvaluator
DSDedicatedServer
DScrDeathScreen
EAPEnvironmentAttributeProbe
EASEnvironmentAttributeSystem
EffCEffectCommands
EHEnchantmentHelper
EMEnchantmentMenu
EnchEnchantment
EntityEntity
ERDEntityRenderDispatcher
EScrEnchantmentScreen
ETEntityType
ETLEntityTickList
EVSEnvironmentAttributeSystem.ValueSampler
ExecCExecuteCommand
FBRFormattedBidiReorder
FDFoodData
FeatPFeaturePlacer
FeatureFeature
FFFlowingFluid
FGBFrameGraphBuilder
FMFurnaceMenu
FolPFoliagePlacer
FontFont
FPFoodProperties
FPHAIFirstPersonHandsAndItems
FPHAIRFirstPersonHandsAndItemsRenderer
FRFogRenderer
FRDFeatureRenderDispatcher
FSetFontSet
GCGiveCommand
GDGpuDevice
GGEGuiGraphicsExtractor
GIGameTestInfo
GlCEGlCommandEncoder
GlRPGlRenderPass
GpuSGpuSurface
GRGameRenderer
GSGaussianSampler
GStitGlyphStitcher
GTRGameTestRunner
GTTGameTestTicker
GuiGui
GuiRGuiRenderer
HudHud
ICTInventoryChangeTrigger
IgniteIgnite
InvSInventoryScreen
IOWIOWorker
IPItemParser
ISIntegratedServer
IStackItemStack
ItemItem
ItemsItems
JPJigsawPlacement
JPPJigsawPlacement.Placer
JSJigsawStructure
KHKeyboardHandler
KIKeyboardInput
KMKeyMapping
KTSKeyframeTrackSampler
LanguageLanguage
LBLiquidBlock
LCLevelChunk
LCSLevelChunkSection
LCTsLevelChunkTicks
LDSLevelDebugSynchronizers
LELivingEntity
LevBLeverBlock
LibraryLibrary
LICLootItemCondition
LIFLootItemFunctions
LLELevelLightEngine
LLSSLayerLightSectionStorage
LMLightmap
LOLoadingOverlay
LootCLootContext
LootPLootParams
LPLocalPlayer
LRLevelRenderer
LRSELightmapRenderStateExtractor
LSALevelStorageSource.LevelStorageAccess
LTLootTable
LTsLevelTicks
LXLevelExtractor
MCMinecraft
MEMobEffect
MEIMobEffectInstance
MFRModelFeatureRenderer
MNBSMultiNoiseBiomeSource
MobMob
MoveCMoveControl
MPGMMultiPlayerGameMode
MRMappedRegistry
MSMinecraftServer
MTSMoveToTargetSink
NBCNoiseBasedChunkGenerator
NbtIoNbtIo
NCNoiseChunk
NENodeEvaluator
PAPlayerAdvancements
ParrotParrot
PBBPistonBaseBlock
PChainPostChain
PCSPlayerChunkSender
PDecPacketDecoder
PDMPatchedDataComponentMap
PDSPlayerDataStorage
PEncPacketEncoder
PESMPersistentEntitySectionManager
PESPPoolElementStructurePiece
PFPathFinder
PLPlayerList
PlayerPlayer
PMPoiManager
PMBEPistonMovingBlockEntity
PModPlacementModifier
PNPathNavigation
PNRPathNavigationRegion
PPPacketProcessor
PPassPostPass
PSRPistonStructureResolver
PSTPrepareSpawnTask
RBRepeaterBlock
RCPLClientPacketListener
RDCRegistryDataCollector
RemSRemoteSlot
ResultCResultContainer
ResultSResultSlot
RGLReportGameListener
RMRecipeManager
RootPRootPlacer
RPRenderPass
RRMReloadableResourceManager
RSRReloadableServerResources
RSRegReloadableServerRegistries
RWBRedstoneWireBlock
SAScoreAccess
SABAbstractBoat
SAISpatialAttributeInterpolator
SBLSoundBufferLibrary
SCCServerChunkCache
SCDSerializableChunkData
SCLServerConnectionListener
SCPLServerConfigurationPacketListenerImpl
ScreenScreen
SDSServerDebugSubscribers
SEServerEntity
SectCSectionCompiler
SEDSynchedEntityData
SEESoundEngineExecutor
SGPLServerGamePacketListenerImpl
ShadMShaderManager
SheepSheep
SIBSleepInBed
SICFSetItemCountFunction
SLServerLevel
SLPLServerLoginPacketListenerImpl
SndESoundEngine
SNSSubmitNodeStorage
SPServerPlayer
SPBStructurePiecesBuilder
SPGMServerPlayerGameMode
SPieStrongholdPieces
SRSkyRenderer
SRBServerRecipeBook
SRDSectionRenderDispatcher
SRISimpleReloadInstance
SRTSynchronizeRegistriesTask
SSServerScoreboard
SSBSculkSensorBlock
SSplStringSplitter
SStrStrongholdStructure
SSVUSculkSensorBlockEntity.VibrationUser
STempStructureTemplate
SumCSummonCommand
SUTSectionUpdateTracker
SWServerWatchdog
TagPTagParser
TCTestCommand
TCCTransientCraftingContainer
TDecTreeDecorator
TDSSTrackingDebugSynchronizer.SourceSynchronizer
TFTreeFeature
TIBTestInstanceBlockEntity
TLTagLoader
TLEThreadedLevelLightEngine
TPTrunkPlacer
TrCTranslatableContents
TSTicketStorage
TVOTagValueOutput
UAFSUpdateActivityFromSchedule
VSelVibrationSelector
VSLVibrationSystem.Listener
VSTVibrationSystem.Ticker
WCUSWorldCreationUiState
WGLWorldGenLevel
WLWorldLoader
WOFWorldOpenFlows
WRWorldgenRandom
ZMZombieModel
ZRZombieRenderer
Auththe User Authenticator thread, not a class
Diskthe save on disk, not a class
Gamethe game’s own code above Blaze3D, not a class
Hookthe Server Shutdown Thread JVM hook, not a class
JVMthe process itself, not a class
Mainthe thread running whichever program’s Main the diagram is about — the client’s on the JVM main thread, the server’s on the thread the jar’s bundler starts — so not one class
Nettythe Netty event loop, not a class
Sessthe Mojang session service both machines call over HTTPS, not a class
Wirethe network between the two programs, not a class
Workerthe Util.backgroundExecutor pool, not a class