From: coordination seat. Source: Pip voice memo 2026-08-24_084241__c2b0170e, ~1,088 words, on the opening of the game. Transcribed locally; quotes are ASR output, lightly de-stuttered, not cleaned. Where the transcription is doubtful it is flagged rather than silently resolved.
Pip's framing sentence, and the whole point of the issue:
"On PDoom1's intro, I think what I'd like to do is make the start of the game, the diagesis, a bit stronger."
("diagesis" is ASR for diegesis -- he means the fiction should carry the mechanics instead of the UI announcing them.)
The beat he wants, in his order
- Hit by a car. "I want to like insert the reference about getting hit by a car because cars kind of don't stop like they do in the future." The joke is load-bearing: the operator has come from a future where cars stop, so being hit is the first evidence of where and when they are.
- The people who help you up introduce themselves. They are named strangers, not a cutscene.
- Keys, not a phone. "maybe instead of the mobile phone introduction we have like some keys to... we're like, ah, like all I've got on me are these keys, uh, and then that like, oh look, there's like the address on the keychain, you know, like you're a bit shaken, the address on the keychain is like these doors over here"
- They let you in. "why don't we like let you in and get settled?" -- which is how the player arrives at the office rather than being placed there.
- The parting line is the mechanic. "And they can be like, alright, well, you know, give us a call if you need anything."
- And that is the contact list. "there's a little bit more lead in there where we can kind of like introduce the starting call as the baseline of these people's contacts."
The shape is: the address on the keychain explains the office, and the strangers' offer of help explains the network. Both are currently free-standing facts the game hands you.
What exists today, so nobody re-derives it
The intro is real and it is a phone. godot/scenes/cold_open_sequence.tscn plus godot/scripts/ui/cold_open_sequence.gd (851 lines; every player-facing string is in a tunables block at the top). Reached from godot/scripts/ui/config_confirmation.gd:90-93 when GameConfig.should_show_intro() is true, and it exits to res://scenes/main.tscn itself (cold_open_sequence.gd:800, :817). Show-once gate: godot/autoload/game_config.gd:705-718, INTRO_VERSION := "1".
The current beats, cold_open_sequence.gd:44-49:
"Doom is coming."
"But... when am I?\nWhat can I do? What *day* is it?"
"*checks pockets* -- a primitive phone!"
{"kind": "phone", ...}
_build_phone() (:393) runs lock -> keypad -> home. Any four digits unlock it (:660-663, the "Editor's benevolent hand"). The home screen has exactly two apps, BANK and MESSAGES (_build_home_panel(), :530).
Three things the replacement has to account for:
- There is no keys, keychain, address-or-keychain or hit-by-a-car content anywhere in the repo. A grep across the Godot tree, docs, CHANGELOG, dev-blog and the archive returns zero hits for all of them. This is greenfield copy, not a re-skin.
- The copy is pinned by a test.
godot/tests/unit/test_cold_open_intro.gd asserts a LOCKED copy string and scans the scene for "no RNG / no direct scene change" purity. Changing the beats means changing that pin in the same commit, deliberately.
- There is no contacts mechanic to hand the strangers to. The phone has no dialer and no contacts list; its only content is one static SMS from the Mysterious Helpful Stranger (
STRANGER_NAME, :67, LOCKED at :70). The only "contacts" noun in the game is conference contacts, godot/scripts/core/conference_trip.gd:369-380, which mints {"name", "met_at", "met_on_turn", "receivable": null, "first_pass": true} and is an acknowledged stub -- "receivable": null, # SEAM: becomes a Ledger counterparty entry post adoption-v1". Nothing consumes it. So "the baseline of these people's contacts" is asking for a list that does not exist yet, and conference_trip.gd is the obvious place it already half-lives.
The art for the beat is already generated. godot/assets/images/backgrounds/intro_bus_strangers_help.webp is held behind the text beats (POSTER_ART, :99) and docs/design/INTRO_AND_POSTER_ART.md says it is "literally named for the intro". Note it is a bus, not a car -- see the open question below.
Suggested cut
Smallest thing that delivers the intent, in one commit:
- Rewrite
BEATS for the car / strangers / keys sequence. Keep the beat count and the held-frame structure; this is a copy and panel change, not an architecture change.
- Replace
_build_phone and its three panels with a keychain object. The keychain shows an address; tapping it is the "let you in" transition. The BANK app moves out entirely -- see the companion issue on discovering the bank by checking it.
- Give the two or three strangers names, and seed them into a contact list on exit. If that list is new, the cheapest honest version is a
contacts array on GameState written by the intro and read by nothing yet, wired to the same shape conference_trip.gd:369 already mints, so the two sources converge rather than fork.
- Update the LOCKED copy assertion in
test_cold_open_intro.gd in the same commit.
Out of scope here: the handoff hint (HANDOFF_ACTION_ID := "scouting", :73-74) keeps working unchanged.
Open questions, flagged rather than resolved
- Car or bus? The memo says car. The generated poster is
intro_bus_strangers_help. pdoom1#1112 records Pip narrating the prior story beat and says the character "teleports back and is hit by a bus". Most likely the vehicle is a bus and "car" is him speaking loosely -- but this issue will not decide that. Ask Pip; do not pick.
- Does this sit before or after the prior story beat in
pdoom1#1112? That issue records an earlier sequence (the war, the runners, the mountain, the time machine) ending in the B1 portal stitch, which then runs into the current intro. The car/keys beat plausibly lands immediately after the portal stitch. Not stated in this memo.
- Does the phone survive somewhere else?
pdoom1#956 wants stranger messages delivered via an in-world basic PC, and pdoom1#1004 item 2 records Pip suggesting an upgrade could be adapted as "a UI upgrade, possibly in-game assets (like the mobile phone)". Deleting the phone from the intro does not have to mean deleting the asset.
Related: pdoom1#1112 (prior story beat, B1/B2 rulings), pdoom1#817 (cycle hero backgrounds per text beat), pdoom1#814 (progressive disclosure onboarding), pdoom1#1141 (a build where the cold open never fired), pdoom1#956 (in-world PC as a message channel), pdoom1#1210 (workshop the first ten turns -- this issue is one input to it).
From: coordination seat. Source: Pip voice memo
2026-08-24_084241__c2b0170e, ~1,088 words, on the opening of the game. Transcribed locally; quotes are ASR output, lightly de-stuttered, not cleaned. Where the transcription is doubtful it is flagged rather than silently resolved.Pip's framing sentence, and the whole point of the issue:
("diagesis" is ASR for diegesis -- he means the fiction should carry the mechanics instead of the UI announcing them.)
The beat he wants, in his order
The shape is: the address on the keychain explains the office, and the strangers' offer of help explains the network. Both are currently free-standing facts the game hands you.
What exists today, so nobody re-derives it
The intro is real and it is a phone.
godot/scenes/cold_open_sequence.tscnplusgodot/scripts/ui/cold_open_sequence.gd(851 lines; every player-facing string is in a tunables block at the top). Reached fromgodot/scripts/ui/config_confirmation.gd:90-93whenGameConfig.should_show_intro()is true, and it exits tores://scenes/main.tscnitself (cold_open_sequence.gd:800,:817). Show-once gate:godot/autoload/game_config.gd:705-718,INTRO_VERSION := "1".The current beats,
cold_open_sequence.gd:44-49:_build_phone()(:393) runs lock -> keypad -> home. Any four digits unlock it (:660-663, the "Editor's benevolent hand"). The home screen has exactly two apps, BANK and MESSAGES (_build_home_panel(),:530).Three things the replacement has to account for:
godot/tests/unit/test_cold_open_intro.gdasserts a LOCKED copy string and scans the scene for "no RNG / no direct scene change" purity. Changing the beats means changing that pin in the same commit, deliberately.STRANGER_NAME,:67, LOCKED at:70). The only "contacts" noun in the game is conference contacts,godot/scripts/core/conference_trip.gd:369-380, which mints{"name", "met_at", "met_on_turn", "receivable": null, "first_pass": true}and is an acknowledged stub --"receivable": null, # SEAM: becomes a Ledger counterparty entry post adoption-v1". Nothing consumes it. So "the baseline of these people's contacts" is asking for a list that does not exist yet, andconference_trip.gdis the obvious place it already half-lives.The art for the beat is already generated.
godot/assets/images/backgrounds/intro_bus_strangers_help.webpis held behind the text beats (POSTER_ART,:99) anddocs/design/INTRO_AND_POSTER_ART.mdsays it is "literally named for the intro". Note it is a bus, not a car -- see the open question below.Suggested cut
Smallest thing that delivers the intent, in one commit:
BEATSfor the car / strangers / keys sequence. Keep the beat count and the held-frame structure; this is a copy and panel change, not an architecture change._build_phoneand its three panels with a keychain object. The keychain shows an address; tapping it is the "let you in" transition. The BANK app moves out entirely -- see the companion issue on discovering the bank by checking it.contactsarray onGameStatewritten by the intro and read by nothing yet, wired to the same shapeconference_trip.gd:369already mints, so the two sources converge rather than fork.test_cold_open_intro.gdin the same commit.Out of scope here: the handoff hint (
HANDOFF_ACTION_ID := "scouting",:73-74) keeps working unchanged.Open questions, flagged rather than resolved
intro_bus_strangers_help.pdoom1#1112records Pip narrating the prior story beat and says the character "teleports back and is hit by a bus". Most likely the vehicle is a bus and "car" is him speaking loosely -- but this issue will not decide that. Ask Pip; do not pick.pdoom1#1112? That issue records an earlier sequence (the war, the runners, the mountain, the time machine) ending in the B1 portal stitch, which then runs into the current intro. The car/keys beat plausibly lands immediately after the portal stitch. Not stated in this memo.pdoom1#956wants stranger messages delivered via an in-world basic PC, andpdoom1#1004item 2 records Pip suggesting an upgrade could be adapted as "a UI upgrade, possibly in-game assets (like the mobile phone)". Deleting the phone from the intro does not have to mean deleting the asset.Related:
pdoom1#1112(prior story beat, B1/B2 rulings),pdoom1#817(cycle hero backgrounds per text beat),pdoom1#814(progressive disclosure onboarding),pdoom1#1141(a build where the cold open never fired),pdoom1#956(in-world PC as a message channel),pdoom1#1210(workshop the first ten turns -- this issue is one input to it).