SpelunkyFan wiki

Zombie

Verified against the spelunky.ai port v0.1.10 on .

The Zombie is a monster in Spelunky Classic, found on the Jungle's graveyard levels, that hops at a nearby player and bites for 1 heart on contact.

Zombies come only from the graveyard levels of the Jungle, where level generation makes them in numbers. A Zombie stands still until the player comes near, then hops at him, in short hops and the odd long one, and bites when it lands on him. With 1 hit point, it dies to any damage, and falls apart into bones and a Skull, like a Skeleton.

Behaviour

#
Zombie hops. A zombie wakes as the player walks up to it, hops toward him in short hops and then a long one, and bites him for a heart. It rests, then hops again.

A Zombie stands where it is until the player comes within 64 pixels of it, and then it starts hopping at him, with a groan [5]. Each time it's on the ground it hops toward him: 1 time in 4 a long hop, 3 pixels per step (90 per second) across and 2–4 pixels per step up, otherwise a short one, 1 pixel per step across and 1–2 up [6]. It keeps that speed until it lands, and it falls slowly, at a third of most monsters' gravity, so a long hop carries it far: about 90 pixels for a long hop 3 pixels per step up, and about 12 for a short hop 1 pixel per step up [7] [8] [9]. It bounces back off a wall and drops at once when it hits a ceiling [10] [11].

When it lands, it stands for 40–100 steps (1.33–3.33 seconds) before hopping at a player within 64 pixels again, but if he's within 48 pixels it hops again at once [12]. It never hops at a swimming player [13]. The clip shows a Zombie waking as the player walks up, closing in with four short hops and a long one that lands on him, then resting before it hops again.

A Zombie only acts while it's on screen or just off it [14].

Damage

#

When the player touches a Zombie without stomping it, he loses 1 heart, is knocked away from it, and blinks, invincible, for 30 steps (1 second) [15]. This is the touch code most monsters share; the Zombie has no attack of its own beyond landing on him. The hop clip shows a bite taking the player from four hearts to three.

Defeating

#

A Zombie has 1 hit point, so any damage kills it [16]:

WayDamage
Whip1 hit point[17]
Machete2 hit points[17]
Stomp (landing on it)1, plus 1 for every 16 steps of falling; three times that with Spike Shoes[18]
A thrown item moving faster than 2 pixels per step, such as a Rock1[19]
A stunned monster thrown into it1[20] [21]
A Shotgun or Pistol bullet4 hit points[22]
A Bomb's explosion30 hit points[23]
A Spear Trap's spears2[24]
Falling onto SpikesKills it[25]
Standing in LavaKills it[26]
Ending up inside solid groundKills it[27]

A Zombie can't be stunned, so it can't be picked up, carried or sacrificed to Kali: the player only picks up a stunned or dead monster, and a dead Zombie leaves no body [28] [29].

Zombie whipped. A zombie hops toward the player, who whips it. It falls apart into three bones and a skull, which shatters as it lands.

A Zombie that dies bleeds and falls apart into three bones and a Skull, thrown upward [30]. The clip shows the Whip breaking up a hopping Zombie; its Skull shatters as it lands. Zombies killed count toward the player's kills, and the screen between levels draws a Zombie icon for each [31] [32]. One that Spikes, Lava or a Spear Trap killed doesn't count [33] [34] [35]; one that ends up inside solid ground does.

Locations

#

Level generation makes Zombies only on graveyard levels, which 1 in 10 levels of the Jungle is [36] [37]. On top of each block with open space above it (no block, monster or Spikes there), outside the starting room and shops, a graveyard level makes a Zombie with a 1 in 25 chance, or failing that a Vampire with a 1 in 160 chance, in place of the Jungle's usual Mantraps, Cavemen and Frogs, and under water as well as on dry ground [38].

Custom levels can have them, as the level editor's tile z [39].

Tips

#
  • A Zombie stays put until the player is within 64 pixels, so one can be passed at a distance, or above or below it.
  • Within 48 pixels a Zombie hops again as soon as it lands, so standing next to one invites a bite; a long hop can also carry it clean over the player.
  • A swimming player doesn't wake Zombies.
  • Any hit kills a Zombie, so the Whip or a stomp deals with one.

