Level format

From Minecraft Wiki
Jump to: navigation, search

In Minecraft 1.0, each level is its own folder. A level folder is often identified by having a level.dat file, along with other subfolders to store the maps and regions of the level.

Level folders will always contain the items in bold, and will sometimes contain the items in italics.

Relative Path Article Description
/level.dat (below) Stores global information about the level.
/level.dat_mcr - A backup of the level.dat file before conversion from MCRegion to Anvil.
/level.dat_old - A backup of the level.dat file before conversion from the Alpha Level Format to MCRegion or Anvil.
/session.lock (below) Used to give write access to the last program to modify this file.
/players/<player>.dat Player.dat Format Stores the individual states of the players that have played on this level.
/data/idcounts.dat
/data/map_<#>.dat
Map Item Format Stores the map data for the craftable Map items.
/data/villages.dat villages.dat Format Stores information about the Villages in the world.
/region/ - Contains region files for The Overworld.
/DIM-1/ - Contains region files for The Nether.
/DIM1/ - Contains region files for The End.
/region/r.<#>.<#>.mca
/DIM-1/r.<#>.<#>.mca
/DIM1/r.<#>.<#>.mca
Anvil file format Individual region files.
/region/r.<#>.<#>.mcr
/DIM-1/r.<#>.<#>.mcr
/DIM1/r.<#>.<#>.mcr
Region file format Backups of the region files before conversion from MCRegion to Anvil.
/<#>/<#>/c.<#>.<#>.dat Alpha Level Format Backups of the chunk files before conversion from the Alpha level format to MCRegion.

[edit] level.dat format

The level.dat file contains global information about the world such as the time of day, the singleplayer player, the level generator used, and the seed. It is an NBT file with this structure:

  • Nbtsheet.png The root tag.
    • Nbtsheet.png Data: This tag contains all the level data.
      • Nbtsheet.png version: The NBT version of the level, 19133.
      • Nbtsheet.png initialized: 1 or 0 (true/false) - Normally true after a world has been initialized properly after creation. If the initial simulation was canceled somehow, this can be false and the world will be re-initialized on next load.
      • Nbtsheet.png LevelName: The name of the level.
      • Nbtsheet.png generatorName: The name of the generator; "default", "flat", or "largeBiomes". Not case sensitive, but always written in the case here.
      • Nbtsheet.png generatorVersion: The version of the level generator. The effects of changing this are unknown, but values other than 0 have been observed.
      • Nbtsheet.png generatorOptions: Controls options for the generator, currently only the Superflat generator. The format is a comma separated list of block IDs from the bottom of the map up, and each block ID may optionally be preceded by the number of layers and an x. Damage values are not supported.[1]
      • Nbtsheet.png RandomSeed: The random level seed used to generate consistent terrain.
      • Nbtsheet.png MapFeatures: 1 or 0 (true/false) - true if the map generator should place structures such as villages, strongholds, and mineshafts.
      • Nbtsheet.png LastPlayed: The Unix time when the level was last loaded.
      • Nbtsheet.png SizeOnDisk: The estimated size in bytes of the level. Currently not modified or used by Minecraft, but was previously.
      • Nbtsheet.png allowCommands: 1 or 0 (true/false) - true if cheats are enabled.
      • Nbtsheet.png hardcore: 1 or 0 (true/false) - true if the player must delete their world on death in singleplayer. Affects all three game modes.
      • Nbtsheet.png GameType: The default game mode for the singleplayer player when they spawn or respawn. 0 is Survival Mode, 1 is Creative Mode, 2 is Adventure Mode. Note: the singleplayer player does not use this field to save which game mode they are currently in.
      • Nbtsheet.png Time: The number of ticks since the start of the level.
      • Nbtsheet.png DayTime: The time of day. 0 is sunrise, 6000 is mid day, 12000 is sunset, 18000 is mid night, 24000 is the next day's 0. This value keeps counting past 24000 and does not reset to 0.
      • Nbtsheet.png SpawnX: The X coordinate of the world spawn.
      • Nbtsheet.png SpawnY: The Y coordinate of the world spawn.
      • Nbtsheet.png SpawnZ: The Z coordinate of the world spawn.
      • Nbtsheet.png raining: 1 or 0 (true/false) - true if the level is currently experiencing rain, snow, and cloud cover.
      • Nbtsheet.png rainTime: The number of ticks before "raining" is toggled and this value gets set to another random value.
      • Nbtsheet.png thundering: 1 or 0 (true/false) - true if the rain/snow/cloud cover is a lightning storm and dark enough for mobs to spawn under the sky.
      • Nbtsheet.png thunderTime: The number of ticks before "thundering" is toggled and this value gets set to another random value.
      • Nbtsheet.png Player: The state of the Singleplayer player. This overrides the <player>.dat file with the same name as the Singleplayer player. This is only saved by Servers if it already exists, otherwise it is not saved for server worlds. See Player.dat Format.
      • Nbtsheet.png GameRules: The game rules. Each rule is a string that is either "true" or "false".
        • Nbtsheet.png commandBlockOutput: Whether or not actions performed by command blocks are displayed in the chat. True by default.
        • Nbtsheet.png doFireTick: Whether to spread or remove fire. True by default.
        • Nbtsheet.png doMobLoot: Whether mobs should drop loot when killed. True by default.
        • Nbtsheet.png doMobSpawning: Whether mobs should spawn naturally. True by default.
        • Nbtsheet.png doTileDrops: Whether breaking blocks should drop the block's item drop. True by default.
        • Nbtsheet.png keepInventory: Whether players keep their inventory after they die. False by default.
        • Nbtsheet.png mobGriefing: Whether mobs can destroy blocks (creeper explosions, zombies breaking doors, etc.). True by default.

[edit] session.lock format

This file contains the timestamp of when the level was last accessed. The file contains a single 64-bit integer in big endian format, which is the timestamp, stored as the number of milliseconds elapsed since 1970, in UTC.

Unlike typical lock files, this file ensures that the last program to access the level is that one that has read and write access. The process goes something like this:

  1. Program opens session.lock
  2. Program writes timestamp to session.lock
  3. Program monitors session.lock for changes
  4. If the contents of session.lock change, program aborts and gives up its lock on the level.

Minecraft can sometimes try to hold the lock on a level even after the player has started playing a different level, and this can cause strange behavior. It is recommended to ensure that Minecraft is closed before trying to acquire a lock on a level.

[edit] References


Personal tools
Namespaces
Variants
Actions
Minecraft Wiki
Minecraft
Useful pages
Toolbox
In other languages

Recent Community Articles

Mojang Tweets

    Getting your tweets...
Become a Premium Member!