Blocks

File

Block configuration files are to be placed in MyDatapack/data/<namespace>/filament/block/myblock.json

Most Item behaviours such as food, fuel, cosmetic and more are supported by blocks.

You can also set components for the block-item, similar to item configurations using the components field


Contents

Blocks like candles or turtle eggs, with mutiple blocks in 1:

{
  "id": "mynamespace:pebbles",
  "vanillaItem": "minecraft:paper",
  "blockResource": {
    "models": {
      "count=1": "mynamespace:custom/block/stone/pebbles_1",
      "count=2": "mynamespace:custom/block/stone/pebbles_2",
      "count=3": "mynamespace:custom/block/stone/pebbles_3",
      "count=4": "mynamespace:custom/block/stone/pebbles_4"
    }
  },
  "itemResource": {
    "models": {
      "default": "mynamespace:custom/block/stone/pebbles_item"
    }
  },  
  "blockModelType": "biome_plant_block",
  "properties": {
    "destroyTime": 0,
    "blockBase": "minecraft:stone"
  },
  "group": "mynamespace:myblockgroup",
  "components": {
    ...
  }
}

The fields id, blockResource, and blockModelType are required to be set.


Fields:

id (required):

Identifier of the block and its item.

Example: mynamespace:myblock


vanillaItem:

The vanilla item that is sent to the client and gets skinned using CustomModelData internally. Defaults to minecraft:paper


blockResource (required):

An object that allows you to provide different block models for each block-state-property that may be provided by a block behaviour.

For now, it is only possible to provide block models directly, support for just textures is planned for a future version.

The keys work similar to the vanilla blockstate files in resourcepacks, you specify the model to use based on the block-state.

An example for the count block-behaviour:

{
  "blockResource": {
    "models": {
      "count=1": "mynamespace:custom/block/stone/pebbles_1",
      "count=2": "mynamespace:custom/block/stone/pebbles_2",
      "count=3": "mynamespace:custom/block/stone/pebbles_3",
      "count=4": "mynamespace:custom/block/stone/pebbles_4"
    }
  }
}

itemModel

Path to an item model definition (in assets/namespace/items/<name>.json) This overwrites the itemResource field.


itemResource:

An object that allows you to provide different item-models which may be required by some item-behaviours.

The trapped behaviour for example requires a model for the trapped key.

Example

{
  ...,
  "itemResource": {
    "models": {
      "default": "mynamespace:custom/trap/allay_trap"
      "trapped": "mynamespace:custom/trap/allay_trap_filled"
    }
  },
  ...
}


blockModelType (required in most cases):

The block model to use/retexture. See Block Model Types for a list of options.

For some block behaviours like slab it may be required to leave this field empty!


properties:

The properties of this block. See Block Properties for details.


group

Defines the item-group for this blocks' item. See Item Groups for more information.


components:

An object with minecraft components used for the item.

Example:

{
    ...
    "components": {
    "minecraft:tool": {
      "default_mining_speed":1.0,
      "damage_per_block":2,
      "rules":[
        {
          "speed":15,
          "correct_for_drops":true,
          "blocks":"#sword_efficient"
        },
        {
          "speed":1.5,
          "blocks":"cobweb"
        }
      ]
    }
  },
  ...
}