Trivia

#
  • The Zombie's code never sets its type string, so it keeps the parent object's "None" [40]. The touch code's deaths-by-enemy tally checks for "Zombie", so a Zombie that takes the player's last heart isn't counted, and the Zombie row of the table the game writes to stats.txt always reads ??? with 0 deaths [41] [42].
  • The code names five states, but sets only three of them: the walking (WALK) and drowned (DROWNED) states are never used. Its step event sends any state it doesn't handle back to standing, except the drowned one [43] [44].

FAQ

#
How much damage does a Zombie do in Spelunky Classic?

1 heart per bite. Touching a Zombie costs the player 1 heart, knocks him back and makes him invincible for 30 steps (1 second).

Where do Zombies appear in Spelunky Classic?

Only on graveyard levels ("THE DEAD ARE RESTLESS!"), which 1 in 10 levels of the Jungle is. There, level generation puts a Zombie on top of a block with a 1 in 25 chance, so a graveyard level has many.

How do you kill a Zombie in Spelunky Classic?

Hit it once with anything. A Zombie has 1 hit point, so a Whip hit, a stomp, a thrown item, a bullet or a Bomb kills it, and it falls apart into three bones and a Skull.

When does a Zombie attack in Spelunky Classic?

When the player comes within 64 pixels of it. It hops at him in short and long hops, and within 48 pixels it hops again as soon as it lands. It never hops at a swimming player.

See also

#
Damaged by

References

#
  1. objects/oZombie/create.gml:13
  2. objects/oEnemy/collision_oCharacter.gml:25
  3. objects/oZombie/step.gml:76
  4. objects/oZombie/step.gml:47-103
  5. objects/oZombie/step.gml:47-55
  6. objects/oZombie/step.gml:66-103
  7. objects/oZombie/create.gml:8-9
  8. objects/oEnemy/create.gml:16-17
  9. Clip zombie/hop
  10. objects/oZombie/step.gml:32-40
  11. objects/oZombie/step.gml:110-111
  12. objects/oZombie/step.gml:50-63
  13. objects/oZombie/step.gml:53
  14. objects/oZombie/step.gml:3-5
  15. objects/oEnemy/collision_oCharacter.gml:14-25
  16. objects/oZombie/step.gml:13-30
  17. objects/oEnemy/collision_oWhip.gml:1
  18. objects/oEnemy/collision_oCharacter.gml:6-13
  19. objects/oItem/step.gml:256-348
  20. objects/oEnemy/step.gml:169-180
  21. objects/oEnemy/step.gml:252-259
  22. objects/oBullet/collision_oEnemy.gml:16
  23. objects/oExplosion/collision_oEnemy.gml:14
  24. objects/oEnemy/step.gml:76-106
  25. objects/oEnemy/step.gml:108-128
  26. objects/oEnemy/step.gml:63-74
  27. objects/oZombie/step.gml:11
  28. objects/oPlayer1/step.gml:1300-1303
  29. objects/oEnemy/step.gml:130-131
  30. objects/oZombie/step.gml:15-22
  31. objects/oZombie/step.gml:23-28
  32. objects/oTransition/alarm_0.gml:161-166
  33. objects/oEnemy/step.gml:68
  34. objects/oEnemy/step.gml:101
  35. objects/oEnemy/step.gml:120
  36. scripts/scrInitLevel.gml:147-148
  37. scripts/scrClearGlobals.gml:56
  38. scripts/scrEntityGen.gml:276-290
  39. scripts/scrCreateTileObj.gml:164-167
  40. objects/oEnemy/create.gml:4
  41. objects/oEnemy/collision_oCharacter.gml:27-35
  42. scripts/scrWriteStats.gml:110-122
  43. objects/oZombie/create.gml:21-26
  44. objects/oZombie/step.gml:104-108

Source code

  • objects/oZombie/create.gml
  • objects/oZombie/step.gml
  • objects/oEnemy/create.gml
  • objects/oEnemy/step.gml
  • objects/oEnemy/collision_oCharacter.gml
  • objects/oEnemy/collision_oWhip.gml
  • scripts/scrEntityGen.gml
  • scripts/scrInitLevel.gml
#