Block model types

blockModelType values are available through polymer and limited in number, since they re-use block-states that are visually the same on the client.

The following options are availble, with their amount:

blockModelTypeAmount of blocks
full_block1149
transparent_block52
transparent_block_waterlogged52
biome_transparent_block78
biome_transparent_block_waterlogged65
farmland_block5
vines_block100
plant_block8
biome_plant_block15
kelp_block25
cactus_block15
sculk_sensor_block150
sculk_sensor_block_waterlogged150
tripwire_block32
tripwire_block_flat32
top_slab5
top_slab_waterlogged5
bottom_slab5
bottom_slab_waterlogged5
top_trapdoor21
bottom_trapdoor21
north_trapdoor21
east_trapdoor21
south_trapdoor21
west_trapdoor21
top_trapdoor_waterlogged21
bottom_trapdoor_waterlogged21
north_trapdoor_waterlogged21
east_trapdoor_waterlogged21
south_trapdoor_waterlogged21
west_trapdoor_waterlogged21
north_door168
east_door168
south_door168
west_door168
top_scaffolding168
bottom_scaffolding168
top_scaffolding_waterlogged168
bottom_scaffolding_waterlogged168

See the polymer documentation for more infos about the properties of the block model types

As of filament 0.16 it is possible to flag the block as virtual, to allow for an unlimited amount of block states. See Blocks for details.

When choosing blocks that break instantly on the client, like plant_block or tripwire_block for example, the destroyTime property in the block config has to be 0 as well.

You can map the blockModelType field of block configs to blockstates, this allows you to change the hitbox of the block depending on the block-state.

In some cases, for example when using the waterloggable behaviour, you might want to specify the waterlogged state for your custom block.

Example

id: mynamespace:half_slab
blockTags:
  - minecraft:climbable
blockResource:
  models:
    waterlogged=false: minecraft:custom/block/dirt/dirt_slab
    waterlogged=true: minecraft:custom/block/dirt/dirt_slab
itemResource:
  models:
    default: minecraft:custom/block/dirt/dirt_slab
behaviour:
  waterloggable: {}
blockModelType:
  waterlogged=false: sculk_sensor_block
  waterlogged=true: sculk_sensor_block_waterlogged
properties:
  blockBase: minecraft:dirt
{
  "id": "mynamespace:half_slab",
  "blockTags": ["minecraft:climbable"],
  "blockResource": {
    "models" : {
      "waterlogged=false": "minecraft:custom/block/dirt/dirt_slab",
      "waterlogged=true": "minecraft:custom/block/dirt/dirt_slab"
    }
  },
  "itemResource": {
    "models" : {
      "default": "minecraft:custom/block/dirt/dirt_slab"
    }
  },
  "behaviour": {
    "waterloggable": {}
  },
  "blockModelType": {
    "waterlogged=false": "sculk_sensor_block",
    "waterlogged=true": "sculk_sensor_block_waterlogged"
  },
  "properties": {
    "blockBase": "minecraft:dirt"
  }
}