Some flattened IDs are still incorrectly overwritten by original ID in blocks.json with format_version 1.21.20 or higher
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and its flattened ID, coarse_dirt. In addition, sandstone and red_sandstone only work when the entries are in a specific order.
For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:

Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
| Original ID | Flattened IDs | Flattened IDs Apply Separate Properties |
|---|---|---|
| dirt | dirt coarse_dirt |
❌(Never works when both IDs are present, regardless of ID order in blocks.json.) |
| stone | stone andesite polished_andesite granite polished_granite diorite polished_diorite |
✅ |
| prismarine | prismarine prismarine_bricks dark_prismarine |
✅ |
| quartz_block | quartz_block chiseled_quartz_block quartz_pillar smooth_quartz |
✅ |
| sponge | sponge wet_sponge |
✅ |
| anvil | anvil chipped_anvil damaged_anvil deprecated_anvil |
✅ |
| purpur_block | purpur_block purpur_pillar deprecated_purpur_block_1 deprecated_purpur_block_2 |
✅ |
| sand | sand red_sand |
✅ |
| sandstone | sandstone chiseled_sandstone cut_sandstone smooth_sandstone |
❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) |
| red_sandstone | red_sandstone chiseled_red_sandstone cut_red_sandstone smooth_red_sandstone |
❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) |
| cobblestone_wall | cobblestone_wall mossy_cobblestone_wall granite_wall diorite_wall andesite_wall sandstone_wall brick_wall stone_brick_wall mossy_stone_brick_wall nether_brick_wall end_stone_brick_wall prismarine_wall red_sandstone_wall red_nether_brick_wall |
✅ |
Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. Sandstone IDs should do this as well.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. sandstone and red_sandstone IDs overwrite properties set earlier in the file for all sandstone variants.
Created Issue:
Some flattened IDs are still incorrectly overwritten by original ID in blocks.json with format_version 1.21.20 or higher
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and stone (and their flattened IDs).
For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅
Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. The stone ID works the same.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. The stone ID also overwrites its flattened IDs in the file.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and stone (and their flattened IDs).
For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅
Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. The stone ID works the same.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. The stone ID also overwrites its flattened IDs in the file.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and stone (and their flattened IDs).
For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅
Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. The stone ID works the same.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. The stone ID also overwrites its flattened IDs in the file.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and stone (and their flattened IDs).
For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅
Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. The stone ID works the same.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. The stone ID also overwrites its flattened IDs in the file.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and stone (and their flattened IDs).
For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅
Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. The stone ID works the same.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. The stone ID also overwrites its flattened IDs in the file.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and stone
(andtheirflattened IDs).For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅ Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. The stone ID works the same.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. The stone ID also overwrites its flattened IDs in the file.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and its flattened ID, coarse_dirt.
For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅ Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. The stone ID works the same.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. The stone ID also overwrites its flattened IDs in the file.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
Two blocks still do not work correctly: dirt and its flattened ID, coarse_dirt.For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite❌(Never works when both IDs are present, regardless of ID order in blocks.json.) prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅ Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20.
Thestone ID works the same.Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time.
Thestone IDalsooverwrites its flattened IDs in the file.A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
+Two blocks still do not work correctly: dirt and its flattened ID, coarse_dirt. In addition, sandstone and red_sandstone only work when the entries are in a specific order.
+For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite✅ prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅ Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. Sandstone IDs should do this as well.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. sandstone and red_sandstone IDs overwrite properties set earlier in the file for all sandstone variants.
A "format_version" field was introduced in 1.21.20 for the blocks.json file. This controls how IDs which were flattened, but remained IDs for a single block, are treated. For example, sponge no longer controls wet_sponge as of format_version 1.21.30.
+Two blocks still do not work correctly: dirt and its flattened ID, coarse_dirt. In addition, sandstone and red_sandstone only work when the entries are in a specific order.
+For example, the following configuration (from the attached sample pack) should cause dirt and coarse_dirt to do different things:
Dirt: Random texture rotation, sculk sounds
Coarse Dirt: No rotation, bamboo sounds
This does not have the intended result in-game. Coarse dirt still rotates and makes sculk sounds:
Blocks which were flattened and retained their original ID as a single ID can be affected by this problem, but only some IDs are affected. Here is a table:
Original ID Flattened IDs Flattened IDs Apply Separate Properties dirt dirt
coarse_dirt❌(Never works when both IDs are present, regardless of ID order in blocks.json.) stone stone
andesite
polished_andesite
granite
polished_granite
diorite
polished_diorite✅ prismarine prismarine
prismarine_bricks
dark_prismarine✅ quartz_block quartz_block
chiseled_quartz_block
quartz_pillar
smooth_quartz✅ sponge sponge
wet_sponge✅ anvil anvil
chipped_anvil
damaged_anvil
deprecated_anvil✅ purpur_block purpur_block
purpur_pillar
deprecated_purpur_block_1
deprecated_purpur_block_2✅ sand sand
red_sand✅ sandstone sandstone
chiseled_sandstone
cut_sandstone
smooth_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) red_sandstone red_sandstone
chiseled_red_sandstone
cut_red_sandstone
smooth_red_sandstone❌ (Only works if new ID is placed after original ID in blocks.json. The opposite order fails.) cobblestone_wall cobblestone_wall
mossy_cobblestone_wall
granite_wall
diorite_wall
andesite_wall
sandstone_wall
brick_wall
stone_brick_wall
mossy_stone_brick_wall
nether_brick_wall
end_stone_brick_wall
prismarine_wall
red_sandstone_wall
red_nether_brick_wall✅ Expected Result
When blocks.json format_version is set to 1.21.20 or higher, properties assigned to dirt in will NOT be applied to coarse_dirt, which is a separate block ID as of 1.21.20. Sandstone IDs should do this as well.
Observed Result
In blocks.json with 1.21.20+ format_versions, coarse_dirt properties are still overwritten by dirt, making it impossible to modify properties of both blocks at the same time. sandstone and red_sandstone IDs overwrite properties set earlier in the file for all sandstone variants.
As stated in another comment, stone IDs have been separated in blocks.json in the vanilla_1.21.10 resources. Unfortunately, they are affected by MCPE-186255, which means they do not work separately.
The planks split IDs have not appeared in the vanilla resources yet, but they are functional. Here is an example where I used the "oak_planks" ID in blocks.json to make Oak Planks randomly rotate, without affecting Spruce Planks. (Halloween Mash-up is also applied):
Once the split planks IDs are included in the vanilla resources, this report can be considered "fixed" and the remaining issues with blocks.json should move to MCPE-186255.

