mojira.dev
MCPE-100267

ID changes left behind legacy IDs

The ID changes from the 1.18 betas are a great step to parity, but now duplicate item IDs exist.

All items that changed their ID have their old ID still as a valid value, eg record_mellohi alongside music_disc_mellohi.
This affects both renamed items and items which got split up (dyes, boats, spawn eggs).

Item

Remnant ID

Note

Fixed in

Turtle Scute

turtle_shell_piece
scute

 

 

Enchanted Apple

appleenchanted

 

 

Dark Oak Sign

darkoak_sign

 

 

Boat

boat

 

 

Lodestone Compass

lodestonecompass

 

 

Raw Cod

fish

 

 

Tropical Fish

clownfish

 

 

Cooked Cod

cooked_fish

 

 

Dye

dye

 

 

Melon

melon

Needs to be done to allow melon_block to melon rename.

 

Glistering Melon

speckled_melon

 

 

Spawn Egg

spawn_egg

Using this ID without a data value gives a broken spawn egg.

 

Fire Charge

fireball

 

 

Empty Map

emptymap

 

 

Carrot on a Stick

carrotonastick

 

 

Nether Star

netherstar

 

 

Firework Rocket

fireworks

 

 

Firework Star

fireworkscharge

 

 

Iron Horse Armor

ironhorsearmor

 

 

Gold Horse Armor

goldhorsearmor

 

 

Diamond Horse Armor

diamondhorsearmor

 

 

Leather Horse Armor

leatherhorsearmor

 

 

Raw Mutton

muttonraw

 

 

Cooked Mutton

muttoncooked

 

 

Popped Chorus Fruit

chorus_fruit_popped

 

 

Totem of Undying

totem

 

 

Music Disc - 13

record_13

 

 

Music Disc - Cat

record_cat

 

 

Music Disc - Blocks

record_blocks

 

 

Music Disc - Chrip

record_chirp

 

 

Music Disc - Far

record_far

 

 

Music Disc - Mall

record_mall

 

 

Music Disc - Mellohi

record_mellohi

 

 

Music Disc - Stal

record_stal

 

 

Music Disc - Strad

record_strad

 

 

Music Disc - Ward

record_ward

 

 

Music Disc - 11

record_11

 

 

Music Disc - Wait

record_wait

 

 

Music Disc - Pigstep

record_pigstep

 

 

Music Disc - 5

record_5

Was added after the other record renames.

 

Music Disc - Relic

record_relic

Was added after the other record renames.

 

Banner Pattern

banner_pattern

 

 

Name Tag

nametag

 

 

Wool

wool

 

 

Fence

fence

 

 

Carpet

carpet

 

 

Oak/Spruce/Birch/Jjngle Log

log

 

 

Acacia/Dark Oak Log

log2

 

 

Coral

coral

 

 

Concrete

concrete

 

 

Stained Glass

stained_glass

 

 

Stained Glass Pane

stained_glass_pane

 

 

Concrete Powder

concrete_powder

 

 

Colored Terracotta

stained_hardened_clay

 

 

Planks

planks

 

 

Stone Variants

stone

Only the variants should be removed, not the ID as "Stone" uses (and should use) that as ID.

 

Hard Stained Glass

hard_stained_glass

Education exclusive.

 

Hard Stained Glass Pane

hard_stained_glass_pane

Education exclusive.

 

Grass Block

grass

 

 

Oak/Spruce/Birch/Jungle Leaves

leaves

 

 

Acacia/Dark Oak Leaves

leaves2

 

 

Double Wooden Slabs

double_wooden_slab

 

 

Wooden Slabs

wooden_slab

 

 

These IDs are no longer suggested, but do still work.

Behavior packs and command blocks, already store the version they're made in, which makes them look what the command would do in that version, not the current one. The alliases are not at all needed for backwards compatibility, additionally, this is preventing the full flattening from happening, as a bunch of IDs are changed to another thing in java's flattening. melon: melon slice -> melon block, stone_slab: smooth stone, sandstone, cobblestone, brick, stone brick, quartz and nether brick slab -> actual stone slab, etc. so in order for the full flattening to propperly happen, these legacy IDs need to go, and doing so will NOT break old command contraptions and behavior packs already.

Linked issues

Attachments

Comments 10

So is this an example of you being able to have “minecraft:pig” as well as just “pig”

@@unknown that’s intended. What’s not is having a block have its legacy ID and current ID listed. Example: Music_disc_mellohi and its legacy was record_mellohi. That legacy should be gone.

So is “minecraft:pig” is a pig’s legacy ID and just “pig” is its new ID.

No, minecraft:pig is the full namespaced ID, pig is negating the namespace, making it detault to minecraft:

The so-called legacy IDs have to be retained to avoid breaking worlds that might use them in command blocks. You can use either the legacy ID or the new one in a command. For items that use a data value to distinguish them (e.g. "boat:1") you should omit the data value argument when using the new ID (i.e. "spruce_boat").

Since Mojang seems to be moving towards flattening the hierarchy of ID + DataValue, it's probably best if we get used to using the new names (not to mention that they're a lot easier to remember than numeric data values). Note, however, that most blocks and a few items have not yet been assigned new names. I suspect that this is work in progress, and it's probably not necessary to update this report to add more names unless it's actively causing you a problem.

The thing is, behavior packs and command blocks, already store the version they're made in, which makes them look what the command would do in that version, not the current one. The alliases are not at all needed for backwards compatibility, additionally, this is preventing the full flattening from happening, as a bunch of IDs are changed to another thing in java's flattening. melon: melon slice -> melon block, grass: grass block -> tall grass, etc. so in order for the full flattening to propperly happen, these legacy IDs need to go, and doing so will NOT break old command contraptions and behavior packs already. 

Considering both this and MCPE-101388 are flattening-related, I'd suggestmarking them as related.

This is not fixed, Mojang. Why are you lying.

user-f2760

(Unassigned)

410529

Confirmed

Multiple

alias, block-id, flattening, item-ids

1.20.30.22 Preview, 1.20.30.21 Preview, 1.20.20.21 Preview, 1.20.20.20 Preview, 1.20.10.20 Preview, ..., 1.20.50.21 Preview, 1.20.40, 1.20.60.23 Preview, 1.20.60.24 Preview, 1.20.51 Hotfix

1.21.30.23 Preview, 1.21.30

Retrieved