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.

# Unskippable credits fade-in

From the spelunky.ai wiki: <https://spelunky.ai/wiki/unskippable-credits-fade-in>. 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 unskippable credits fade-in is a quirk of Spelunky Classic in which no key does anything until the camel comes, a second into the credits.

| Quirk     |                                                                                                                                                                                                          |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status    | GML + Oracle                                                                                                                                                                                             |
| Where     | [`objects/oCredits2/step.gml:1-18`](https://spelunky.ai/wiki/source/objects/oCredits2/step#L1-L18)                                                                                                       |
| Pinned by | `fidelity/replays/ending-seed-1.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 credits' fade-in can't be skipped.” |

The [credits](https://spelunky.ai/wiki/credits) can be cut short with Enter, Escape or the attack key, which fade them out. The code means
a key pressed while they're still fading in to end the fade-in at once instead. But it never does: until the
camel comes, about a second in, every key is ignored.

## What happens

After the win's tally, the credits fade in on the desert. Attack, Enter and Escape are pressed as they fade in,
and attack once more before the camel comes, and none of them does anything: the fade-in ends on its own, and the
caravan rides in[^1].

**Clip: The credits' fade-in can't be skipped.** After the win's tally, the credits fade in on the desert. Attack, Enter and Escape are pressed as they fade in, and once more before the camel comes, and none of them does anything: the fade-in ends on its own and the caravan rides in. ([video](https://spelunky.ai/wiki/media/clips/quirks/credits-fade-unskippable/clip.mp4))

## Why

The credits' step reads the three keys, but only does something with them once the camel exists. Inside that, a
press during the fade-in would end it:

```gml objects/oCredits2/step.gml:1-10
if (keyboard_check_pressed(vk_enter) or
    keyboard_check_pressed(vk_escape) or
    checkAttack())
{
    if (instance_exists(oCamel))
    {
        if (fadeIn)
        {
            fadeLevel = 0;
        }
```

[`objects/oCredits2/step.gml:1-10`](https://spelunky.ai/wiki/source/objects/oCredits2/step#L1-L10), 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)).

The camel comes from the credits' alarm 0[^2], which only the end of
the fade-in sets, for 20 steps later[^3]. So while the credits are
fading in there's never a camel, and the line that would end the fade-in never runs[^4]. The keys
do nothing for the first 30 steps or so, 11 of fading and 20 of waiting, and after that a press fades the credits
out. The night credits, from the title screen's rope, do the same[^5][^6].

## Reproducing it

Press Enter, Escape or the attack key as the credits start, after a win or from the title screen's rope. It
happens to anyone who tries to skip them straight away. In the replay of the clip, the credits start on frame
6838, and attack (6841), Enter (6844) and Escape (6847) during the fade-in, and attack (6858) after it, change
nothing: the fade-in ends on its own on 6849, the camel comes on 6869, and the credits only fade out when attack is
pressed again, on 8383[^7].

## 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 the fade-in's end and the camel. No option
turns it off.

## FAQ

### Why can't I skip the start of the credits in Spelunky Classic?

Enter, Escape and the attack key only work once the camel has come, about a second into the credits. Before that, they do nothing, though the code means them to end the fade-in at once.

### How do you skip the credits in Spelunky Classic?

Wait for the camel, then press Enter, Escape or the attack key: the credits fade out, to the high scores room after a win; after the night credits, from the title screen's rope, the game quits.

### Does a key pressed during the fade-in count later?

Enter and Escape don't: they're only seen on the step they're pressed. The attack key counts while it's held, so holding it through the fade-in fades the credits out the moment the camel comes.

## See also

- **Related:** [Credits](https://spelunky.ai/wiki/credits), [Endings](https://spelunky.ai/wiki/endings)

## References

[^1]: Clip quirks/credits-fade-unskippable

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

[^3]: [`objects/oCredits2/step.gml:35-43`](https://spelunky.ai/wiki/source/objects/oCredits2/step#L35-L43)

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

[^5]: [`objects/oCredits1/step.gml:1-16`](https://spelunky.ai/wiki/source/objects/oCredits1/step#L1-L16)

[^6]: [`objects/oCredits1/step.gml:34-42`](https://spelunky.ai/wiki/source/objects/oCredits1/step#L34-L42)

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

### Source code

- [`objects/oCredits1/step.gml`](https://spelunky.ai/wiki/source/objects/oCredits1/step)
- [`objects/oCredits1/alarm_0.gml`](https://spelunky.ai/wiki/source/objects/oCredits1/alarm_0)
- [`objects/oCredits2/step.gml`](https://spelunky.ai/wiki/source/objects/oCredits2/step)
- [`objects/oCredits2/alarm_0.gml`](https://spelunky.ai/wiki/source/objects/oCredits2/alarm_0)
