(0,0) respawning bug



The (0, 0) respawning bug was a bug that existed in all official releases of the Doom engine. When a monster is spawned during play rather than at level start, it has no corresponding mapthing, so the mapthing fields inside it are all set to zero. When the code that performs "Nightmare!" skill or -respawn monster respawning considers such a monster, it will be respawned at the point (0, 0) regardless of that point's nature.

This bug was first widely noticed on Doom II's MAP30: Icon of Sin, where if the player remains in the level for a long enough time, huge numbers of monsters will appear in the void to the left of the valid map area. In addition, when played under the Doom95 port of the engine, if the player remains in the level for an even longer time (without killing large amounts of monsters), Doom95 freezes up and quits the game. Upon exiting the game, an "application error" message can be seen.

In source ports
This bug is repaired in various recent source ports. The first to include such a fix was the Eternity Engine by Team Eternity, by allowing such monsters to respawn at the point they died instead of the (0, 0) location. Fixes was later adopted by several other source ports, including PrBoom, which adopted the method used for the eternity engine and ZDaemon. In the case of ZDaemon, the issue was resolved by giving all dynamically-spawned monsters the "dropped" flag, the same thing flag used on dropped weapons, to prevent them from respawning.