Skip to content

Minecraft PE 0.8.1 Chunk Format Documentation

1. NBT Format (level.dat)

  • File Type: Uncompressed little-endian NBT file.
  • Header (8 bytes):
    • 4 bytes: Storage version (little-endian integer).
    • 4 bytes: Length of the file (excluding the header).

Important Tags:

  • GameType:
    • 0 = Survival.
    • 1 = Creative.
  • LastPlayed: Unix timestamp for the last save.
  • LevelName: World name.
  • Platform: Typically 2 (Bedrock).

Player Data:

  • Armor: A list of 4 TAG_Compound values (helmet, chestplate, leggings, boots).
  • Inventory:
    • id: Item or Block ID.
    • count: Number of items.
    • damage: Wear and tear on tools/armor.
    • slot: Inventory slot number.
  • Abilities:
    • mayfly: 1 = Can fly.
    • invulnerable: 1 = Immune to damage.
    • mayBuild: 1 = Can place/destroy blocks.

World Data:

  • SpawnX/SpawnY/SpawnZ: Spawn coordinates.
  • Time: Tracks time of day in ticks (mod 19200).
  • DayCycleStopTime: Stops the day/night cycle at specific ticks.
  • RandomSeed: Seed for world generation.
  • spawnMobs: 1 = Mob spawning enabled.

Compression:

  • None (file is uncompressed).

2. Chunk Data (chunks.dat)

Chunk Dimensions:

  • 16×16×128 blocks (YZX - Y iterates first).
  • Organized into 32×32 sections, storing up to 512×512×128 blocks.
  • Default world generates 256 chunks.

File Structure:

  • Divided into 4 KB sectors.
    • First sector: Chunk index (4 bytes per chunk).
      • 1st byte: Number of 4 KB sectors the chunk occupies.
      • Next 3 bytes: Chunk location (little-endian).
      • Example: 15 51 01 00 = Chunk starts at sector 337, taking 21 sectors.

Chunk Data Structure:

  • Block Data (first 32,768 bytes): Block order is YZX (Y iterates first). Uses a 3D array: [16][16][128].
  • Meta/Data (next 16,384 bytes): Auxiliary data (e.g., wool color, chest orientation).
    • Stored as half-byte per block (two blocks per byte).
  • Skylight Data (next 16,384 bytes): Sunlight hitting blocks. Same format as block data.
  • Blocklight Data (next 16,384 bytes): Light emitted by blocks (e.g., glowstone).
  • Biome Data (last 256 bytes): Block order is ZX (Z iterates first). Biome info per block. Stored as 16 bytes per row.

3. Entities (entities.dat)

  • File Type: Modified little-endian NBT format.
  • Header (12 bytes):
    • ASCII "ENT".
    • 1 zero byte.
    • 4-byte integer: Version (always 1).
    • 4-byte integer: Length of file (excluding header).

Entity Data:

  • Entities List: Contains entity-specific NBT data.
    • Common Fields:
      • id: Entity type ID (e.g., Zombie = 32, Sheep = 13).
      • Pos: Position (X, Y, Z).
      • Motion: Velocity (dX, dY, dZ).
      • Rotation: Yaw and Pitch.
    • Mobs: Additional tags (e.g., Health, HurtTime, AttackTime, DeathTime).
    • Sheep: Special tags like Sheared and Color.
    • Item Entities: id, count, damage, age (time until despawn).

4. File Format Changes

  • Compression: None (uncompressed).
  • Block Data Storage: Terrain, light data stored across multiple sections.
  • Entities: Stored using an NBT-based structure, varies by entity type (e.g., mobs, items).

5. Raw NBT Data

  • InhabitedTime: Total time chunk has been loaded with players nearby.
  • Entities: List of mobs, items, and other entities in the chunk.
  • TileEntities: Data for blocks with extra information (e.g., chests, furnaces).
  • Terrain Generation: Includes random seeds, feature generation flags.

Contributors

The avatar of contributor named as Dexrn ZacAttack Dexrn ZacAttack
The avatar of contributor named as BJTMastermind BJTMastermind
The avatar of contributor named as EternalModz EternalModz

Changelog

Contributors



Documentation page was setup by DexrnZacAttack.


Documentation is licensed under Creative Commons CC-BY 4.0 unless otherwise noted. For more info, check the NOTICE file.