Monster Spawner



Monster Spawners or Mob Spawners are blocks with a transparent dark grey lattice structure found in dungeons, Abandoned Mine Shafts, Strongholds and Nether fortresses. Inside the block there are flames that do not give off any light and a miniature spinning version of the mob that will spawn, which slowly increases speed until the next mob spawns. Spawners can spawn any mob. However without the use of an inventory editor or custom map they only spawn zombies, skeletons, spiders, cave spiders, blazes, or silverfish.

Players have designed many traps to kill mobs from spawners, employing a long fall, drowning, lava, cactus or a combination of these, which allow the player to collect drops or experience in great numbers with little risk (see monster spawner traps.)

The Monster Spawner is one of the few blocks not made available in Creative Mode.

Occurrences
Spawners may occur in these locations, spawning one type of mob chosen at random when generated:


 * Dungeons
 * Spawns Zombies (50% chance), Skeletons (25%), or Spiders (25%). One per dungeon.


 * Abandoned Mine Shafts
 * Spawns Cave Spiders. Located in horizontal tunnels, heavily surrounded by Cobwebs.


 * Strongholds
 * Spawns Silverfish. Located in the End Portal room. One per stronghold.


 * Nether Fortresses
 * Spawns Blazes. Located on balconies with stairs leading up to them.

Naturally occurring spawners will not spawn mobs such as passive animals, Creepers, and Endermen. However, if a map editor or mod is used to create a spawner for any mob, excluding a giant zombie, it will function as expected.

The only way to obtain a spawner is using the silk touch enchantment. Other than that, there is no way to obtain a spawner in your inventory (even in creative mode), except using a mod, an Inventory Editor program or using the "/give" operator command in a multiplayer server. If such a spawner is placed, or if a spawner is missing its tile entity data, it will spawn pigs. As of 1.2.5 in creative by using the pick block tool you can now obtain spawners if you come across one on creative. However it will only spawn pigs, due to the spawner not being generated naturally.

Spawning Behavior
A spawner will spawn mobs in the surrounding area, provided suitable spawning locations for the block's mob type can be found in the area. Spawning conditions vary from mob to mob. For example, Overworld monsters can only spawn in darkness (light level 7 or below), and animals must spawn on top of grass with a light level 9 or above. However, spawner blocks can spawn mobs in mid-air, ignoring general rules about spawning on solid ground.

A monster spawner is only active when a player is within a euclidean distance of 17 blocks from the spawner. While the block is active, it will spawn mobs within an 8x3x8 block area (8 wide and 3 high and 8 deep), centered on the corner of the spawner block with the lower x and z coordinates. Mobs can spawn anywhere in this range that is suitable, even if the immediate vicinity of the spawner block itself is not suitable. The horizontal distribution is nonlinear, with positions near the spawner more likely than ones farther away.

The block will attempt to spawn 4 mobs at randomly chosen points within the spawning area, then wait anywhere from 200 to 799 ticks (10 to 40 seconds) before spawning again. As it waits, the mob inside the block will spin faster and faster. Except for spawning on a solid block, all of the usual requirements for spawning must be met (not in a solid block, correct light level, etc.), so the spawner will often produce fewer than 4 mobs. If the block fails to spawn any mobs because it did not pick any suitable locations, it will repeat this process every tick until it succeeds. Only when it manages to spawn at least one mob will it start waiting for the next cycle. If, at the time of spawning, 6 or more monsters of the block's type are present within a 17x9x17 area (17 wide and 9 high and 17 deep), centered on the spawner block, the spawner "poofs" without creating any monsters and then waits for the next cycle. However, if there are more of the mob outside of the specified range, then the monster spawner will continue spawning mobs indefinitely.

Note that while mobs are spawned at a discrete y coordinate, the x and z coordinates are real-valued, i.e. not aligned to blocks. Mobs will spawn with their legs at either the same level as the spawner block, one block above it, or one block below it, but horizontally, a mob can spawn with its center point anywhere within the 8x8 range. Since the mob itself takes up some horizontal space, this must be added to the range of the spawner to get the full dimensions of the area they can potentially occupy.

Spawners can be given unusual entity IDs like Minecart or Boat to make a decorative block with the named entity spinning inside the cage. However, when the spawner attempts to spawn such an entity, the game will crash.

In Peaceful difficulty, Monster Spawner blocks will still appear, but any spawned hostile mobs will disappear the instant they spawn. (Zombie Pigmen, Magma Cubes, and Ghasts will not spawn at all.) This makes it easy to make the traps without being troubled by the mobs. The brief instant that the monster exists in the world before being removed is enough time for the player to be pushed around, for the sound file to play, and occasionally for Skeletons to fire arrows.

