Minecraft Wiki
Este artículo necesita reescribirse para que sea más comprensible al leerse. 
Puedes reescribir la página para ayudar a hacer más comprensible su contenido.
Esta característica es exclusiva de Bedrock Edition. 


Este artículo trata sobre el formato desde Bedrock Edition 1.2.13. Para el formato en versiones anteriores del juego, véase Formato de nivel Bedrock Edition/Historial.

Bedrock Edition utiliza una versión modificada de LevelDB de Google, que utiliza el formato de compresión Zlib para el almacenamiento de niveles.

Formato basado en LevelDB[]

Formato LevelDB variante de Mojang[]

Mojang ha modificado el Original LevelDB de Google para agregar compresión Zlib y compatibilidad con Windows. El código está disponible en https://github.com/Mojang/leveldb-mcpe y Tommaso documenta las instrucciones de construcción en https://twitter.com/_tomcc/status/477950809427427328.

Para una implementación Java de LevelDB + Zlib, consulte https://github.com/tinfoiled/leveldb

La biblioteca leveldb de Google ha evolucionado mucho desde que Mojang lanzó su versión, pero la versión de Mojang todavía funciona (a partir de 2022). El código requiere algunos ajustes menores para compilarse:

  • db/snappy_compressor.cc debe hacer referencia a incluir <snappy.h> en lugar de <snappy/snappy.h>
  • table/table_test.cc contiene dos referencias a snappy que no se pueden resolver pero son irrelevantes. puerto::Snappy_Compress y leveldb::SnappyCompressor. Si simplemente se comentan, el resto se compilará y funcionará correctamente.

La base de datos se almacena en el subdirectorio db/ de un mundo Bedrock Edition. La ruta de la base de datos que se pasa a la API de LevelDB es la ruta de este directorio, no la ruta de ningún archivo que contenga. Parece que aquí también se almacena la generación del terreno. Esto se debe a que puedes convertir un mundo antiguo en infinito reemplazando su carpeta db con una de un mundo infinito.

Formato de clave fragmentada[]

Una clave de base de datos para datos relacionados con un fragmento es la concatenación de:

  • Dos enteros little-endian de 32 bits con signo (x y z en coordenadas de fragmentos, respectivamente),
  • Un tercer entero little-endian opcional de 32 bits (1 para el Nether, 2 para el End, omitido para la Superficie),
  • Una etiqueta de un byte que especifica el tipo de registro representado por la clave (ver tabla), y
  • (para un registro "SubChunkPrefix") un índice de subfragmento de un byte (de 0 a 15).

En consecuencia, dicha clave puede tener una longitud de 9, 10, 13 o 14 bytes. No todos los subfragmentos existen necesariamente para un fragmento determinado.

Los registros "BlockEntity", "Entity" y "PendingTicks" están representados por una secuencia de etiquetas raíz concatenadas en una variante de NBT que almacena las longitudes y los tipos de enteros multibyte en formato little-endian, a diferencia de al formato big-endian utilizado por Java Edition o la especificación NBT original.

El valor 0 se utiliza en el registro "Versión" en mundos de estilo antiguo; Los valores más altos se utilizan en mundos infinitos.

Etiquetas de tipo clave
Byte de etiqueta Nombre Estructura Descripción
Dec Hex ASCII
43 2B + Data3D Mapa de altura (256x2 bytes)

Datos del bioma (longitudes variables)

Los biomas se almacenan como paletas similares a bloques. Se escriben exactamente 25 paletas. Los ID de bioma se escriben como números enteros.
44 2C , Versión 1 byte Un byte
45 2D - Datos2D Mapa de altura (256x2 bytes)

Biomas 2D (256x1 bytes)

Los ID de bioma se escriben como números enteros de 8 bits. Ya no se escribe desde v1.18.0.
46 2E . Data2DLegacy Mapa de altura (256x2 bytes)

Biomas 2D (256x4 bytes)

