Superflat



Superflat (Flat in Bedrock Edition and New Nintendo 3DS Edition) is a world type replacing the normal varied terrain of the Overworld, with customizable layers in the Java and Legacy Console Editions.

Structure
In a classic (default) Superflat world, the terrain consists of one layer of bedrock, two layers of dirt, and one layer of grass. Since the entire world is a plains biome by default, villages will generate relatively frequently. In Bedrock Edition and New Nintendo 3DS Edition, however, villages will not generate in Flat worlds.

The surface of the world is completely flat and at height y=4, with the exception of villages and other structures if they are enabled. Since the height limit (256) is unchanged, there is almost one-third more vertical height available to build above-ground structures as compared to a normal world. Mobs will spawn as normal. Because of the low altitude of the world, slimes spawn fairly frequently.

When making a Superflat world, the player will spawn on the topmost solid layer, within a 20x20 cube, and may spawn under water or lava if there are layers of those above the topmost solid layer.



Access to other dimensions
Superflat worlds allow the player to access the Nether by building a nether portal in the usual way. In Java Edition, Bedrock Edition, and New Nintendo 3DS Edition, the Nether generates normally; in Legacy Console Edition the Nether is flat like the Overworld.

Java and Console Edition Superflat worlds also allow the player to access the End, which generates as in a normal world, by finding a stronghold or by creating an end portal in Creative Mode.

Multiplayer
In order to create a Superflat world in a multiplayer server, the level-type flag in server.properties must be, instead of.

Once a multiplayer world is created, the server.properties fields have no effect on chunk generation. Instead, just like in singleplayer, the level.dat fields for,  , and   are used instead. If you want to alter a world after initial creation, these are the settings to change.

Customization


In Java and Console Editions, the structure and content of a Superflat world can be customized. Flat world customization is not available for Bedrock Edition; it always consists of a layer of bedrock, two layers of dirt, and a layer of grass (even when the Seed Picker is used).

Upon selecting "Superflat" in the World Type box, a new button appears underneath labeled "Customize". The customize menu starts out with the "Classic Flat" preset of one layer of grass, two dirt layers, and then bedrock underneath. There are two buttons available to customize Superflat worlds, which include the "Remove Layer" button, used for removing unwanted types of layers, and the "Presets" button, used for selecting any of eight currently available presets.

If you can understand the preset code syntax you can create presets of your own by entering valid information into the preset code box, where these changes can be previewed and applied. (Direct Customization is not available.) In addition, superflat worlds can have certain terrain features, besides villages, such as tall grass, lakes, and strongholds, which can additionally be customized using the same code box for block layers. These changes also made tweaks to previous world codes, to include the new generation features.

Presets are shareable. As a preset is selected, a box on top of the screen has a code you are able to highlight and copy. Similar to how new worlds are shared through seeds, presets can be entered into this box to recreate someone else's preset.

In Bedrock Edition it is not possible to customize flat worlds ingame. However, it is possible to customize flat world layers using external editors by modifying the level.dat's.

Preset code format
The preset code is a string of numbers, semicolons, colons, commas, and asterisks(*). Each code has three main parts, divided by semicolons. They are:


 * a list of one or more block IDs.
 * The block list is a comma-separated list of block IDs, ordered from layer 0 up; if the entry for a given block has an "*", the number before the "*" is the number of layers to be generated, and the number after is the block ID.
 * A block ID can be followed by a colon to specify a damage value.
 * A block can also be repeated over multiple layers simply by repeating the block's ID, e.g.  would give the same result as.
 * To specify block variants, such as Polished Andesite (Stone ID 6), use a colon after the block's ID, like so:.
 * a valid biome ID
 * (optional) a list of structure generation options
 * Structure generation options (described below) may have additional parameters, for example "village(size=0 distance=9)". The order in which they are specified may alter the results where they overlap or are incompatible.
 * It is important to remember that multiple parameters are separated by spaces, rather than commas or semicolons.

Conditions
Note that there are several criteria that must be satisfied before some features can appear:
 * The biome number must be correct. For example, at present villages can only appear in biome numbers 1, 2, 5, and 35, plains, desert, taiga, and savanna.
 * The correct structure code ('village', 'dungeon' etc.) must be present in the superflat string.
 * Structures must be turned on in the world settings. (This does not affect 'natural' objects such as trees, flowers, mushrooms, and giant mushrooms. Obsidian pillars in the End also count as 'natural'.)
 * There must be suitable terrain for the structure to appear on or in. This applies to most features except for mineshafts and strongholds.
 * Villages are a partial exception; they will not form in mid-air, but will form provided there is at least one solid block layer.
 * Villages will always spawn at least 2 blocks above the void.

For example, to have an 'End' superflat world with obsidian pillars, the biome number must be 9, the superflat string must contain 'decoration', and the top surface block must be End Stone. In this particular case 'Structures' does not need to be turned on in the world options.

Attempting to use an incorrectly formatted preset code causes the game to default to the Classic preset.

Preset code example
Consider the following preset code:

It consists of the following elements:
 * — comma-separated list of block IDs.
 * — one layer of moss stone on layer 0.
 * — 250 layers of air, from layer 1 to layer 250.
 * — one layer of obsidian, on layer 251.
 * — one layer of snow, on layer 252.
 * — biome ID, in this case Extreme Hills.
 * — a comma-separated list of structures.
 * — this will populate the world with seven strongholds at the default distance and spread.
 * — since Extreme Hills is an invalid biome for villages, this will do nothing.
 * — biome-specific decoration.
 * — allows dungeons to generate.
 * — allows abandoned mineshafts to generate at the default placement frequency.

Resources
This table applies to the original preset. The resources below can always be found, regardless of the "Generate Structures" option.

The resources below can only be found if the "Generate Structures" option is enabled. These do not include resources that can be obtained via trading with villagers and fishing.

Village chests may contain these items:

Trivia

 * The volume of an entire default superflat world, not including villages, bonus chests, or air, is 14.4 million km3, and the world is composed of 1.44x1016 blocks.
 * Since cloud height isn't affected by the world generation, clouds will be underground in the Tunneler's Dream preset.
 * If you select the desert preset, and remove all layers but sand, it is possible to create a massive, endless wave of falling sand. All one has to do to accomplish this computer-breaking feat is dig straight down until you hit the bottom of the world. The sand will then begin to fall from where you dug.