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.

# A whipped Damsel's hop as a throw

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

A whipped Damsel's hop as a throw is a quirk of Spelunky Classic in which a Damsel's hop from the whip counts as a throw, and she lies stunned where she lands.

| Quirk     |                                                                                                                                                                                                             |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status    | GML + Oracle                                                                                                                                                                                                |
| Where     | [`objects/oDamsel/step.gml:145-150`](https://spelunky.ai/wiki/source/objects/oDamsel/step#L145-L150)                                                                                                        |
| Pinned by | `fidelity/replays/damsel-whip-hop-thrown.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 whipped Damsel's hop counts as a throw.” |

Cracking the [Whip](https://spelunky.ai/wiki/whip) at a [Damsel](https://spelunky.ai/wiki/damsel) doesn't hurt her: it's meant to make her hop. But the hop
comes down as fast as a throw, and the game can't tell the two apart, so she lies stunned on the floor as if
the player had thrown her, for a time that has nothing to do with the hit.

## What happens

The player whips a Damsel. She hops, unhurt, but falls back fast enough to count as thrown, and lies stunned
where she lands for what her cry for help had left to count down, rather than a throw's
120 steps. Then she gets up and runs[^1].

**Clip: A whipped Damsel's hop counts as a throw.** The player whips a Damsel. She hops, unhurt, but falls back fast enough to count as thrown, and lies stunned where she lands, for as long as her cry for help had left to count down rather than a throw's four seconds. Then she gets up and runs. ([video](https://spelunky.ai/wiki/media/1d3f433106e37ef1/clips/quirks/damsel-whip-hop-thrown/clip.mp4))

## Why

The whip's collision with a Damsel on her feet, unless it's the [Machete](https://spelunky.ai/wiki/machete)'s, which hurts her
instead, only sends her up, and doesn't hurt her:

```gml objects/oDamsel/collision_oWhip.gml:13-23
else if (status != THROWN and (status < EXIT or status == SLAVE or status == KISS) and hit == 0)
{
    yVel = -2;
    hit = 10;
    playSound(global.sndHit);
    playSound(global.sndDamsel);
    if (forSale)
    {
        scrShopkeeperAnger(3);
    }
}
```

[`objects/oDamsel/collision_oWhip.gml:13-23`](https://spelunky.ai/wiki/source/objects/oDamsel/collision_oWhip#L13-L23), 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)).

Falling back at 0.6 a step more, she's moving down at 2.2 pixels a step as she reaches the floor, and her step
treats any Damsel falling faster than 2 out of the player's hands as thrown:

```gml objects/oDamsel/step.gml:145-150
if (not held and yVel > 2 and status != THROWN)
{
    status = THROWN;
    SS_SetSoundPan(global.sndDamsel, 0);
    playSound(global.sndDamsel);
}
```

[`objects/oDamsel/step.gml:145-150`](https://spelunky.ai/wiki/source/objects/oDamsel/step#L145-L150), 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)).

Thrown, she counts as grabbed in the statistics if nothing had knocked her down before[^2], and lies on the floor until her `counter` runs out, then runs[^3]. A throw from the hands sets `counter` to her stun time[^4]; the hop doesn't, so it's whatever `counter` held: the countdown
to her next cry for help, up to 200 steps[^5][^6]. The Kissing Parlor's Damsel never counts it down,
so hers is the 200 she's made with[^7][^8].

## Reproducing it

Crack the whip at any Damsel standing out of water (in water her gravity is a third, and the hop may not come
down fast enough). In the [Kissing Parlor](https://spelunky.ai/wiki/kissing-parlor) it angers the Shopkeeper too. The replay of the
clip's staged scene, on a custom level, whips a Damsel, who lands as thrown without losing a hit point, is
counted as grabbed, and gets up and runs 154 steps later[^9].

## 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[^8], and the oracle's fingerprint of the replay pins her fall and her stun. No option turns it
off.

## FAQ

### What happens when you whip the Damsel in Spelunky Classic?

She cries out and hops, unhurt. Coming down, she falls fast enough to count as thrown, so she lies stunned where she lands, and then gets up and runs.

### How long does a whipped Damsel stay stunned?

As long as her countdown to her next cry for help had left, up to 200 steps (6.7 seconds), not a throw's 120 steps. The [Kissing Parlor](https://spelunky.ai/wiki/kissing-parlor)'s Damsel never counts down, so hers is always the full 200.

### Does whipping the Damsel count against the player?

It counts her as grabbed in the statistics, the first time she's knocked down, as a throw does. In the Kissing Parlor it also angers the Shopkeeper.

## See also

- **Related:** [Damsel](https://spelunky.ai/wiki/damsel), [Whip](https://spelunky.ai/wiki/whip), [Kissing Parlor](https://spelunky.ai/wiki/kissing-parlor)

## References

[^1]: Clip quirks/damsel-whip-hop-thrown

[^2]: [`objects/oDamsel/step.gml:241-245`](https://spelunky.ai/wiki/source/objects/oDamsel/step#L241-L245)

[^3]: [`objects/oDamsel/step.gml:281-287`](https://spelunky.ai/wiki/source/objects/oDamsel/step#L281-L287)

[^4]: [`scripts/scrUseItem.gml:597-603`](https://spelunky.ai/wiki/source/scripts/scrUseItem#L597-L603)

[^5]: [`objects/oDamsel/step.gml:189-205`](https://spelunky.ai/wiki/source/objects/oDamsel/step#L189-L205)

[^6]: [`objects/oDamsel/other_animation_end.gml:1-5`](https://spelunky.ai/wiki/source/objects/oDamsel/other_animation_end#L1-L5)

[^7]: [`objects/oDamsel/create.gml:37`](https://spelunky.ai/wiki/source/objects/oDamsel/create#L37)

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

[^9]: Replay `fidelity/replays/damsel-whip-hop-thrown.txt`

### Source code

- [`objects/oDamsel/collision_oWhip.gml`](https://spelunky.ai/wiki/source/objects/oDamsel/collision_oWhip)
- [`objects/oDamsel/collision_oWhipPre.gml`](https://spelunky.ai/wiki/source/objects/oDamsel/collision_oWhipPre)
- [`objects/oDamsel/step.gml`](https://spelunky.ai/wiki/source/objects/oDamsel/step)