Cada entrada de la matriz de bioma contiene una ID de bioma en el primer byte, y los últimos 3 bytes son rojo/verde/azul respectivamente. Ya no se escribe desde v1.0.0.
47 2F / SubChunkPrefijo Versión del subfragmento (1 byte) Datos dependientes de la versión Terreno para un subfragmento de 16×16×16
48 30 0 Terreno heredado ID de bloque (32768 bytes)

Meta bloque (32768 mordiscos)

Bloquear la claraboya (32768 mordiscos)

Luz de bloque (32768 mordiscos)

Mapa de altura (256x1 bytes)

Biomas 2D (256x4 bytes)

Datos ordenados en orden XZY, a diferencia de Java.

Ya no se escribe desde v1.0.0.

Los biomas son ID más colores RGB similares a Data2DLegacy.

49 31 1 EntidadBloque Lista de raíces compuestas NBT Entidad de bloque datos (NBT little-endian)
50 32 2 Entidad Lista de raíces compuestas NBT Entidad datos (NBT little-endian)
51 33 3 PendingTicks Lista de raíces compuestas NBT Datos de tick pendientes (NBT little-endian)
52 34 4 LegacyBlockExtraData Recuento de entradas (4 bytes)

Entradas: Clave (4 bytes), Valor (2 bytes).

Matriz de bloques que aparecen en el mismo lugar que otros bloques. Se utiliza para el césped que aparece dentro de las capas de nieve antes de la versión 1.2.13. Ya no se escribe a partir de v1.2.13.
53 35 5 BiomaEstado
54 36 6 FinalizedState 4 bytes Un entero little endian de 32 bits
55 37 7 ConversionData Ya no se usa
56 38 8 Bloques fronterizos Función de edición educativa
57 39 9 generadores codificados Cuadros delimitadores para la generación de estructuras almacenados en formato binario
58 3A : Marcas aleatorias Lista de raíces compuestas de NBT Datos de ticks aleatorios (NBT little-endian)
59 3B ; Sumas de comprobación sumas de comprobación xxHash de otros registros fragmentados. Ya no se escribe a partir de v1.18.0.
61 3D = MetaDataHash
61 3E > GeneratedPreCavesAndCliffsBlending No utilizado
63 3F ? BlendingBiomeHeight No utilizado
64 40 @ BlendingData
65 41 A ActorDigestVersion
118 76 v LegacyVersion 1 byte Movido a 44 en v1.16.100

Otras claves[]

También existe la clave especial ~local_player para una entrada de datos de entidad que contiene la entidad del jugador local. Si los datos de la entidad existen aquí, tienen prioridad sobre los datos del jugador almacenados en level.dat. El valor asociado con la clave ~local_player está codificado en NBT y solo tiene una única etiqueta compuesta en el nivel raíz.

También hay una clave especial para jugadores remotos que consta de dos partes. La primera parte es el prefijo "player_" (sin las comillas) y la segunda parte es el ID del cliente que está contenido en el archivo clientid.txt del jugador remoto. Por ejemplo, player_-12345678 sería la clave para un cliente remoto con un ID de cliente de -12345678. El valor asociado con la clave con el prefijo "player_" está codificado en NBT y solo tiene una única etiqueta compuesta en el nivel raíz.

También hay una clave especial "game_flatworldlayers" de longitud 20 para mundos planos. El valor asociado a esta clave es un conjunto de números en formato de texto ASCII. Un ejemplo de un valor asociado con la clave "game_flatworldlayers" es "[7,3,3,2]", donde la longitud del valor para este ejemplo es 9.

Hay varias claves relacionadas con los pueblos.

  • ALDEA_[0-9a-f\\-]+_HABITANTES
    • Consiste principalmente en una identificación de entidad/mafia. Los habitantes incluyen aldeanos, golems de hierro y gatos.
  • ALDEA_[0-9a-f\\-]+_INFO
    • Incluye el cuadro delimitador del pueblo.
  • ALDEA_[0-9a-f\\-]+_PDI
    • Proporciona un mapeo entre los aldeanos y las estaciones de trabajo. Las asignaciones de camas no parecen almacenarse.
  • ALDEA_[0-9a-f\\-]+_JUGADORES

