Mechanic · resources & economy · interactive fiction
Light-source timer
A count of turns a lamp can stay lit, after which the player is left in the dark.
On this page
A light-source timer limits how long the player can explore dark places. In Open Adventure’s port of Adventure 2.5 the lamp lasts 330 turns, or 1,000 with instructions, and fresh batteries add 2,5001. Zork I’s lantern dims in steps and burns out after 385 lit turns (computed)2.
- Refillable countColossal Cave Adventure (1976). 330 lit turns, or 1,000 with instructions; fresh batteries add 2,500.1
- Staged dimmingZork I (1980). 200 lit turns, then waits of 100, 70, and 15 with a warning each: 385 in all.2
Games
| Game | Year | How | Note |
|---|---|---|---|
| Colossal Cave Adventure | 1976 | Refillable count | 330 lit turns, or 1,000 with instructions; fresh batteries add 2,500 |
| Zork I | 1980 | Staged dimming | 200 lit turns, then waits of 100, 70, and 15 with a warning each: 385 in all |
Every claim about this mechanic, by game (2)
References
- ^ abIn Open Adventure (Adventure 2.5) the lamp's limit starts at 330 turns, or 1,000 if the player answers yes to “Would you like instructions?” Once per command, while the lamp is lit, the limit drops by 1; the check runs at the end of the cave-closing check, which returns before it on the turn the cave starts to close and the turn it closes. At 30 or below, fresh batteries in the room or carried, with the lamp also here, are used up and add 2,500; otherwise the game warns once. At 0 the lamp goes dark.CodeOpen Adventure 1.22
How we know
32#define BATTERYLIFE 2500 // turn limit increment from batteriesadvent.h lines 27–32 at e616052 · upstream ↗ 26 .loc = LOC_START, .limit = GAMELIMIT, .foobar = WORD_EMPTY,init.c line 26 at e616052 · upstream ↗ 1547 game.limit = NOVICELIMIT;main.c lines 1543–1548 at e616052 · upstream ↗ 2935- WELCOME_YOU: 'Welcome to Adventure!! Would you like instructions?'adventure.yaml line 2935 at e616052 · upstream ↗ 874 if (game.objects[LAMP].prop == LAMP_BRIGHT) { 875 --game.limit;
main.c lines 874–875 at e616052 · upstream ↗ 900 game.limit += BATTERYLIFE;main.c lines 884–901 at e616052 · upstream ↗ 915 game.objects[LAMP].prop = LAMP_DARK;main.c lines 913–915 at e616052 · upstream ↗ 1044 lampcheck();main.c line 1044 at e616052 · upstream ↗ 1326 if (closecheck()) {main.c lines 1321–1326 at e616052 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
- ^ abIn Zork I's ZIL source the brass lantern's timer starts at 200 and runs only while the lamp is on: turning it on enables the I-LANTERN event and turning it off disables it. The clock counts it down once per parsed command other than the verbs
TELL,BRIEF,SUPER-BRIEF,VERBOSE,SAVE,VERSION,QUIT,RESTART,SCORE,SCRIPT,UNSCRIPT, andRESTORE. Each time it runs out, the lamp table sets the next wait, 100, then 70, then 15, and prints “The lamp appears a bit dimmer.”, “The lamp is definitely dimmer now.”, and “The lamp is nearly out.” if the lamp is held or in the room. After the 15 the lamp burns out for good, 385 lit turns in all (computed).CodeZork I ZIL sourceHow we know
2642 <QUEUE I-LANTERN 200>1dungeon.zil line 2642 at 97b7b3d · upstream ↗ 2241 <ENABLE <INT I-LANTERN>>1actions.zil lines 2238–2242 at 97b7b3d · upstream ↗ 2247 <DISABLE <INT I-LANTERN>>1actions.zil lines 2243–2248 at 97b7b3d · upstream ↗ 172 (T <SET V <CLOCKER>>)>)>>gmain.zil lines 169–172 at 97b7b3d · upstream ↗ 56 <PUT .C ,C-TICK <- .TICK 1>>gclock.zil lines 52–58 at 97b7b3d · upstream ↗ 2223 "The lamp appears a bit dimmer."1actions.zil lines 2220–2228 at 97b7b3d · upstream ↗ 2316 <ENABLE <QUEUE I-LANTERN <SET TICK <GET .TBL 0>>>>1actions.zil lines 2315–2319 at 97b7b3d · upstream ↗ 2331 <FSET .OBJ ,RMUNGBIT>)>1actions.zil lines 2328–2337 at 97b7b3d · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
Sources
Code
- Crowther, Will, Don Woods, Eric S. Raymond, and Jason Ninneman. 2026. “Open Adventure 1.22 source code.” Commit e616052. esr/open-adventure @ e616052 · licence, all uses
- Blank, Marc, Dave Lebling, Bruce Daniels, and Tim Anderson. 2025. “Zork I source code (Infocom ZIL).” Commit 97b7b3d. historicalsource/zork1 @ 97b7b3d · licence, all uses