Spelunky is © 2008, 2009 Derek Yu and Mossmouth, LLC, and is used under the [Spelunky User License v1.1b](https://spelunky.ai/LICENSE.txt). spelunky.ai is an unofficial fan project, not affiliated with or endorsed by Mossmouth. The game and its assets may not be sold.

Music by George Buzinkai and Jonathan Perry; sound effects made in SFXR. From Spelunky Classic 1.1, © 2008, 2009 Derek Yu and Mossmouth, LLC.

# Web

From the spelunky.ai wiki: <https://spelunky.ai/wiki/web>. Verified against the spelunky.ai port [v0.1.10](https://github.com/851-labs/spelunky/releases/tag/v0.1.10) on 27 October 2026.

Webs are a trap in Spelunky Classic, spun across gaps in the rock, that hold monsters and items still and slow the player until he jumps free.

![A grey spider's web stretched across a square](https://spelunky.ai/wiki/media/b4d187f47af35d82/sprites/sWeb/frames/0%404x.png)

| Web      |                                                                                                                                           |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Damage   | None; it holds what enters it[^1]                                                                                                         |
| Trigger  | Anything that moves into it[^2]                                                                                                           |
| Object   | `oWeb`                                                                                                                                    |
| Found in | [The Mines](https://spelunky.ai/wiki/mines), [The Jungle](https://spelunky.ai/wiki/jungle), [The Temple](https://spelunky.ai/wiki/temple) |

A web is a grey mesh the size of a block, stretched across a gap in the rock. It hurts nothing. Anything
that moves into it, a monster, a thrown item or a piece of treasure, stops dead and hangs there, and the
player in one moves at a crawl until he jumps his way out. Level generation leaves webs in the nooks of
the Mines, the Jungle and the Temple, and a [Giant Spider](https://spelunky.ai/wiki/giant-spider) and the
[Web Cannon](https://spelunky.ai/wiki/web-cannon) make more.

## How it works

**Clip: Falling into a web.** The player walks off a ledge and falls twenty-five blocks down a shaft into a web at its foot, which catches him unhurt. He jumps again and again, barely rising, until the web, fading with each jump, breaks on the eleventh, and the next jump is a full one. ([video](https://spelunky.ai/wiki/media/b4d187f47af35d82/clips/web/fall/clip.mp4))

A web has a strength of 12, and it's drawn fainter as the strength goes down: its
opacity is its strength over 12[^3][^4].
Once the strength is 1 or less, the web is gone.

While the player's centre is in a web, unless he's climbing a rope or a ladder, he keeps only a fifth of his
speed each step, across and up or down, and his fall is forgotten: the count of steps he has been falling,
which decides what a landing costs him, goes back to 0[^5][^6][^7].
On ice he slides as he would without it, and under an open [Parachute](https://spelunky.ai/wiki/parachute) or [Cape](https://spelunky.ai/wiki/cape) he keeps
half his speed up or down[^8][^9].
So a long fall that ends in a web does him no harm. A fall of more than 32 steps would cost him 2 hearts on
landing, and one of more than 48 steps 10[^10].

The jump key gets him out. Pressed in a web, it jumps him even in mid-air, and takes 1 from the strength of
the web[^11]. In the web, the jump only lifts him a little,
and he sinks back, so it takes eleven jumps to break a web from full strength, and can take more where
another web meets it ([Trivia](https://spelunky.ai/wiki/web#trivia)).

The clip shows the player walking off a ledge into a shaft and falling 43 steps, enough for a 2-heart
landing, into a web at its foot, which catches him unhurt. He jumps again and again, the web fading with
each jump, until the eleventh breaks it, and the next jump is a full one[^12].

A web the Giant Spider spits or the Web Cannon fires also fades by itself, losing 0.02 per step of
strength each step it's near the view[^13], so one in view is gone 551
steps (about 18 seconds) after it appears: the subtraction's rounding leaves the strength a hair over 1 after
the 550th[^14][^4].
The webs level generation makes, and the Giant Spider's two under its perch, never fade.

## Damage

None. A web never hurts the player or a monster, and holding a monster still doesn't hurt it either. It can
save the player from a fall, as above, and it holds a monster where the player can reach it: in the second
clip, a [Snake](https://spelunky.ai/wiki/snake) slithers into a web and stays there, and the player walks up and whips it dead[^15].

## Locations

Level generation tries for a web in the open space on top of each block outside the shops, after the rolls
for a loose [Rock](https://spelunky.ai/wiki/rock) (1 in 100) and a [Jar](https://spelunky.ai/wiki/jar) (1 in 40) there fail, and before the rolls for
anything else in the space[^16][^17][^18][^19]:

| Space                                                     | Chance  |       |
| --------------------------------------------------------- | ------- | ----- |
| An alcove: a block over the space and one beside it       | 1 in 5  | [^20] |
| A tunnel: blocks on both sides of the space, none over it | 1 in 10 | [^21] |

That's in [the Mines](https://spelunky.ai/wiki/mines), [the Jungle](https://spelunky.ai/wiki/jungle) and [the Temple](https://spelunky.ai/wiki/temple); the
[Ice Caves](https://spelunky.ai/wiki/ice-caves) get no webs this way[^22]. The space must
be empty (no treasure, chest, spikes, entrance or exit in it) and at least 32 pixels from the entrance and
the exit and 64 from an idol[^23]. The odds were meant to be
1 in 60, rising to these only within 100 pixels of a Giant Spider; a mistake in the test makes every space
count as near one ([Trivia](https://spelunky.ai/wiki/web#trivia)).

Webs are also made by:

- **[Giant Spiders](https://spelunky.ai/wiki/giant-spider)**, which start out hanging with two webs side by side under them[^24], and spit balls of web that stick where they
  land[^25].
- **The [Web Cannon](https://spelunky.ai/wiki/web-cannon)**, whose shots stick as webs where they stop[^26].
- **The level editor**, as its tile `&`[^27].

## Avoiding

- **Cut it.** A [Machete](https://spelunky.ai/wiki/machete)'s slash destroys a web it touches; the Whip's crack passes through[^28].
- **Blow it up.** A [Bomb](https://spelunky.ai/wiki/bomb)'s explosion destroys the webs it reaches[^29].
- **Jump out.** Eleven jumps break a web the player is caught in, or more where another web meets it (above).
- **Fall into it.** A web at the foot of a drop is a safe landing.

## Interactions

What a web does to what moves into it, on every step it's there:

| What                                                                                                                   | What happens                                                          |            |
| ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ---------- |
| Any monster but a [Spider](https://spelunky.ai/wiki/spider) or a [Giant Spider](https://spelunky.ai/wiki/giant-spider) | Held still                                                            | [^1]       |
| A [Magma Man](https://spelunky.ai/wiki/magma-man)                                                                      | Held still, and burns the web away                                    | [^30]      |
| A living Shopkeeper                                                                                                    | Held still, and set to attacking                                      | [^31][^32] |
| Items, but one the player holds or a thrown [Rope](https://spelunky.ai/wiki/rope)                                      | Stopped where they are                                                | [^2]       |
| A thrown Damsel                                                                                                        | Stopped, and counts as landed: she gets up as she would on the ground | [^33][^34] |
| Treasure                                                                                                               | Stopped where it is                                                   | [^35]      |
| Rubble, drips and leaves                                                                                               | Stopped, and their animation frozen                                   | [^36]      |
| A ball of web                                                                                                          | Stops, and becomes a web                                              | [^37]      |
| An [Alien](https://spelunky.ai/wiki/alien) parachuting from a downed [UFO](https://spelunky.ai/wiki/ufo)               | Lands, and is an Alien on its feet                                    | [^38]      |

Besides the Machete and bombs, water or lava touching a web destroys it, and so does a UFO's laser[^39][^40].

## Trivia

- The webs' odds in level generation pass a comparison where the object should go:

  ```gml scripts/scrTreasureGen.gml:52-55
      n = 60;
      if (distance_to_object(oGiantSpider < 100)) n = 5;

      if (global.levelType != 2 and rand(1,n) == 1) instance_create(x, y-16, oWeb);
  ```

  `scripts/scrTreasureGen.gml:52-55`, from `spelunky.gmk`, Spelunky Classic 1.1's source, © 2008, 2009 Derek Yu and Mossmouth, LLC ([Spelunky User License v1.1b](https://spelunky.ai/LICENSE.txt)).

  `oGiantSpider < 100` is false, so the call measures the distance to an object that doesn't exist, and
  gets a large number, which counts as true. So every alcove gets the 1 in 5 meant for one near a Giant
  Spider, and every tunnel the 1 in 10, and webs are about 11 times as common as the code means[^41].
- A jump checks for a web at the player's centre, but wears down the first web his body overlaps[^42]: where two webs meet, a jump can wear down the
  other one. With the player in the later-made of the two, near where they meet, most of his jumps can go to
  the web beside him, which breaks first, while the one holding him takes more than eleven jumps[^41]. In a staged scene with three webs side by side, eleven of his fourteen jumps wear down
  the middle web, which breaks, and only three the web he's in[^43]. The [Giant Spider](https://spelunky.ai/wiki/giant-spider)'s two
  webs are such a pair.

## FAQ

### How do you get out of a web in Spelunky Classic?

By jumping. Each jump in a web lifts the player a little and wears the web down, and the eleventh jump breaks it, though where two webs meet a jump can wear down the other one instead. A [Machete](https://spelunky.ai/wiki/machete)'s slash or a [Bomb](https://spelunky.ai/wiki/bomb) destroys a web at once; the Whip doesn't.

### Do webs hurt you in Spelunky Classic?

No. A web does no damage. It slows the player almost to a stop, and a fall that ends in a web does him no harm, however far he fell.

### Where do webs come from in Spelunky Classic?

Level generation spins them into gaps in the rock in the Mines, the Jungle and the Temple, but not the Ice Caves. A [Giant Spider](https://spelunky.ai/wiki/giant-spider) hangs above two of its own and spits more, and the [Web Cannon](https://spelunky.ai/wiki/web-cannon) fires them.

### Do spiders get stuck in webs in Spelunky Classic?

No. Spiders and Giant Spiders move through webs freely; every other monster is held still in one.

## Gallery

**Clip: Snake in a web.** A snake slithers into a web and is held fast in it. The player walks up and whips the snake dead, and the web stays. ([video](https://spelunky.ai/wiki/media/b4d187f47af35d82/clips/web/snake/clip.mp4))

## See also

- **Related:** [Giant Spider](https://spelunky.ai/wiki/giant-spider), [Web Cannon](https://spelunky.ai/wiki/web-cannon), [Machete](https://spelunky.ai/wiki/machete), [Spider](https://spelunky.ai/wiki/spider)

## References

[^1]: `objects/oWeb/collision_oEnemy.gml:1-5`

[^2]: `objects/oWeb/collision_oItem.gml:1-5`

[^3]: `objects/oWeb/create.gml:1-2`

[^4]: `objects/oWeb/step.gml:1-3`

[^5]: `scripts/characterStepEvent.gml:677-681`

[^6]: `scripts/characterStepEvent.gml:743-749`

[^7]: `scripts/characterStepEvent.gml:895-896`

[^8]: `scripts/characterStepEvent.gml:774-778`

[^9]: `scripts/characterStepEvent.gml:868-875`

[^10]: `objects/oPlayer1/step.gml:268-289`

[^11]: `scripts/characterStepEvent.gml:294-307`

[^12]: Clip web/fall

[^13]: `objects/oLevel/step.gml:75-94`

[^14]: `objects/oWebBall/other_animation_end.gml:1-6`

[^15]: Clip web/snake

[^16]: `scripts/scrEntityGen.gml:35-41`

[^17]: `scripts/scrEntityGen.gml:255-259`

[^18]: `scripts/scrEntityGen.gml:475-478`

[^19]: `scripts/scrTreasureGen.gml:42-55`

[^20]: `scripts/scrTreasureGen.gml:48-55`

[^21]: `scripts/scrTreasureGen.gml:95-100`

[^22]: `scripts/scrTreasureGen.gml:55`

[^23]: `scripts/scrTreasureGen.gml:27-40`

[^24]: `objects/oGiantSpiderHang/create.gml:26-27`

[^25]: `objects/oGiantSpider/step.gml:80-87`

[^26]: `scripts/scrUseItem.gml:332-397`

[^27]: `scripts/scrCreateTileObj.gml:110-113`

[^28]: `objects/oWeb/collision_oSlash.gml:1`

[^29]: `objects/oExplosion/collision_oWeb.gml:1`

[^30]: `objects/oWeb/collision_oEnemy.gml:7-10`

[^31]: `objects/oWeb/collision_oEnemy.gml:12-15`

[^32]: `objects/oShopkeeper/create.gml:18`

[^33]: `objects/oDamsel/step.gml:237`

[^34]: `objects/oDamsel/step.gml:281-287`

[^35]: `objects/oWeb/collision_oTreasure.gml:1-2`

[^36]: `objects/oWeb/collision_oRubblePiece.gml:1-3`

[^37]: `objects/oWebBall/collision_oWeb.gml:1-3`

[^38]: `objects/oAlienEject/collision_oWeb.gml:1-2`

[^39]: `objects/oWeb/collision_oWater.gml:1`

[^40]: `objects/oWeb/collision_oLaser.gml:1`

[^41]: Quirk 1 (docs/quirks.md)

[^42]: `scripts/characterStepEvent.gml:294-297`

[^43]: Replay `fidelity/replays/trap-web-jump-wrong-web.txt`

### Source code

- `objects/oWeb/create.gml`
- `objects/oWeb/step.gml`
- `objects/oWeb/collision_oEnemy.gml`
- `objects/oWeb/collision_oItem.gml`
- `objects/oWeb/collision_oTreasure.gml`
- `objects/oWeb/collision_oRubblePiece.gml`
- `objects/oWeb/collision_oSlash.gml`
- `objects/oWeb/collision_oLaser.gml`
- `objects/oWeb/collision_oWater.gml`
- `objects/oWebBall/other_animation_end.gml`
- `objects/oGiantSpiderHang/create.gml`
- `scripts/characterStepEvent.gml`
- `scripts/scrTreasureGen.gml`
