Voodoo doll is the term used when multiple "Player start" Things exist for the same player on a level. When the level is loaded, each extra player start will have a dormant "zombie" player at its coordinates. If these dormant players are damaged in any way, the actual player will suffer identical damage (hence the name "voodoo doll"). The PWAD selfdead.wad is possibly the earliest published map that contains a voodoo doll. Any other things that happen to the voodoo doll also affect the player's screen. For example, if a voodoo doll falls off a large ledge, the screen will lower momentarily as if they are landing.
Creation of a Voodoo doll inside of a map is trivial; it is as simple as placing more than one player start for the same player inside of a map.
Special effects Edit
Voodoo dolls can be used for tricks in maps, most notably as "instant-death teleporters". This can be used to implement effects similar to the "bottomless pits of death" that appear in most platform games.
An example of this can be found on TNT:Evilution MAP30. At the start of this level, the player must navigate a path across a grid of platforms. Walking onto the wrong platform causes the player to teleport over a voodoo doll and telefrag himself.
Also there is another special effect to simulate the effect of the player falling too far. As the player falls into the depths of a deep pit he often passes a line which triggers a crushing ceiling which crush the Voodoo Dolls to create an instant death effect.
If a voodoo doll moves over an item, the player obtains that item. This can be used to create "invisible" caches, as with MAP28 of Plutonia: a hidden voodoo doll stands on a platform which is lowered toward a BFG, so the player appears to have picked up the BFG by stepping on a panel.
In Boom compatible source ports and Doomsday, as well as in Heretic, Hexen and Strife, voodoo dolls can be placed on conveyor belts and used to trigger walk linedefs. Through this, a limited form of scripting is possible, as the doll can trigger various actions in sequence. counter.wad demonstrates how this can be used to simulate the effects of electronic circuits by implementing a binary ripple counter composed of conveyor belts and voodoo dolls.
Zombie players Edit
If the actual player has less than 100% health when a voodoo doll is encountered, and the voodoo doll is then attacked until the actual player's health is reduced to zero, then the actual player enters a strange "undead" state. The undead player can move around, but cannot select any weapons, and will die if damaged further. Monsters who were already pursuing the player continue to do so, but other monsters cannot target the player until his health becomes 1% or higher.
Undead players can pick up objects, open doors, and press switches. If an undead player exits a level, he loses the ability to pick up objects, effectively trapping him in the undead state until he finds a way to take damage. Exiting the level with positive health restores all normal abilities, including the use of any weapons and ammo picked up while undead.
An opposite effect of this is if the actual player has more than 100% health, a strange effect will be achieved as well. If the actual player kills the voodoo player in a way that does not take the actual player's health to zero, a new class of undead player occurs. Like the other undead player, the weapon is lost. The differences start in that the player cannot move, and the screen lowers to the floor as if you are dead. The difference is that the HUD face does not appear dead, and will instead look around as if alive. Another difference is that the actual player can still be attacked. Eventually when the actual player's health is depleted to zero, then the normal death sequence takes place.
Voodoo dolls can lead to undefined behavior in some extremely exotic situations. If a voodoo doll with full or near-full health is damaged just enough to kill the real player, but collects a Megasphere or other health item immediately thereafter, it is possible for the player to change to an undefined weapon. This bug is caused by an assumption made by the A_Lower codepointer function in the player's weapon, which makes the decision that any ongoing weapon change made while the player has greater than 0 health must have originated from a player's key press. In the original DOS version of the game, this bug only causes your weapon to permanently disappear, due to the values which are read at the out-of-bounds location. However, due to the fact that it makes illegal memory accesses, its effects vary in every source port that has not fixed the bug, including anything from crashes to appearing to have an unrelated sprite as a weapon.
- The map Civilian.WAD (file info) features two voodoo dolls to help the player achieve the undead state, and also has an "antidote" for it: taking the berserk pack, then exiting the level, will restore all normal abilities.
- A demonstration from Lee Killough's archive. ZOMBIE.WAD contains a voodoo doll trap which reduces the player's health to exactly 0%, and ZOMBIE1.LMP through ZOMBIE4.LMP show various ways this can affect gameplay.