u8 : metals-palette max index <-- ignore
u16 : number of encoded ItemType's
{
u16 : ItemType
u8 : subtitle-index <-- ignore if you dont care about the subtitles
} * number-of-encoded-ItemType's [ sorted by itemId for binary search
aka if 9333 is the 102nd itemtype in the list, then item-title at index 102 is the title for that item
I took the compileditems.msgpack and the english.msgpack ⌠converted them to Json, and paired together the fields I needed which is how i got all the item_name, item ID, and the friendly name ⌠which is what i shared on google drive. The one thing that I wasnât able to find within the itemcolorstring.dat was how to determine if the item should be excluded from display, due to not really being an item, or being a cheat / creative only item, etc. The msgpack method has a ton of details on each item that allowed me to filter by. only 4 items werenât matched up, which was the glass items⌠and the oort stones werenât detected because they were flaged as ânotGivenâ ⌠but I white listed those to include them.
This is because the game uses block IDs for various implementation states, for example to differentiate between signs-in-the-process-of-being-created vs signs-in-a-valid-state.
If you look at the internal names theyâre a different block internally, even though they share the same language string. Signs have a complete version, some blocks have a dugup version etc.