Threat

The owner requested a playable trial of the Threat spawning handoff on 22 September 2026, then doubled its speed, spawn rate, caps and health. This page describes the current revised trial. The numbers are initial tuning; the stationary two-pistol target is about two to three minutes before being overwhelmed, not a death timer. Difficulty never reads the player's equipment.

Owner tuning revision — 22 September 2026

I don't love it yet. let's increase double all starting values: speed, spawn rate, max amount, and hp. for now, keep the increasing ratio as is, and we'll try again.

The current table doubles enemy movement speed, spawn attempts per second, connected-chain caps and absolute health at every Threat value. Multiplying the complete curves by two preserves their progression ratios and stage times. This progression revision retained damage, enemy mix, first-attempt grace, chest timing and static encounter tuning; the later global attack-timing revision below also applies to defined static enemies. Birth snapshots remain: existing enemies retain their saved stats; new enemies use the revised curve. Start a fresh departure to compare the revised opening consistently.

Rooms and time

  • Safe rooms: enemies cannot appear in them, enter them or hit into them.
  • Static unsafe rooms: the room defines its own combat and rewards. This remains available for authored fights and bosses.
  • Dynamic unsafe rooms: one shared Threat counter determines enemy settings. Room identity, location and distance from the Dock add no difficulty modifier.

Threat gains one second for each running second the living astronaut spends in a dynamic unsafe room. It carries across rooms and disconnected chains. Safe/static rooms pause it; ordinary oxygen and world time continue there. Pausing the game or suspending the application adds no Threat. Saving/loading adds no time. Returning or dying retains the final value; only starting a new departure resets it.

The Western Promenade, Waiting Area and Cafeteria use dynamic unsafe combat. Their former finite fights and clear rewards no longer run on new departures. An already-active save from before Threat finishes that departure with the old encounters, then switches on the next departure. Existing property is preserved.

Enemy progression

Threat seconds Spawn attempts per second, start → end Living enemies per connected chain Weak / Tough / Flanker Damage multiplier Speed multiplier
0–60 1 → 2.5 30 100% / 0% / 0% 1.00 2.00
60–120 2.5 → 3.5 40 85% / 15% / 0% 1.00 2.00
120–240 3.5 → 5 60 70% / 20% / 10% 1.00 2.00
240–360 5 → 6.5 80 60% / 25% / 15% 1.15 2.10
360–540 6.5 → 8 100 50% / 30% / 20% 1.30 2.20
540 onward 8 120 45% / 30% / 25% 1.50 2.30

Spawn rate rises linearly within each interval. The other columns change at the start of each interval. Each successful spawn rolls its type independently; these are chances for new enemies, not quotas for survivors.

Health uses absolute values, interpolated linearly between these anchors. Fractional health is kept. Do not multiply by the old enemy health. After 540 seconds it stays at the last anchor.

Threat seconds Weak health Tough health Flanker health
0 2 12 4
60 12 32 8
120 32 72 18
180 48 100 28
240 60 128 36
360 80 172 48
540 onward 110 232 66

Underlying Weak and Tough cards have 1 m/s and 5% of full astronaut health per strike; the Flanker card has 2.4 m/s and 8% per strike. The revised Threat speed multiplier starts at 2, giving Weak/Tough 2 m/s and Flankers 4.8 m/s. Damage is unchanged. Attack reach and body sizes remain. The later enemy attack-timing revision shortens all defined windups to one tenth and sets every recovery to one second. Weak/Tough melee windup is 0.10 seconds and Flanker melee windup is 0.06 seconds. Ordinary melee retains its normal body colour during both phases; special-attack telegraphs remain available. Each body keeps the health, speed and damage it had at birth; a new stage never heals or changes an existing body. No extra enemy abilities or combat-upgrade rewards are added.

Connected crowds

Open, traversable doorways connect dynamic rooms into a chain. Locked doors, safe rooms, static rooms and unbuilt destinations do not bridge it. Unvisited and off-camera rooms count. The cap counts all living dynamic enemies in the chain, including those with lethal shots still on the way. Corpses do not count. Joining two chains keeps every survivor; if the combined crowd exceeds the cap, spawning waits until it falls below it. Opening a door grants no refill, clock reset or new grace period.

Only the astronaut's current chain receives new enemies. Survivors elsewhere keep their positions, injuries and normal world-time behavior. Dynamic and static enemies stay on their own side of the boundary. The astronaut can still shoot outward from safety.

The first attempt is at three Threat seconds, once per departure. Later attempts follow the accumulated spawn rate, preserving partial progress across room changes, pauses and saves. A capped or failed attempt is spent; it never builds a catch-up burst.

New enemies need clear reachable floor in the active chain, at least eight metres from the astronaut. Placement uses the largest current enemy footprint before rolling its type, so tight geometry does not selectively reject Flankers. Prefer floor outside the camera near its nearest legal edge, within a six-metre distance band. If no unseen place works, use the farthest legal place. Keep the eight-metre minimum even when placement fails. New bodies are alerted and must walk to the player; no teleporting replacements.

