Skip to content

These docs were made completely by AI, so they might be right, or wrong, you'll need to test them yourself. This was made for a easier understanding of everything. So use at your own risk. If anything is wrong, please don't hurt to make a PR on the page you have a problem with. ON GITHUB

Block ID Registry

Every block (called a “Tile” internally) is registered in Tile::staticCtor() in Minecraft.World/Tile.cpp. The ID passed to each tile constructor is the numeric block ID used on the wire and in save data.

The LCEMP repo covers blocks up to ID 171 (TU12-era). The MinecraftConsoles repo goes further, adding blocks up through ID 173 (TU19-era content like stained clay, hoppers, and hay blocks).

These are the blocks present in the LCEMP source (the earlier codebase, roughly TU12).

IDField NameClassTexture Name
1rockStoneTilestone
2grassGrassTilegrass
3dirtDirtTiledirt
4stoneBrickTilestonebrick
5woodWoodTilewood
6saplingSaplingsapling
7unbreakableTilebedrock
8waterLiquidTileDynamicwater
9calmWaterLiquidTileStaticwater
10lavaLiquidTileDynamiclava
11calmLavaLiquidTileStaticlava
12sandHeavyTilesand
13gravelGravelTilegravel
14goldOreOreTileoreGold
15ironOreOreTileoreIron
16coalOreOreTileoreCoal
17treeTrunkTreeTilelog
18leavesLeafTileleaves
19spongeSpongesponge
20glassGlassTileglass
21lapisOreOreTileoreLapis
22lapisBlockTileblockLapis
23dispenserDispenserTiledispenser
24sandStoneSandStoneTilesandStone
25musicBlockMusicTilemusicBlock
26bedBedTilebed
27goldenRailRailTilegoldenRail
28detectorRailDetectorRailTiledetectorRail
29pistonStickyBasePistonBaseTilepistonStickyBase
30webWebTileweb
31tallgrassTallGrasstallgrass
32deadBushDeadBushTiledeadbush
33pistonBasePistonBaseTilepistonBase
34pistonExtensionPistonExtensionTile(none)
35clothClothTilecloth
36pistonMovingPiecePistonMovingPiece(none)
37flowerBushflower
38roseBushrose
39mushroom1Mushroommushroom
40mushroom2Mushroommushroom
41goldBlockMetalTileblockGold
42ironBlockMetalTileblockIron
43stoneSlabStoneSlabTilestoneSlab
44stoneSlabHalfStoneSlabTilestoneSlab
45redBrickTilebrick
46tntTntTiletnt
47bookshelfBookshelfTilebookshelf
48mossStoneTilestoneMoss
49obsidianObsidianTileobsidian
50torchTorchTiletorch
51fireFireTilefire
52mobSpawnerMobSpawnerTilemobSpawner
53stairs_woodStairTilestairsWood
54chestChestTilechest
55redStoneDustRedStoneDustTileredstoneDust
56diamondOreOreTileoreDiamond
57diamondBlockMetalTileblockDiamond
58workBenchWorkbenchTileworkbench
59cropsCropTilecrops
60farmlandFarmTilefarmland
61furnaceFurnaceTilefurnace
62furnace_litFurnaceTilefurnace
63signSignTilesign
64door_woodDoorTiledoorWood
65ladderLadderTileladder
66railRailTilerail
67stairs_stoneStairTilestairsStone
68wallSignSignTilesign
69leverLeverTilelever
70pressurePlate_stonePressurePlateTilepressurePlate
71door_ironDoorTiledoorIron
72pressurePlate_woodPressurePlateTilepressurePlate
73redStoneOreRedStoneOreTileoreRedstone
74redStoneOre_litRedStoneOreTileoreRedstone
75notGate_offNotGateTilenotGate
76notGate_onNotGateTilenotGate
77buttonButtonTilebutton
78topSnowTopSnowTilesnow
79iceIceTileice
80snowSnowTilesnow
81cactusCactusTilecactus
82clayClayTileclay
83reedsReedTilereeds
84recordPlayerRecordPlayerTilejukebox
85fenceFenceTilefence
86pumpkinPumpkinTilepumpkin
87hellRockHellStoneTilehellrock
88hellSandHellSandTilehellsand
89lightGemLightGemTilelightgem
90portalTilePortalTileportal
91litPumpkinPumpkinTilelitpumpkin
92cakeCakeTilecake
93diode_offDiodeTilediode
94diode_onDiodeTilediode
95aprilFoolsJokeLockedChestTilelockedchest
96trapdoorTrapDoorTiletrapdoor
97monsterStoneEggStoneMonsterTilemonsterStoneEgg
98stoneBrickSmoothSmoothStoneBrickTilestonebricksmooth
99hugeMushroom1HugeMushroomTilemushroom
100hugeMushroom2HugeMushroomTilemushroom
101ironFenceThinFenceTilefenceIron
102thinGlassThinFenceTilethinGlass
103melonMelonTilemelon
104pumpkinStemStemTilepumpkinStem
105melonStemStemTilepumpkinStem
106vineVineTilevine
107fenceGateFenceGateTilefenceGate
108stairs_bricksStairTilestairsBrick
109stairs_stoneBrickSmoothStairTilestairsStoneBrickSmooth
110mycelMycelTilemycel
111waterLilyWaterlilyTilewaterlily
112netherBrickTilenetherBrick
113netherFenceFenceTilenetherFence
114stairs_netherBricksStairTilestairsNetherBrick
115netherStalkNetherStalkTilenetherStalk
116enchantTableEnchantmentTableTileenchantmentTable
117brewingStandBrewingStandTilebrewingStand
118cauldronCauldronTilecauldron
119endPortalTileTheEndPortal(none)
120endPortalFrameTileTheEndPortalFrameTileendPortalFrame
121whiteStoneTilewhiteStone
122dragonEggEggTiledragonEgg
123redstoneLightRedlightTileredstoneLight
124redstoneLight_litRedlightTileredstoneLight
125woodSlabWoodSlabTilewoodSlab
126woodSlabHalfWoodSlabTilewoodSlab
127cocoaCocoaTilecocoa
128stairs_sandstoneStairTilestairsSandstone
129emeraldOreOreTileoreEmerald
130enderChestEnderChestTileenderChest
131tripWireSourceTripWireSourceTiletripWireSource
132tripWireTripWireTiletripWire
133emeraldBlockMetalTileblockEmerald
134woodStairsDarkStairTilestairsWoodSpruce
135woodStairsBirchStairTilestairsWoodBirch
136woodStairsJungleStairTilestairsWoodJungle
139cobbleWallWallTilecobbleWall
140flowerPotFlowerPotTileflowerPot
141carrotsCarrotTilecarrots
142potatoesPotatoTilepotatoes
143button_woodButtonTilebutton
144skullSkullTileskull
145anvilAnvilTileanvil
153netherQuartzOreTilenetherquartz
155quartzBlockQuartzBlockTilequartzBlock
156stairs_quartzStairTilestairsQuartz
171woolCarpetWoolCarpetTilewoolCarpet

