Spawn/Multiplayer details


 * ''For this discussion, coordinates refer to the column centered at (x+0.5, z+0.5). That is, -225x, 255z refers to the column bounded by -224x to -225x and 255z to 256z.

Every world has a "spawn point" (really, an area) located within a few hundred blocks of the origin, which is at coordinates 0x, 0y, 0z. This point is stored in the level.dat file's,  ,   attributes (although   seems to be ignored). If the spawn point is deemed unacceptable, a new, temporary spawn point will be selected (although the criteria for "unacceptable" is unknown).

A player with no spawn point set (such as by a bed) will be placed randomly at the highest point in a 20x/20z square centered on the x-/z- corner of the spawn point; that is, the 20x/20z spawn square's edges are at SpawnX -10/+9, SpawnZ -10/+9.

A 33x/33z slice of the world centered at SpawnX, SpawnZ is "protected", and can (almost; see below) only be modified by Operators; that is, the 33x/33z protection square's edges are at SpawnX +16/-16, SpawnZ +16/-16.

Non-operator players cannot place or destroy blocks in the protected area, nor can they use doors or Redstone devices other than Pressure Plates. Creepers can still destroy terrain in the protected area and TNT placed outside of the protected area will destroy surrounding blocks as usual. Along with this, portals from the nether can connect to the protected area, water/lava/fire can spread from outside into the protected area, and pistons can push items inside as well. Players can place blocks on the edge of the protected area if placed against the side of a block on the outside of the area. However, if the edges of the protected area are avoided, small, indestructible structures can be built. Paintings that are put up can be removed by players in the safe zone.

As of Beta 1.4, sleeping in a bed will reset your spawn point to that bed when you awake from them naturally at dawn. If the bed at which you have set your spawn point last is removed, your spawn point reverts to its original location (somewhere near x=0,z=0). The same applies to multiplayer, but clicking "Leave Bed" still resets the spawn point.

Derivation


The spawn point was forced to 100x,100z and the player data was cleared. The purple square outlines the column at 100x,100z, which holds an obsidian tower.

To determine the spawn area, a flat, open area large enough for the (presumed) 20x20 spawn area was created. The player (an op) repeatedly respawned and immediately dug a hole if one was not already present. The red square, above, is drawn from the midpoints of the outermost holes in each direction.

To determine the protection area, the player (a non-op) attempted to place blocks until successful while moving away from the spawn, and then traced around the edges of the protected area until all four corners were found. The lapis corners marked above were the extent of the minimum placeable area by the player. The blue square, above, is drawn from the midpoints of the outermost protected blocks in each direction.

The dimensions of each square are given by  to include the extra half-block on either end of the measurement (In the example below, width should be [7 - 3 + 1 = 5]):

XXXXX  <- width=5 123456789  ^min=3 ^max=7