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.

# Free bomb arrows

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

Free bomb arrows are a quirk of Spelunky Classic in which a bomb arrow from the Bow costs no bomb, so one bomb makes as many as the player has arrows.

| Quirk     |                                                                                                                                                                                                                                               |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status    | GML + Oracle                                                                                                                                                                                                                                  |
| Where     | `objects/oPlayer1/step.gml:1132-1136`                                                                                                                                                                                                         |
| Pinned by | `fidelity/replays/weapon-bow-bomb-arrow-free.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 bomb arrow costs no bomb, and the bomb key only readies one at full draw.” |

With the [Bow](https://spelunky.ai/wiki/bow) fully drawn, the bomb key readies a bomb arrow instead of throwing a [Bomb](https://spelunky.ai/wiki/bomb). It
asks for a bomb, and never takes one. The same key does nothing while the Bow is still drawing, so the
player has to wait for the full draw.

## What happens

From a ledge, the player presses the bomb key with the Bow barely drawn, and nothing happens: he shoots a
plain [arrow](https://spelunky.ai/wiki/arrow). Drawn all the way, the key makes a bomb arrow, which sticks in a wall and blows up
there, while his bombs stay at four[^1].

**Clip: A bomb arrow costs no bomb.** From a ledge, the player presses the bomb key with a bow barely drawn, and nothing happens: he shoots a plain arrow. Drawn all the way, the key makes a bomb arrow, which sticks in a wall and blows up there, while his bombs stay at four. ([video](https://spelunky.ai/wiki/media/015c74cb8645abba/clips/quirks/bomb-arrow-free/clip.mp4))

## Why

The bomb key readies a bomb arrow if the player has a bomb, the Bow is drawn and he isn't whipping[^2]:

```gml objects/oPlayer1/step.gml:1132-1136
else if (inGame and kBombPressed and global.bombs > 0 and not whipping and bowArmed)
{
    holdArrow = ARROW_BOMB;
    alarm[11] = 1;
}
```

`objects/oPlayer1/step.gml:1132-1136`, 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)).

A bomb thrown the usual way takes one with `global.bombs -= 1`[^3]. Nothing does for the bomb arrow: not these lines, not the
script that shoots it, which only gives it what's left of its fuse, nor its explosion[^4].

Later in the same step, the draw sets the arrow back to a plain one on every step the Bow is still drawing,
so the bomb key's arrow lasts only while the draw is full[^5]. A bomb arrow's 80-step fuse runs from the step it's
readied, and if the player is still holding it when it runs out, it explodes in his hands[^6][^7].

## Reproducing it

Hold the Bow's attack key until it's fully drawn, with at least one bomb, then press the bomb key and let go.
The replay of the clip's staged scene pins it: the bomb key at a light draw leaves a plain arrow, and at full
draw readies a bomb arrow that explodes 80 steps on, with the bombs still at four[^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[^7], and the oracle's fingerprint of the replay pins the bomb count. No option turns it off.

## FAQ

### Do bomb arrows use up bombs in Spelunky Classic?

No. The bomb key needs at least one bomb to ready a bomb arrow, but nothing takes it, so a player with one bomb has as many bomb arrows as arrows.

### Why doesn't the bomb key make a bomb arrow?

It only works once the [Bow](https://spelunky.ai/wiki/bow) is fully drawn. While the Bow is still drawing, each step of the draw turns the arrow back into a plain one.

### When does a bomb arrow explode?

80 steps after it was readied, in the player's hands if he's still holding it, or when it hits a monster.

## See also

- **Related:** [Bow](https://spelunky.ai/wiki/bow), [Bomb](https://spelunky.ai/wiki/bomb), [Arrow](https://spelunky.ai/wiki/arrow)

## References

[^1]: Clip quirks/bomb-arrow-free

[^2]: `objects/oPlayer1/step.gml:1132-1136`

[^3]: `objects/oPlayer1/step.gml:1172`

[^4]: `scripts/scrFireBow.gml:54-61`

[^5]: `objects/oPlayer1/step.gml:1463-1474`

[^6]: `objects/oPlayer1/step.gml:29-40`

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

[^8]: Replay `fidelity/replays/weapon-bow-bomb-arrow-free.txt`

### Source code

- `objects/oPlayer1/step.gml`
- `scripts/scrFireBow.gml`
