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.

# The pause screen's hidden keys

From the spelunky.ai wiki: <https://spelunky.ai/wiki/pause-screen-hidden-keys>. Verified against the spelunky.ai port [v0.1.13](https://github.com/851-labs/spelunky/releases/tag/v0.1.13) on 28 October 2026.

The pause screen's hidden keys is a quirk of Spelunky Classic in which the bomb key kills the player from the pause screen, and the rope key quits.

| Quirk     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status    | GML + Oracle                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Where     | [`objects/oScreen/step_begin.gml:5-30`](https://spelunky.ai/wiki/source/objects/oScreen/step_begin#L5-L30)                                                                                                                                                                                                                                                                                                                                                                                |
| Pinned by | `fidelity/replays/flow-pause-game-over-new-game.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): “The pause screen's keyboard keys aren't only the ones it shows (ESC-RETURN F1-DIE F10-QUIT): oScreen's begin step reads checkBombPressed and checkRopePressed, which take the keyboard's bomb and rope keys as well as the gamepad's, so the bomb key (A) kills the player like F1 and the rope key (S) quits like F10.” |

The pause screen lists three keys at the bottom: ESC-RETURN, F1-DIE and F10-QUIT. With a gamepad on, it lists
the buttons instead: START-RETURN, BOMB-DIE and ROPE-QUIT. But the keyboard's bomb and rope keys work too,
whichever is shown, so a player who presses the bomb key while paused dies, and one who presses the rope key
quits the game.

## What happens

The player pauses the game on the first level. The screen shows ESC-RETURN, F1-DIE and F10-QUIT, but he presses
the bomb key, A, and that kills him: the game resumes with him flung into the air, dead, and the game over screen
follows[^1].

**Clip: The bomb key dies from the pause screen.** The player pauses the game on the first level. The pause screen offers ESC to return, F1 to die and F10 to quit, but he presses the bomb key, A, and that kills him too: he's flung, and the game over screen follows. ([video](https://spelunky.ai/wiki/media/clips/quirks/pause-bomb-key-dies/clip.mp4))

## Why

The pause screen's code checks for the bomb and rope buttons with `checkBombPressed` and `checkRopePressed`:

```gml objects/oScreen/step_begin.gml:5-8
if (checkBombPressed())
{
    if (paused and global.plife > 0 and isLevel())
    {
```

[`objects/oScreen/step_begin.gml:5-8`](https://spelunky.ai/wiki/source/objects/oScreen/step_begin#L5-L8), 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)).

Those are the same checks the player's own step uses to throw a bomb or a rope, so they take the gamepad's
button or the keyboard's key, whichever is pressed[^2][^3]. The bomb's branch then kills the player as F1 does, and the
rope's, with the game paused anywhere, ends the game[^4][^5]. The two deaths differ only in the music: F1 sets it to full volume and stops it[^6], while the bomb's branch sets it back to the settings' music
volume and stops it only if the player has no [Ankh](https://spelunky.ai/wiki/ankh).

## Reproducing it

Pause in a level and press the bomb key, or pause anywhere and press the rope key. The replay of the clip pauses
on the first level (frame 1250) and presses A: the player dies (1280), and the game over screen follows[^7]. Another replay quits from the pause screen
with S[^8].

## 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[^5], and the oracle's fingerprints of the replays pin both keys. No option turns it off.

## FAQ

### Why did I die when I pressed a key on the pause screen in Spelunky Classic?

The bomb key (A, unless it's been changed) kills the player from the pause screen, just like F1, though the screen only lists ESC, F1 and F10. On a gamepad, the bomb button is meant to; on the keyboard, the same code takes the bomb key too.

### Why did Spelunky Classic close when I pressed the rope key while paused?

The rope key (S, unless it's been changed) quits the game from the pause screen, like F10. It works wherever the game can be paused, the title screen and the high scores room included.

### Is dying with the bomb key the same as with F1?

Nearly. Both fling the player and kill him. F1 stops the music; the bomb key turns it back down to the music volume of the settings, and stops it only if he has no Ankh.

## See also

- **Related:** [Controls](https://spelunky.ai/wiki/controls), [Bomb](https://spelunky.ai/wiki/bomb), [Rope](https://spelunky.ai/wiki/rope)

## References

[^1]: Clip quirks/pause-bomb-key-dies

[^2]: [`scripts/checkBombPressed.gml:1-4`](https://spelunky.ai/wiki/source/scripts/checkBombPressed#L1-L4)

[^3]: [`scripts/checkRopePressed.gml:1-4`](https://spelunky.ai/wiki/source/scripts/checkRopePressed#L1-L4)

[^4]: [`objects/oScreen/step_begin.gml:9-33`](https://spelunky.ai/wiki/source/objects/oScreen/step_begin#L9-L33)

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

[^6]: [`objects/oScreen/keypress_F1.gml:13-18`](https://spelunky.ai/wiki/source/objects/oScreen/keypress_F1#L13-L18)

[^7]: Replay `fidelity/replays/flow-pause-game-over-new-game.txt`

[^8]: Replay `fidelity/replays/ending-seed-1.txt`

### Source code

- [`objects/oScreen/step_begin.gml`](https://spelunky.ai/wiki/source/objects/oScreen/step_begin)
- [`objects/oScreen/keypress_F1.gml`](https://spelunky.ai/wiki/source/objects/oScreen/keypress_F1)
- [`scripts/checkBombPressed.gml`](https://spelunky.ai/wiki/source/scripts/checkBombPressed)
- [`scripts/checkRopePressed.gml`](https://spelunky.ai/wiki/source/scripts/checkRopePressed)