Detailed Spawning algorithm
This pseudo-code is derived from the decompiled source of Minecraft 1.2.5. every spawn cycle (every randInt(200,799) ticks when a player is within   17 blocks of the spawner), loop 4 times { if there are 6 or more of the mob type in the 17x9x17 area around the spawner, skip this spawn cycle calculate spawnerX = X coordinate of center of spawner - 0.5 calculate spawnerY = Y coordinate of center of spawner - 0.5 calculate spawnerZ = Z coordinate of center of spawner - 0.5 calculate x coordinate of mob = spawnerX + (randDouble - randDouble) * 4, randDouble being a random number between 0 and 1 calculate y coordinate of mob = spawnerY + a random integer between -1 and 1 calculate z coordinate of mob = spawnerZ + (randDouble - randDouble) * 4, randDouble being a random number between 0 and 1 if all of the conditions specific to the mob type are met, spawn the mob { chicken, cow, mooshroom, pig, sheep, wolf: block below spawning block is grass spawning block has a light level of 9 or higher

ocelot: pass a 2/3 random test block below spawning block is grass or leaves on layer 63 or higher

creeper, enderman, skeleton, spider, cave spider, zombie: light level 8 or less

silverfish: light level 8 or less, no players within 5 blocks

slime: difficulty is not set to peaceful or slime size is small spawn block y coordinate is less than 40 the chunk containing the spawn block is a slime chunk (1 in 10 chance) pass a 1 in 10 random test ghast: pass a 1 in 20 random test squid: must not collide with any other entities must be in layer 46-62

all except squid and slimes: must not collide with any blocks or other entities must not collide with water or lava } } if all 4 mobs failed to spawn, repeat on the next tick

Bugs

 * If a Monster Spawner is destroyed in multiplayer by a server process (e.g. TNT) the box will be deleted, but the flames inside will remain, until the client/player logs off and back onto the server.
 * The spawning distance is two blocks off vertically in multiplayer. Even if the client shows flames in the spawner block you have to go up two more blocks for the Monster Spawner to actually spawn mobs.

Trivia

 * It's impossible to choose the mob to spawn when placing a Mob Spawner (without mods), because it has tile data.
 * The model inside the monster spawner has an ID number like all other mobs, though it is only visible at certain angles and cannot be seen since Beta 1.8.
 * Since monster spawners are stored as tile entities, they cannot be pushed by pistons.
 * It is possible for a monster spawner to occur near the surface and completely buried in sand, with monsters spawning in small gaps underneath sandstone.
 * Unlike most other transparent blocks, it is possible to place torches on a monster spawner.


 * It is possible for two monster spawners to naturally occur directly side-by-side.


 * It is possible for a Spider spawner to spawn a Spider Jockey. However, Skeleton spawners cannot spawn Spider Jockeys.


 * As of version 1.2.5, monster spawners are available in creative mode by using the Pick Block button on a natural generated monster spawner. When placed, they will always spawn Pigs.

Spawning
 * When mining near a monster spawner that has no valid places to spawn, sometimes a monster will spawn immediately after a block is mined. The player should take caution for this reason while collecting Moss Stone from a dungeon but hasn't destroyed the monster spawner.  It's speculated this might happen because the spawner gets a chance to spawn before the lighting calculation for the space the block occupied.
 * A monster spawner may spawn 1, 2, 3 or even 4 mobs at once

The miniature mob inside the spawner
 * If the player is not within range, the miniature mob inside the spawner will stop spinning, and the mob spawner will stop emitting fire particles.
 * The miniature mob inside the mob spawner will spin faster when it is about to spawn monsters. There are set minimum and maximum speeds for which the miniature mob can rotate.

Hacking spawners
 * If a spawner is hacked to create Ghasts, Giants, Squid, Iron Golems, Villagers, Endermen or Enderdragons the model inside will be miniaturized, but not enough to fit the cage properly, because the scaling factor used is the same as with other mobs.
 * Hacking in a spawner which has a non-living entity type (e.g. boats) will cause the game to crash.

History

 * Monster Spawners were added in Seecret Friday Update 2 in Infdev. Before Beta, they were named Mob Spawners. When first released, they could be picked up and when placed, they spawned Pigs.


 * The miniature mob model displayed inside the monster spawner was enabled again in Beta 1.2 after being missing for several versions.


 * In Beta 1.9 Pre-release 1, its texture was changed to a darker color.


 * In 1.9 pre-releases 4 and 5 it was possible to obtain a Monster Spawner using a tool enchanted with Silk Touch. When placed they would only spawn pigs. Silk Touch was made ineffective on spawners in Beta 1.9 pre-release 6.


 * As of 1.9 prerelease 5, Squid spawners only work in a narrow elevation range, approximately 45 to 60.


 * As of Minecraft 1.0, monster spawners are easier to destroy.


 * As of snapshot 12w06a, mob spawners show the mob it is spawning in multiplayer; previously it always showed a pig.


 * As of 12w16a, it is possible to obtain a mob spawner that will spawn something other than pigs without using an inventory editor via the new single player commands.


 * As of 12w22a spawners will drop experience when destroyed.