Otras claves comienzan con las siguientes cadenas

  • prefijo de actor
  • cavar
  • mapa_
  • portales
  • programadorWT
  • plantilla de estructura
  • área de tictac

Analizadores de muestra de Bedrock level-db[]

  • Puede encontrar un ejemplo de implementación de un analizador Bedrock level-db en minecraft_mmccoo. Esta implementación recorre los NBT de todos los bloques, entidades/mobs, elevaciones y elementos relacionados con las aldeas.

Estructuras NBT[]

Los siguientes artículos documentan las estructuras NBT de entidad de bloque y entidad.

  • Formato de nivel de Bedrock Edition/Formato de entidad
  • Formato de nivel de Bedrock Edition/Formato de entidad/Componentes
  • Formato de nivel de Bedrock Edition/Formato de entidad de bloque
  • Formato de nivel de Bedrock Edition/Formato de objeto
  • Formato de nivel de Bedrock Edition/Otro formato de datos

nivel.dat[]

El nivel.dat todavía está en formato NBT sin comprimir. El archivo comienza con un encabezado de 8 bytes, que consta de un entero little-endian de 4 bytes que indica el tipo de archivo, que es 3 (era 2 antes de la última actualización) para nivel.dat. Le sigue otro número entero que contiene la longitud del archivo, menos el encabezado.

