The Act Break
Once per campaign, between Night 4’s outcome and Night 5’s dawn, the player sees a five-line scripted beat that recontextualizes the campaign. The marker on screen reads NIGHT 4½.
The script
Section titled “The script”NIGHT 4½
A pause.[tap]You set the cards down. He sets the cards down.[tap]For the first time tonight, neither of you moves.[tap]The lamp dims slowly, of its own accord. He looks at it. He looks at you.[tap]"I told myself I would not say this, {name}. But you have come further than most. The next three nights will not feel like the first four. I am sorry for that, in advance."[tap → Night 5 dawn]{name} substitutes the sanitized player name. If the name is empty
or unspeakable, the substitution falls back to “you” — but the prompt
on the start screen is good enough that this fallback rarely fires
in practice.
How it gates
Section titled “How it gates”The Act Break is one-shot per campaign. State is persisted in
CampaignState.seenActBreak (default false). The controller
checks nightIndex == 5 && !seenActBreak after every Night 4
transition (cleared / strain / last-call) and surfaces
CampaignPhase.actBreak instead of CampaignPhase.dawnTransition.
After the player taps through, acknowledgeActBreak() sets
seenActBreak = true and falls through to the standard dawn
transition for Night 5.
What it doesn’t do
Section titled “What it doesn’t do”- It does not fire if the player Bergman-folds before Night 5.
- It does not retroactively fire if the campaign-state save was
migrated and
seenActBreakis false going into Night 6 — the gate isnightIndex == 5only. - It does not fire on a final-night last call (the campaign closes
with
last_call_finalimmediately).
In-fiction position
Section titled “In-fiction position”Inscryption’s framing is the precedent — the moment the game’s texture briefly drops and the player sees a different angle on what they’re doing. Pale Jack’s version is gentler: no fourth-wall break, no system shift. Just the dealer dropping the warmth for a single breath, telling you the second half will be harder, and stepping back into character.
Why “4½”
Section titled “Why “4½””The beat is structurally between Night 4 and Night 5 — not part of either night’s gameplay loop. The half-number marker is the smallest typographic signal that “this is not a normal night-transition.” No room target, no hands played, no chips earned. Just the beat.
Where this lives
Section titled “Where this lives”lib/data/campaign_state.dart:seenActBreak— the persisted flag.lib/sim/campaign_controller.dart:acknowledgeActBreak()— the transition.lib/ui/act_break_screen.dart— the screen + 5-line script.test/sim/campaign_act_break_test.dart— 8 controller tests.test/ui/act_break_screen_test.dart— 8 widget tests.