Seed (level generation)

Minecraft seeds are values made up of character(s) (including negative or positive integers) that are used as the basis for generating every Minecraft world.

Compatibility
Seeds are not compatible across editions, are compatible to the older and newer versions but, after the Village and Pillage update the villages and structures change but not the features of the map.

For bedrock edition versions, the Alpha 0.9.0 update was the only major update to significantly change world generation. Oceans were changed in Update Aquatic, and villages and structures were changed in Village and Pillage.

Java Edition seeds between Alpha 1.2.0 and Beta 1.7.3 are mostly the same. Beta 1.8 changed world generation completely and Release 1.2 changed locations of land biomes completely with the addition of Jungle biomes. Release 1.7.2 redid the world generation entirely, making seeds from 1.2 through 1.6.4 obsolete. Minor changes to land biomes in 1.13 and 1.14 and oceans were completely updated in Update Aquatic. Not mentioned are structure editions in several updates throughout, but an addition of a generated structure usually does not require a complete change of biome generation.

Console edition seeds were updated in a similar schedule to Java edition equivalents.

World generation
Whenever the game has to generate a new world, it calls upon an algorithm. This algorithm outputs a pseudo-random value that is then used to determine what the characteristics and features of the world. However, the algorithm always outputs the same value each time for a constant starting point (seed). This is why seeds exist — to generate entirely different worlds, consistently each time, from single values.

Whenever the world generation algorithm is updated (usually by adding new biomes to the game), the same seed no longer generates the same terrain. This is why in some different versions of the game, the same seed does not produce the same world.

A world's seed is set when that world is created. By default it is decided automatically but it can also be set manually. Set and reuse a seed to replay that world, or use a known seed to play the same world as another player. Either a number or a word/phrase can be used, including negatives. If a word/phrase is used, it is converted into a 32 bit integer.

If the seed or generator changes in a saved world, new chunks are based on the new seed, and no longer match those from the old seed (this phenomenon was widely observed with Beta 1.8 and 1.7.2). Deleted chunks can regenerate if the seed and generator remains the same, but changes if either the seed or generator changes.

Because seeds are simply random values read into an algorithm and not actually names of different worlds, using a certain seed does not result in a world with any relevance to the value of that seed. For instance, using a biome name as the seed does not necessarily result in the creation of a world with primarily that biome, nor does it spawn the player within said biome.

Broken world generation


Broken world generation is when chunks do not load properly and cause certain blocks to not render. Certain seeds can cause the world generation to duplicate chunks in the x or z axis due to Java's Math.random function returning 0. (see )

Determining the seed
To view the world's seed, the player can enter the command. On Bedrock Edition, the seed can also be found on the world options screen.

Java Edition
The Java function is used to generate a number seed if a word/phrase is used. This restricts Minecraft to a subset of the possible worlds (to 232 or 4,294,967,296), due to the datatypes used. Use number seeds directly or let Minecraft generate the seed to access the full set of possible worlds (264 or 18,446,744,073,709,551,616). There are only 248 possible seeds (within the range [-263, 263-1]) if randomly generated by Minecraft due to using.

Bedrock Edition
Bedrock Edition has a total of 232 (or 4,294,967,296) possible worlds no matter whether strings or numbers are used as the seed. The same applies to the 64-bit version of Windows 10 Edition. This is because Bedrock Edition uses a 32-bit variant of the Mersenne Twister PRNG, which accepts only 32-bit seeds.

Legacy Console Edition
Legacy Console Edition mostly follow the Java Edition world generation of seeds.

The zero seed
Minecraft does not allow the numeric seed 0 (zero) by default. However, by using a text seed for which the Java  function returns a zero value, the "zero seed" can still be used. One of the most popular text phrases for that purpose is, because it almost looks like real words. However, any text that hashes to zero works, such as.

Trivia

 * Certain seeds return 0 in the internal code, causing infinite arrays of caves and other structures to generate.
 * The seed 107038380838084 returns 0 on the first call and 164311266871034 returns 0 on the second call, causing structures to loop on the X and Z axes respectively.
 * Mods such as the Cubic Chunks mod take the first three calls instead of the first two to generate terrain. This causes 164311266871034 to generate caves infinitely on the Y axis, and 240144965573432 to generate them infinitely on the Z axis.
 * This quirk is exclusive to Java, as Bedrock Edition does not possess seeds that return 0 on the first or second call (however, 257678572 returns 0 on the 6th call).
 * This quirk can also be seen in the Legacy Console Editions.
 * Only certain sections of the seed are used to generate specific features within the world. It is possible to generate multiple worlds with identical cave systems and other arrangements of generated structures simply by converting the seed into binary and tweaking the desired bits.
 * An example is the seed generator using only the first 48bits to generate cave systems and mesa clay banding layers
 * Entering 0 as the seed when creating a world automatically generates a random seed. Seed 0 is still accessible by entering "pollinating sandboxes" or "creashaks organzine" as the seed.
 * This is due to the developer decision that many games use 0 as "random", "infinite" or "do not care" flag when providing options.
 * $$, entering a 1-digit seed (from -9 to 9) also generates a random seed. A workaround is by typing "ddnqavb" followed by any other letter from "a" through "s". For example, "ddnqavba" generates the seed "-9".