Chests

Every 30 Threat seconds earns one chest event: 30, 60, 90, 120 and onward. Events are global to the departure. Changing rooms, killing enemies or loading cannot repeat one. All three current dynamic rooms can receive them, including the Cafeteria.

Each event reserves one remaining card from the shared chest deck, without choosing it yet. Pending and unopened chests hold reservations. If no unreserved card remains, that event creates nothing and is not banked for later. There is no separate twelve-chest limit: today's twelve-card deck happens to commit all its rewards by six minutes. Future deck expansion is separate work.

A chest appears on clear reachable floor in the current dynamic room, two to five metres walking distance away, with its full footprint clear of actors and furniture and at least one metre clear of doorway openings. Prefer the closest legal place to two metres. It never pushes anyone aside or needs a cleared fight. A brief notice and the chest's existing light mark its appearance.

Placement preserves previously reachable open exits and a reachable approach to the new chest. This is an implementation safeguard discovered during the first trial: repeated near-player rewards must not form a sealed ring around a stationary astronaut. The solid collider is present immediately, before the next movement step.

If placement is blocked, keep the earned event and reservation. Retry the oldest pending reward each additional Threat second and upon entering a dynamic room. Pending rewards follow the astronaut until placed. Placed chests stay where they appeared.

Rarity is rolled once when the threshold is crossed: 90% ordinary, 9% rare, 1% extra rare. These come from a 10% rare-or-better chance and a 10% extra-rare chance within that group. The effective probabilities and result are saved, so movement, loading, opening and future gear changes cannot reroll an earned chest. Future gear modifiers have a place to supply these probabilities; no modifier formula or rarity effect has been added. All grades currently draw one item from the same deck with its normal rules.

E opens the chest and draws the next shuffled card, consuming its reservation exactly once. Opening order determines the items. A full pack leaves the same drawn item in the chest. Reopening never redraws. Reserved chests can still open after all remaining cards are reserved. Static chests remain independent; other dynamic chest sources also respect reservations.

At the next departure, unplaced and unopened rewards expire, the counter and event ledger restart, and the configured deck is reshuffled. Drawn items left in opened containers remain accessible at their saved locations and never consume the new deck. Ordinary static-chest property rules remain.

Validation

The shortened attack timing and removed melee colour changes passed 298 Core and 82 Unity tests, including focused checks of the full attack/recovery cycle and visual states. The progression-only combat measurements below predate this attack revision and are not measurements of its balance. Owner playtesting of the new attack timing remains pending.

The doubled tuning passes all 367 tests (288 Core +79 Unity). Repeating the same actual-furniture stationary two-pistol check with enemy seed404/chest seed505 gave defeats at 1:31.68 in the Promenade,1:26.63 in the Waiting Area and1:27.07 in the Cafeteria. These are single-seed diagnostics, not averages or moving-player balance. The owner's exact doubling is retained for the next playtest. Existing enemies keep their saved birth stats; new departures provide a consistent fresh trial.

The following combat measurements describe the previous, undoubled version and must not be treated as current balance results.

The implementation passed 367 tests: 288 Core and 79 Unity, covering progression, chain caps, clock boundaries, randomness, deck reservations, pending rewards, static support, saves/migration, furniture routes and actual chest/controller interaction. A live reload exposed an existing host issue returning the player to the Dock despite a saved position; this is corrected, with a regression test and live reload verification in the Waiting Area.

Live checks confirmed an earned chest appears with the ordinary E prompt, draws one full Oxygen Tank into the pack, and retains its opened state and consumed card through reload. Ten seconds in a safe room left Threat unchanged; one second back in a dynamic room added one second. Returning kept the final Threat; the next departure reset it to zero and restored twelve deck cards. Owner save files were protected during testing and restored byte-for-byte afterward. New departures use Threat; an active pre-Threat save can be completed normally before starting the new system.

Three isolated combat checks used actual room furniture, one fixed seed per room, a stationary astronaut with two Service Guns, fixed camera framing and 1/60-second steps. Defeat occurred at 4:04 in the Western Promenade, 3:43 in the Waiting Area and 2:59 in the Cafeteria. These are individual diagnostic runs, not averages or a proven balance result. They use identical Threat settings; room geometry and crowd movement still affect the outcome. The two-to-three-minute target is therefore not confirmed across the rooms. Those earlier checks kept the handoff's tuning unchanged; the owner subsequently doubled the four values above. Moving-player, broader-seed and later-departure balance require play feedback.

An initial unbounded diagnostic stalled the editor; no balance conclusion came from it. Bounded replacement checks exposed and corrected chest enclosure and repeated path-search work. The three successful runs had worst individual simulation steps of roughly43–50ms on this machine; this does not establish rendered frame-rate performance.

Spawn placement uses numerical floor sampling and a small boundary refinement; chest placement uses sampled radial candidates. These enforce distance, clearance and reachable-path rules but are numerical approximations to the ideal nearest/farthest continuous positions. No illegal closer spawn or overlapping placement is used as a fallback.

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9