You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Minecraft 1.12.2's identifier system was designed around storage constraints that no longer apply. Blocks are int, biomes are byte, block metadata are 4-bit nibbles, and item damage is a short. These ceilings are not theoretical and are actively hit by different mods
GregTech packs material and form combinations into a single (sometimes multiple) item's metadata, exhausting the short range and making the encoding completely opaque to tooling and other mods.
Biome mods are capped at 256 total biomes globally across all mods combined, less than you think.
Blocks with more than 16 states must split across multiple block registrations, wasting IDs and complicating logic. (GregTech hits this limitation as well with ores and such)
getMetaFromState and getStateFromMeta require mod authors to manually bit-pack and unpack properties which makes the whole process error-prone, undocumented, and impossible to introspect at runtime.
Item damage doubles as both durability and variant discriminator with no declaration of which role it plays for any given item.
Biomes are strictly 2D, making distinct Y-level sensitive biomes impossible without dimension-level hacks.
Entity instance IDs wrap on long-running servers, causing two live entities to share an id simultaneously with no crash (sometimes) with issues happening in silent ways.
Description
Description coming soon...
Dependencies
No response
References
Minecraft 1.13 block state palette format
Minecraft 1.16 biome format
GregTech for its metaitems and metablocks
Guidelines
I have and will continue to adhere to the guidelines
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Unlock the limited range identifiers of game objects
Goals
longequivalents across all game objectsgetMetaFromState/getStateFromMetaItemStackmetadata with a typed property/state system, separating variant identity from durability as independent typed propertiesbytebiome IDs withlong-width IDs backed by a named registry, and introduce 3D biome sampling at configurable per-world resolutionintand widen all affected fieldsbytein both NBT and packets tolongNon Goals
TileEntity- it remains for stateful, ticking block logicMotivation
Minecraft 1.12.2's identifier system was designed around storage constraints that no longer apply. Blocks are
int, biomes arebyte, block metadata are 4-bit nibbles, and item damage is ashort. These ceilings are not theoretical and are actively hit by different modsshortrange and making the encoding completely opaque to tooling and other mods.getMetaFromStateandgetStateFromMetarequire mod authors to manually bit-pack and unpack properties which makes the whole process error-prone, undocumented, and impossible to introspect at runtime.Description
Description coming soon...
Dependencies
No response
References
Guidelines
Beta Was this translation helpful? Give feedback.
All reactions