Raspberry Pi Minecraft Block ID Number Reference

1

When you’ve installed Minecraft on the Raspberry Pi and setup the Python API you will want to get creating scripts to manipulate the Minecraft World. This is going to involve a lot of block manipulation.

Each type of block (sand, dirt, water etc) has a unique ID number associated with it. It is helpful to have a list of these numbers to hand so you can use them in your code.

There aren’t as many blocks in the Pi edition as the full PC versions but there are still plenty to work with.

Minecraft Screenshot

Here is the full list defined as constants in the API with their block ID numbers :

API Blocks
=======================
AIR                   0
STONE                 1
GRASS                 2
DIRT                  3
COBBLESTONE           4
WOOD_PLANKS           5
SAPLING               6
BEDROCK               7
WATER_FLOWING         8
WATER                 8
WATER_STATIONARY      9
LAVA_FLOWING         10
LAVA                 10
LAVA_STATIONARY      11
SAND                 12
GRAVEL               13
GOLD_ORE             14
IRON_ORE             15
COAL_ORE             16
WOOD                 17
LEAVES               18
GLASS                20
LAPIS_LAZULI_ORE     21
LAPIS_LAZULI_BLOCK   22
SANDSTONE            24
BED                  26
COBWEB               30
GRASS_TALL           31
WOOL                 35
FLOWER_YELLOW        37
FLOWER_CYAN          38
MUSHROOM_BROWN       39
MUSHROOM_RED         40
GOLD_BLOCK           41
IRON_BLOCK           42
STONE_SLAB_DOUBLE    43
STONE_SLAB           44
BRICK_BLOCK          45
TNT                  46
BOOKSHELF            47
MOSS_STONE           48
OBSIDIAN             49
TORCH                50
FIRE                 51
STAIRS_WOOD          53
CHEST                54
DIAMOND_ORE          56
DIAMOND_BLOCK        57
CRAFTING_TABLE       58
FARMLAND             60
FURNACE_INACTIVE     61
FURNACE_ACTIVE       62
DOOR_WOOD            64
LADDER               65
STAIRS_COBBLESTONE   67
DOOR_IRON            71
REDSTONE_ORE         73
SNOW                 78
ICE                  79
SNOW_BLOCK           80
CACTUS               81
CLAY                 82
SUGAR_CANE           83
FENCE                85
GLOWSTONE_BLOCK      89
BEDROCK_INVISIBLE    95
STONE_BRICK          98
GLASS_PANE          102
MELON               103
FENCE_GATE          107
GLOWING_OBSIDIAN    246
NETHER_REACTOR_CORE 247

Some of the blocks that appear in the inventory screen aren’t listed but here they are :

Non-API Blocks
=======================
PAINTING            321
STONE_STAIRS         67
OAK_STAIRS           53
OAK_STAIRS           59
NETHERRACK           87
TRAPDOOR             96
MELON_SEEDS         105
BRICK_STAIRS        108
SANDSTONE_STAIRS    128
STONE_BRICK_STAIRS  109
NETHER_BRICK        112
NETHER_BRICK_STAIRS 114
QUARTZ_BLOCK        155
QUARTZ_STAIRS       156
STONE_CUTTER        245
BONE_MEAL           351

If you have imported the “block” library at the top of your script like this :

import mcpi.block as block

you can call up the blocks in the “API Block List” using the following syntax :

block.MELON.id

In this example it saves you defining your own variable or using the number 103 and may make your script more readable.

To use the blocks in the “Non-API Block List” you will have to use the block number directly.

Examples

Place a block of sandstone :

mc.setBlock(10,10,10,block.SANDSTONE.id)

Place a stone cutter on top of the sandstone :

mc.setBlock(10,11,10,245)

Place a block of grass on top of the stone cutter :

mc.setBlock(10,11,10,block.GRASS.id)
Share.

1 Comment

  1. Can I see an example of an block ID with a .data extension? I’m trying to rotate some stairs by using the block ID 108.3, but to no avail. What would I need to do to have the ID make the block rotate?

Leave A Reply