The MinecraftConsoles repo has a newer codebase (roughly TU19). It renames some fields and adds a bunch of new blocks. Here is every block that was added or changed compared to the LCEMP source.

Several fields got renamed between the two repos:

IDLCEMP FieldMinecraftConsoles FieldNotes
1rockstoneSame StoneTile class
4stoneBrickcobblestoneTexture changed to cobblestone
25musicBlocknoteblockClass changed to NoteBlockTile (was MusicTile)
35clothwoolClass changed to ColoredTile (was ClothTile)
48mossStonemossyCobblestoneTexture changed to cobblestone_mossy
59cropswheatSame CropTile class
75notGate_offredstoneTorch_offSame NotGateTile class
76notGate_onredstoneTorch_onSame NotGateTile class
77buttonbuttonClass changed to StoneButtonTile
84recordPlayerjukeboxClass changed to JukeboxTile
87hellRocknetherRackClass changed to NetherrackTile
88hellSandsoulsandClass changed to SoulSandTile
89lightGemglowstoneField renamed only
93diode_offdiode_offClass changed to RepeaterTile (was DiodeTile)
98stoneBrickSmoothstoneBrickSame SmoothStoneBrickTile class
99hugeMushroom1hugeMushroom_brownSame HugeMushroomTile class
100hugeMushroom2hugeMushroom_redSame HugeMushroomTile class
115netherStalknetherStalkClass changed to NetherWartTile
121whiteStoneendStoneField renamed only
143button_woodbutton_woodClass changed to WoodButtonTile
IDField NameClassTexture Name
137commandBlock(not registered in staticCtor)(unknown)
138beaconBeaconTilebeacon
146chest_trapChestTile (TYPE_TRAP)(inherits chest)
147weightedPlate_lightWeightedPressurePlateTilegold_block
148weightedPlate_heavyWeightedPressurePlateTileiron_block
149comparator_offComparatorTilecomparator_off
150comparator_onComparatorTilecomparator_on
151daylightDetectorDaylightDetectorTiledaylight_detector
152redstoneBlockPoweredMetalTileredstone_block
154hopperHopperTilehopper
157activatorRailPoweredRailTilerail_activator
158dropperDropperTiledropper
159clayHardened_coloredColoredTilehardened_clay_stained
160stained_glass_pane(declared in Tile.h)(unknown)
170hayBlockHayBlockTilehay_block
172clayHardenedTilehardened_clay
173coalBlockTilecoal_block

Several blocks use auxiliary data bits to store sub-types:

BlockData Meaning
sapling (6)0 = Oak, 1 = Spruce, 2 = Birch, 3 = Jungle
treeTrunk (17)0 = Oak, 1 = Spruce, 2 = Birch, 3 = Jungle
leaves (18)Low 2 bits: 0 = Oak, 1 = Spruce, 2 = Birch, 3 = Jungle
sandStone (24)0 = Normal, 1 = Chiseled, 2 = Smooth
cloth/wool (35)0 = White … 15 = Black (standard wool colors)
stoneSlab / stoneSlabHalf (43/44)0 = Stone, 1 = Sandstone, 2 = Wooden, 3 = Cobblestone, 4 = Brick, 5 = Stone Brick
woodSlab / woodSlabHalf (125/126)0 = Oak, 1 = Spruce, 2 = Birch, 3 = Jungle
wood (5)0 = Oak, 1 = Spruce, 2 = Birch, 3 = Jungle
stoneBrickSmooth/stoneBrick (98)0 = Normal, 1 = Mossy, 2 = Cracked, 3 = Chiseled
monsterStoneEgg (97)0 = Stone, 1 = Cobblestone, 2 = Stone Brick
cobbleWall (139)0 = Cobblestone, 1 = Mossy Cobblestone
quartzBlock (155)0 = Default, 1 = Chiseled, 2 = Pillar
woolCarpet (171)Same color values as wool
anvil (145)0 = Anvil, 1 = Slightly Damaged, 2 = Very Damaged
clayHardened_colored (159)0 = White … 15 = Black (same as wool)
  • LCEMP tile IDs declared in: Minecraft.World/Tile.h (lines 163-315)
  • LCEMP tile registration in: Minecraft.World/Tile.cpp, Tile::staticCtor() (line 224)
  • MinecraftConsoles tile IDs declared in: Minecraft.World/Tile.h (lines 369-542)
  • MinecraftConsoles tile registration in: Minecraft.World/Tile.cpp, Tile::staticCtor() (line 243)