NBT Structure[]

  • : Datos mundiales.
    •  abilities: Los permisos predeterminados para los jugadores en el mundo.
      •  attackmobs: 1 o 0 (verdadero/falso): verdadero si el jugador puede atacar a los mobs.
      •  attackplayers: 1 o 0 (verdadero/falso): verdadero si el jugador puede atacar a otros jugadores.
      •  build: 1 o 0 (verdadero/falso): verdadero si el jugador puede colocar bloques.
      •  doorsandswitches: 1 o 0 (verdadero/falso): verdadero si el jugador puede interactuar con los componentes de Redstone.
      •  volando: 1 o 0 (verdadero/falso): verdadero si el jugador está volando actualmente.
      •  flySpeed: La velocidad de vuelo, siempre 0,05.
      •  instabuild: 1 o 0 (verdadero/falso): verdadero si el jugador puede destruir bloques instantáneamente.
      •  invulnerable: 1 o 0 (verdadero/falso): verdadero si el jugador es inmune a todos los daños y efectos dañinos.
      •  rayo: 1 o 0 (verdadero/falso): verdadero si el jugador fue alcanzado por un rayo.
      •  mayfly: 1 o 0 (verdadero/falso): verdadero si el jugador puede volar.
      •  mine: 1 o 0 (verdadero/falso): verdadero si el jugador puede destruir bloques.
      •  mute: 1 o 0 (verdadero/falso): verdadero si los mensajes del jugador no pueden ser vistos por otros jugadores.
      •  noclip: 1 o 0 (verdadero/falso): verdadero si el jugador puede atravesar bloques.
      •  op: 1 o 0 (verdadero/falso): verdadero si el reproductor tiene comandos de operador.
      •  opencontainers: 1 o 0 (verdadero/falso): verdadero si el jugador puede abrir contenedores.
      •  permissionsLevel: qué permisos tendrá un jugador de forma predeterminada cuando se una a un mundo.
      •  playerPermissionsLevel: Qué permisos tiene un jugador.
      •  teleport: 1 o 0 (verdadero/falso): verdadero si el jugador puede teletransportarse.
      •  walkSpeed: La velocidad al caminar, siempre 0,1.
      •  worldbuilder: 1 o 0 (verdadero/falso): verdadero si el jugador es un constructor de mundos.
    •  allowdestructiveobjects: La allowdestructiveobjects regla del juego.
    •  allowmobs: La allowmobs regla del juego.
    •  baseGameVersion: La versión de Minecraft que es la versión máxima para cargar recursos. P.ej. establecer esto en 1.16.0 elimina cualquier característica que se haya agregado después de la versión 1.16.0. [se necesita más información]
    •  BiomeOverride: Convierte el mundo en un mundo de bioma único y el bioma establecido aquí es el bioma de este mundo de bioma único. [se necesita más información]
    •  bonusChestEnabled: 1 o 0 (verdadero/falso): verdadero si el cofre de bonificación está habilitado.
    •  bonusChestSpawned: 1 o 0 (verdadero/falso): verdadero si el cofre de bonificación se ha colocado en el mundo. Al cambiar esto a falso, se generará otro cofre de bonificación cerca de las coordenadas de generación.
    •  codebuilder: [se necesita más información]
    •  commandblockoutput: La commandblockoutput regla del juego.
    •  CenterMapsToOrigin: 1 o 0 (verdadero/falso): verdadero si los mapas deben estar en una cuadrícula o centrados exactamente donde se crearon. Por defecto es 0.
    •  commandblocksenabled: El commandblocksenabled regla del juego.
    •  commandsEnabled: 1 o 0 (verdadero/falso): verdadero si hay trampas activadas.
    •  ConfirmedPlatformLockedContent: 1 o 0 (verdadero/falso): indica si el mundo tiene paquetes de texturas o contenido específicos de la plataforma. Se utiliza para evitar el juego cruzado en mundos específicos, que utilizan recursos solo permitidos en consolas específicas.
    •  currentTick: [se necesita más información]
    •  Dificultad: El nivel de dificultad actual. 0 es Pacífico, 1 es Fácil, 2 es Normal y 3 es Difícil.
    •  Dimensión: La dimensión en la que se encuentra el jugador. 0 es el Overworld.
    •  dodaylightcycle: El dodaylightcycle regla del juego.
    •  doentitiydrops: La doentitiydrops regla del juego.
    •  dofiretick: La dofiretick regla del juego.
    •  doimmediaterespawn: La doimmediaterespawn regla del juego.
    •  doinsomnia: La doinsomnia regla del juego.
    •  dolimitedcrafting: La dolimitedcrafting regla del juego.
    •  domobloot: El domobloot regla del juego.
    •  domobspawning: La domobspawning regla del juego.
    •  dotiledrops: La dotiledrops regla del juego.
    •  doweathercycle: El doweathercycle regla del juego.
    •  drowningdamage: El drowningdamage regla del juego.
    •  educationFeaturesEnabled: [se necesita más información]
    •  EducationOid: Un UUID. [se necesita más información]
    •  EducationProductId: [se necesita más información]
    •  eduOffer: Marca un mundo como un mundo de Edición Educativa (¡los mundos con este valor establecido en 1 no se abrirán en Bedrock!).
    •  eduSharedResource
    •  experimentos
      •  experiments_ever_used: 1 o 0 (verdadero/falso): verdadero si el mundo está bloqueado en juego experimental.
      •  saved_with_toggled_experiments: 1 o 0 (verdadero/falso): verdadero si el mundo se ha salvado con experimentos anteriores.
      • ... Bytes adicionales por cada experimento que tiene/tuvo Minecraft.
    •  falldamage: La falldamage regla del juego.
    •  firedamage: La firedamage regla del juego.
    •  FlatWorldLayers: JSON que controla la generación de mundos planos. El valor predeterminado es {"biome_id":1,"block_layers":[{"block_name":"minecraft:bedrock","count":1},{"block_name":"minecraft:dirt","count": 2},{"block_name":"minecraft:grass","count":1}],"encoding_version":6,"structure_options":null,"world_version":"version.post_1_18"}.
    •  freezedamage: La freezedamage regla del juego.
    •  functioncommandlimit: La functioncommandlimit regla del juego.
    •  globalmute: La globalmute regla del juego.
    •  ForceGameType: 1 o 0 (verdadero/falso): verdadero si fuerza al jugador a ingresar al modo de juego definido en GameType.
    •  GameType: el modo de juego predeterminado del jugador. 0 es Supervivencia, 1 es Creativo, 2 es Aventura y 3 es Espectador.
    •  Generador: El tipo de mundo. 0 es Antiguo, 1 es Infinito y 2 es Plano.
    •  hasBeenLoadedInCreative: [se necesita más información]
    •  hasLockedBehaviorPack: [se necesita más información]
    •  hasLockedResourcePack: [se necesita más información]
    •  immutableWorld: es de solo lectura.
    •  InventoryVersion: [se necesita más información]
    •  isCreatedInEditor: 1 o 0 (verdadero/falso): verdadero si se creó desde el editor bedrock.
    •  isExportedFromEditor: 1 o 0 (verdadero/falso): verdadero si se exporta desde el editor bedrock.
    •  isFromLockedTemplate: 1 o 0 (verdadero/falso): verdadero si el mundo se crea a partir de una plantilla de mundo donde las opciones del mundo no debían modificarse.
    •  isFromWorldTemplate: 1 o 0 (verdadero/falso): verdadero si el mundo se crea a partir de una plantilla de mundo.
    •  isRandomSeedAllowed
    •  IsSingleUseWorld: 1 o 0 (verdadero/falso) - (sin usar) puede hacer que el mundo no se guarde o no se elimine después de su uso. Parece que el valor predeterminado vuelve a ser falso cuando se carga un mundo.
    •  isWorldTemplateOptionLocked: 1 o 0 (verdadero/falso): verdadero si las opciones del mundo no se pueden modificar hasta que el usuario acepte que está cambiando el mapa.
    •  keepinventory: El keepinventory regla del juego.
    •  LANBroadcast: [se necesita más información]
    •  LANBroadcastIntent: [se necesita más información]
    •  lastOpenedWithVersion: Cinco  int que representan la última versión con la que se abrió el mundo. P.ej. para la versión beta/preview 1.20.30.22 la versión es 1 20 30 22 1.
    •  LastPlayed: almacena la marca de tiempo de Unix (en segundos) cuando el jugador guardó el juego.
    •  LevelName: especifica el nombre del mundo.
    •  lightningLevel: [se necesita más información]
    •  lightningTime: [se necesita más información]
    •  LimitedWorldOriginX: La coordenada X donde comenzó la generación del mundo limitado (antiguo).
    •  LimitedWorldOriginY: La coordenada Y donde comenzó la generación del mundo limitado (antiguo).
    •  LimitedWorldOriginZ: La coordenada Z donde comenzó la generación del mundo limitado (antiguo).
    •  LimitedWorldWidth: El ancho (en fragmentos) de las fronteras que rodean la generación del (viejo) mundo. El valor predeterminado es 16.
    •  LimitedWorldDepth: La profundidad (en fragmentos) de las fronteras que rodean a la generación del (viejo) mundo. El valor predeterminado es 16.
    •  maxcommandchainlength: La maxcommandchainlength regla del juego.
    •  MinimumCompatibleClientVersion: cinco  int que representan la versión mínima de cliente compatible que se necesita para abrir el mundo. P.ej. para la versión beta/preview 1.20.30.22 la versión mínima compatible es 1 20 30 0 0.
    •  mobgriefing: [se necesita más información]
    •  Juego multijugador: [se necesita más información]
    •  MultiplayerGameIntent: [se necesita más información]
    •  regeneración natural: La regeneración natural regla del juego.
    •  NetherScale: El valor predeterminado es 8. Esto se usa para decirle al juego cuántos bloques del Overworld van en un bloque inferior (X bloques en el inferior = 1 bloque en el supramundo).
    •  NetworkVersion: [se necesita más información]
    •  Plataforma: Parece almacenar la plataforma en la que se crea el nivel. El valor observado actualmente es 2.
    •  PlatformBroadcastIntent: [se necesita más información]
    •  prid: [se necesita más información]
    •  pvp: La pvp regla del juego.
    •  rainLevel: [se necesita más información]
    •  rainTime: [se necesita más información]
    •  RandomSeed: nivel de semilla.
    •  randomtickspeed: La randomtickspeed regla del juego.
    •  recipesunlock: La recipesunlock regla del juego.
    •  requiresCopiedPackRemovalCheck: [se necesita más información]
    •  respawnblocksexplode: La respawnblocksexplode regla del juego.
    •  sendcommandfeedback: La sendcommandfeedback regla del juego.
    •  serverChunkTickRange: distancia de simulación.[se necesita más información]
    •  showbordereffect: El showbordereffect regla del juego.
    •  showcoordinates: Las showcoordinates regla del juego.
    •  showdeathmessages: La showdeathmessages regla del juego.
    •  showtags: La showtags regla del juego.
    •  spawnMobs: 1 o 0 (verdadero/falso): verdadero si los mobs pueden aparecer.
    •  spawnradius: El spawnradius regla del juego.
    •  SpawnV1Villagers: Genera aldeanos anteriores a 1.10.0.
    •  SpawnX: La coordenada X de la posición de generación del jugador. El valor predeterminado es 0.
    •  SpawnY: La coordenada Y de la posición de generación del jugador. El valor predeterminado es 64.
    •  SpawnZ: La coordenada Z de la posición de generación del jugador. El valor predeterminado es 0.
    •  startWithMapEnabled: 1 o 0 (verdadero/falso): verdadero si aparecen nuevos jugadores con un mapa localizador.
    •  StorageVersion: versión de la herramienta de almacenamiento Bedrock Edition, actualmente es 8.
    •  texturePacksRequired: 1 o 0 (verdadero/falso): verdadero si el usuario debe descargar los paquetes de texturas aplicados al mundo para unirse.
    •  Time: almacena la "hora del día" actual en ticks. Hay 20 ticks por segundo en la vida real y 24000 ticks por ciclo de luz diurna de Minecraft, lo que hace que el ciclo completo dure 20 minutos. 0 es el inicio del día, 12000 es el inicio de atardecer, 13800 es el comienzo de noche, 22200 es el comienzo del amanecer, y 24000 es de día nuevamente. El valor almacenado en level.dat siempre aumenta y puede ser mayor que 24000, pero la "hora del día" siempre es el módulo 24000 del valor del campo "Hora".
    •  tntexplodes: La tntexplodes regla del juego.
    •  useMsaGamertagsOnly: si el mundo está restringido solo a cuentas de Microsoft (los jugadores deben iniciar sesión).
    •  world_policies: [se necesita más información]
    •  worldStartCount: Cuenta cuántas veces se ha cerrado el juego desde que se creó el mundo, y su valor disminuye en 1 cada vez.
    •  XBLBroadcastIntent: [se necesita más información]

REGISTRO[]

Los archivos LOG se encuentran en la ruta /db de un nivel y son parte del formato leveldb, utilizado entre la compactación de los archivos LDB. Es similar a un archivo de registro de un programa. El formato es:

YYYY /MM/DD-Hour/Minute/Second.StepName "Info"

Ejemplo:

2014/07/24-22:20:08.400488 4a3638 Recovering log #3

Historial[]

Pocket Edition Alpha
v0.2.0level.dat ahora es un archivo con formato NBT.
la información de player.dat ahora se movió a level.dat
Entidades agregadas.dat.
v0.3.2Entities.dat extendido para almacenar información de entidad de mosaico.
v0.9.0build 1Se agregó un nuevo formato para guardar el mundo, basado en LevelDB 1.17 con soporte de compresión Zlib agregado. Los mundos más antiguos se convierten automáticamente al nuevo formato cuando se cargan.
Pocket Edition
1.0.0alpha 0.17.0.1Cada subfragmento ahora se almacena por separado como una clave de nivel de base diferente.
Bedrock Edition
1.2.13?Los subfragmentos ahora están paletizados.[1]

Véase también[]

  • Nivel de Java Edition

Referencias[]