Guides / Commands & Data

Un archivo de estructura .nbt almacena índices de paleta, no nombres de bloques — por eso es tan pequeño

Tres claves contienen una construcción entera: tamaño, paleta y bloques. Cada bloque es un número entero que apunta a la paleta, por lo que un volumen de piedra de 32³ cuesta un hilo y 32.768 números.

Un archivo de estructura .nbt —lo que un Bloque estructural guarda y un paquete de datos distribuye— es un formato mucho más simple de lo que parece desde fuera. Todo lo que una construcción necesita se encuentra en un puñado de claves de nivel superior, y una decisión de diseño explica por qué los archivos son tan pequeños.

Las tres claves que contienen la construcción

size     [x, y, z]                       — a list of exactly three integers
palette  [ { Name, Properties } … ]      — every DISTINCT block state, once
blocks   [ { pos, state, nbt } … ]       — one entry per placed block

palette contiene cada estado de bloque distinto exactamente una vez. Una entrada es un Name —el ID del bloque, como minecraft:oak_stairs— más un compuesto Properties opcional que contiene su estado de bloque (blockstate), como facing: north y half: bottom.

blocks nunca repite un nombre. Cada entrada contiene un pos de tres números enteros y un state, y state es un índice de la paleta, no un ID de bloque. Las Escaleras de roble orientadas al norte son datos de Hilo una vez, y cada una de ellas después es un número entero pequeño.

Ese es todo el truco. Un volumen de 32 × 32 × 32 de Piedra simple es una entrada de paleta y 32.768 números de índice, no 32.768 copias de la palabra minecraft:stone. La paleta crece con la cantidad de cosas diferentes con las que construiste, y la lista de bloques crece con lo grande que construiste. Esos son números muy diferentes, y solo uno de ellos suele ser grande.

Dos consecuencias que vale la pena considerar en el diseño

Los estados de bloque (blockstates) multiplican tu paleta, no tu lista de bloques. Las Escaleras de roble no son una entrada de paleta, son una por cada orientación que realmente usaste. Orientadas en cuatro direcciones, mitad superior e inferior, rectas y ambas esquinas interiores y exteriores: el mismo bloque puede ocupar una docena de ranuras de paleta. Así, una construcción con muchos detalles tiene una paleta grande y una simple no, independientemente del tamaño.

Solo los bloques colocados obtienen una entrada. La lista de bloques es una lista, no una matriz 3D densa, y una entrada que no está simplemente no está; el visor de esta página llena su cuadrícula con -1 y trata una coordenada faltante como si no hubiera nada colocado. Una construcción hueca es realmente más barata de almacenar que una sólida de las mismas dimensiones.

nbt es por bloque y opcional

Cada entrada en blocks puede llevar su propio compuesto nbt, y la mayoría no lo hacen. Aquí es donde residen el contenido de un Cofre, el texto de un cartel, la criatura de un generador y los patrones de un estandarte, adjuntos al bloque individual en lugar de a la paleta.

La distinción importa: los datos de la paleta se comparten y los datos del bloque no. Dos Cofres son una entrada de paleta, porque son el mismo estado de bloque, pero cada uno mantiene su propio inventario en su propio nbt. Cambiar el estado del bloque afecta la paleta; cambiar lo que hay dentro afecta una entrada en la lista de bloques.

Leyendo una capa a la vez

El visor aquí es deliberadamente 2D. Para dibujar la capa y, recorre la lista de bloques, mantiene las entradas cuyo pos[1] es igual a y, y busca el state de cada una en la paleta. Ese es todo el algoritmo, y vale la pena conocerlo porque también es cómo inspeccionarías uno de estos archivos tú mismo: no hay un índice espacial que construir ni descompresión más allá del envoltorio gzip. El formato es una lista plana que filtras.

Lo que también significa que un archivo de estructura no te dice nada sobre dónde pertenece en un mundo. size es un cuadro delimitador y los valores pos son relativos a su esquina. La ubicación es asunto del Bloque estructural, no del archivo.

Herramientas de estructura y componentes NBT →

More guides

Browse all →

¿Buscas más herramientas de Minecraft?

Un conjunto de generadores, visores y conversores que funcionan en el navegador — todos gratis.