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.

# Jumping out of a web wearing the one beside it

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

Jumping out of a web wearing the one beside it is a quirk of Spelunky Classic in which a jump out of a web can wear down the web beside it instead.

| Quirk     |                                                                                                                                                                                                                        |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status    | GML + Oracle                                                                                                                                                                                                           |
| Where     | [`scripts/characterStepEvent.gml:294-297`](https://spelunky.ai/wiki/source/scripts/characterStepEvent#L294-L297)                                                                                                       |
| Pinned by | `fidelity/replays/trap-web-jump-wrong-web.txt`                                                                                                                                                                         |
| Row       | [docs/quirks.md §1, Bugs and leftovers in the 1.1 source](https://github.com/851-labs/spelunky/blob/main/docs/quirks.md#1-bugs-and-leftovers-in-the-11-source): “A jump out of a web can wear down the web beside it.” |

Caught in a [web](https://spelunky.ai/wiki/web), the player jumps his way out: each jump wears the web down, and it breaks on the
eleventh. But the jump looks for the web in one place and wears down the one it finds in another. Where two
webs meet, it can wear down the one beside him, so his own holds out for longer and the other breaks first.

## What happens

The player falls into the right-hand one of three webs side by side and jumps again and again. Most of his
jumps fade the web beside him, not his own: that one breaks on the fourteenth jump, while the web holding him
is barely worn[^1].

**Clip: A jump out of a web wears down the web beside it.** The player falls into the right-hand one of three webs side by side and jumps again and again. Most of his jumps fade the web beside him, not his own: the one beside him breaks on the fourteenth jump, while the web holding him is barely worn. ([video](https://spelunky.ai/wiki/media/1d3f433106e37ef1/clips/quirks/web-jump-wears-wrong-web/clip.mp4))

## Why

A web starts with a `life` of 12, fades as it goes down, and breaks at 1[^2][^3]. The player's jump in one
finds it and wears it down in two different ways:

```gml scripts/characterStepEvent.gml:294-297
if (kJumpPressed and collision_point(x, y, oWeb, 0, 0))
{
    obj = instance_place(x, y, oWeb);
    obj.life -= 1;
```

[`scripts/characterStepEvent.gml:294-297`](https://spelunky.ai/wiki/source/scripts/characterStepEvent#L294-L297), 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)).

`collision_point` tests for a web at one point, the player's middle. `instance_place` tests his whole body
there, and returns the first web it overlaps in the game's list of webs (in the replay below, the order
they were made), which needn't be the one he's in. His body is his sprite's frame, which changes as he
jumps. So in the later-made of two webs, near where they meet, some of his jumps wear down the other one. In
the earlier-made one, it's found first, and his jumps wear it down as they're meant to[^4].

## Reproducing it

Get caught in the right-hand web of a pair, near the left one, and jump out: it takes more than eleven jumps,
and the left one fades. The [Giant Spider](https://spelunky.ai/wiki/giant-spider) hangs above two webs side by side, the right-hand one
made second[^5], and the level's webs can fill alcoves
and tunnels next to each other. The replay of the clip's staged scene, on a custom level, drops the player into
the right-hand one of three webs; eleven of his fourteen jumps wear down the middle web, which breaks on the
last, and three his own[^6].

## In the port

The spelunky.ai port reproduces it exactly: it's in docs/quirks.md's list of the 1.1 source's bugs[^4], and the oracle's fingerprint of the replay pins each jump's web. No option turns it off.

## FAQ

### How many jumps does it take to break a web in Spelunky Classic?

Eleven, for a [web](https://spelunky.ai/wiki/web) on its own: each jump takes 1 off its 12, and it breaks at 1. Beside another web it can take more, as some of the jumps wear down the other one.

### Why does a web sometimes take more than eleven jumps to break?

The player may be wearing down the web beside it. A jump checks for a web at his middle, but takes the jump off the first web his body overlaps, which can be the next one along.

### Where does this happen?

Wherever two webs are side by side: under the [Giant Spider](https://spelunky.ai/wiki/giant-spider), which hangs above a pair, and where the level's webs fill alcoves or tunnels next to each other.

## See also

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

## References

[^1]: Clip quirks/web-jump-wears-wrong-web

[^2]: [`objects/oWeb/create.gml:1`](https://spelunky.ai/wiki/source/objects/oWeb/create#L1)

[^3]: [`objects/oWeb/step.gml:1-3`](https://spelunky.ai/wiki/source/objects/oWeb/step#L1-L3)

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

[^5]: [`objects/oGiantSpiderHang/create.gml:26-27`](https://spelunky.ai/wiki/source/objects/oGiantSpiderHang/create#L26-L27)

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

### Source code

- [`scripts/characterStepEvent.gml`](https://spelunky.ai/wiki/source/scripts/characterStepEvent)
- [`objects/oWeb/create.gml`](https://spelunky.ai/wiki/source/objects/oWeb/create)
- [`objects/oWeb/step.gml`](https://spelunky.ai/wiki/source/objects/oWeb/step)
- [`objects/oGiantSpiderHang/create.gml`](https://spelunky.ai/wiki/source/objects/oGiantSpiderHang/create)
