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.

# Editor info skipping fields

From the spelunky.ai wiki: <https://spelunky.ai/wiki/editor-info-skips-fields>. Verified against the spelunky.ai port [v0.1.13](https://github.com/851-labs/spelunky/releases/tag/v0.1.13) on 28 October 2026.

Editor info skipping fields is a quirk of Spelunky Classic in which each Enter in the level editor's info prompt moves two fields on, skipping three of them.

| Quirk     |                                                                                                                                                                                                                      |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status    | GML + Oracle                                                                                                                                                                                                         |
| Where     | [`objects/oLevelEditor/keypress_anykey.gml:201-322`](https://spelunky.ai/wiki/source/objects/oLevelEditor/keypress_anykey#L201-L322)                                                                                 |
| Pinned by | `fidelity/replays/editor-build-test-save.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 level editor's info prompt skips three fields.” |

The [level editor](https://spelunky.ai/wiki/level-editor)'s Edit button asks for a level's info one field at a time: its name, author, music,
starting hearts, bombs and ropes, and next level. Every key press there counts twice, so each Enter moves two fields
on. The prompt only ever stops on the name, the music, the bombs and the next level: the author, the hearts and the
ropes keep what they had.

## What happens

The player clicks Edit, and the prompt asks for the LEVEL NAME. Enter, and it asks for the MUSIC, where AUTHOR
should have been. The player empties the music, and an Enter on the empty field does nothing; with LL typed, the
next Enter goes to START BOMBS, past START LIFE. The next goes to NEXT LEVEL, past START ROPE, and the last back to
editing[^1].

**Clip: The editor's info prompt skips fields.** In the level editor, the player clicks Edit and the prompt asks for the level's name. Each Enter on a field that isn't empty moves it two fields on: from the name to the music, past the author; to the bombs, past the starting hearts; to the next level, past the ropes; and back to editing. An Enter on the emptied music does nothing. ([video](https://spelunky.ai/wiki/media/clips/quirks/editor-info-skips-fields/clip.mp4))

## Why

GameMaker runs an object's "any key" event twice for each key press[^2], and the editor's prompt
lives in that event. Each field moves the prompt on to the next when Enter is pressed and it isn't empty:

```gml objects/oLevelEditor/keypress_anykey.gml:201-211
else if (status == INFO_NAME)
{
    if (keyboard_key == vk_enter)
    {
        if (levelName != "")
        {
            status = INFO_AUTHOR;
            window_set_cursor(cr_default);
            oCursObj.visible = true;
        }
    }
```

[`objects/oLevelEditor/keypress_anykey.gml:201-211`](https://spelunky.ai/wiki/source/objects/oLevelEditor/keypress_anykey#L201-L211), 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 first run takes the prompt from the name to the author, and the second, now on the author, takes it on to the
music[^3]. The same happens from the music to the bombs
and from the bombs to the next level, so the fields after the name, the music and the bombs are never shown[^4]. They keep their values, ANONYMOUS, 4 and 4 in a new level[^5]. Only an empty field stops a run: Enter on an emptied field
does nothing. The same doubling types the E that opens an exit's label or a sign's message into it, as the second
run is already editing the text[^6].

## Reproducing it

Click Edit in the level editor and press Enter: the prompt goes from the name straight to the music. It happens to
anyone who sets a level's info. In the clip's replay the prompt opens on frame 356, and each Enter on a field that
isn't empty moves it two fields: to the music on 366, to the bombs on 386, to the next level on 398 and back to
editing on 414. The Enter on 378, on the emptied music, leaves it there. It's never on the author, the hearts or
the ropes[^7]. In another,
E over an exit labelled AB opens it as ABE[^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[^4], and the oracle's fingerprints of the two replays pin the prompt's fields. No option turns it off.

## FAQ

### Why can't I change the author in the Spelunky Classic level editor?

Each press of Enter in the info prompt moves it two fields on, and the author comes right after the level's name, so Enter on the name goes straight past it to the music. The starting hearts and ropes are passed over the same way.

### Which fields of a level's info can be set in the editor?

The level's name, its music, its starting bombs and its next level. The author, the starting hearts and the starting ropes stay what they were: ANONYMOUS, 4 and 4 for a new level.

### Why does every letter type twice in the level editor?

GameMaker runs the editor's "any key" event twice for each key press, and each run types the key. The same doubling makes one Enter move the info prompt two fields.

### Can the skipped fields be set at all?

Hardly: the prompt only stops on a skipped field that's empty, which none is unless the saved level was changed by hand. A saved level is a text file, and its author, hearts and ropes can be changed in it; the menu then plays it with those values.

## See also

- **Related:** [Level editor](https://spelunky.ai/wiki/level-editor)

## References

[^1]: Clip quirks/editor-info-skips-fields

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

[^3]: [`objects/oLevelEditor/keypress_anykey.gml:218-228`](https://spelunky.ai/wiki/source/objects/oLevelEditor/keypress_anykey#L218-L228)

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

[^5]: [`objects/oLevelEditor/create.gml:20-26`](https://spelunky.ai/wiki/source/objects/oLevelEditor/create#L20-L26)

[^6]: [`objects/oLevelEditor/keypress_anykey.gml:127-162`](https://spelunky.ai/wiki/source/objects/oLevelEditor/keypress_anykey#L127-L162)

[^7]: Replay `fidelity/replays/editor-build-test-save.txt`

[^8]: Replay `fidelity/replays/editor-doors-signs-new.txt`

### Source code

- [`objects/oLevelEditor/keypress_anykey.gml`](https://spelunky.ai/wiki/source/objects/oLevelEditor/keypress_anykey)
- [`objects/oLevelEditor/draw.gml`](https://spelunky.ai/wiki/source/objects/oLevelEditor/draw)
- [`objects/oLevelEditor/create.gml`](https://spelunky.ai/wiki/source/objects/oLevelEditor/create)
