(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 or  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 source port, 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.

This bug was first repaired in the Eternity Engine by James "Quasar" Haley by allowing such monsters to respawn at the point they died rather than (0, 0). This fix was later adopted by several other source ports, including PrBoom 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.