2026-05-07 14:25:46 +00:00
|
|
|
{
|
2026-05-11 08:38:19 +00:00
|
|
|
"version": "1.2.0",
|
2026-05-07 14:25:46 +00:00
|
|
|
"encounters": [
|
|
|
|
|
{
|
|
|
|
|
"key": "generator_repair",
|
|
|
|
|
"baseProbability": 0.55,
|
|
|
|
|
"tags": ["generator", "objectives"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"It catches. I step back before I let myself feel anything.",
|
|
|
|
|
"Sparks, then hum. I keep moving.",
|
|
|
|
|
"The last wire clicks. One down.",
|
|
|
|
|
"It's running. I don't stop to celebrate.",
|
|
|
|
|
"My hands stop shaking when the engine turns over.",
|
|
|
|
|
"{{ally}} holds the wire steady. It catches.",
|
|
|
|
|
"The gauge climbs. I'm already looking for the next one.",
|
|
|
|
|
"Takes too long. But it works.",
|
|
|
|
|
"Done. The light helps more than I expected.",
|
|
|
|
|
"{{ally}} calls out. I make the connection. Done."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Something moves in the fog. I pull back.",
|
|
|
|
|
"A sound behind me. I leave the gen and run.",
|
|
|
|
|
"Too loud. I made it too loud.",
|
|
|
|
|
"The wiring's wrong. I can't fix it from here.",
|
|
|
|
|
"I miscalculate. The whole thing sparks wrong.",
|
|
|
|
|
"{{ally}} had to break away. I lose the progress.",
|
|
|
|
|
"My hand slips. The noise is too much.",
|
|
|
|
|
"A shadow on the gen. I'm already gone.",
|
|
|
|
|
"Not tonight. Not this one.",
|
|
|
|
|
"{{ally}} pulls back — something's close. I follow."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "totem_cleanse",
|
|
|
|
|
"baseProbability": 0.50,
|
|
|
|
|
"tags": ["totem", "altruistic", "objectives"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"It breaks. Something screams — not here, but somewhere.",
|
|
|
|
|
"The bones scatter. I feel the curse lift.",
|
|
|
|
|
"One hex gone. The fog feels slightly less wrong.",
|
|
|
|
|
"It comes apart like it was never solid.",
|
|
|
|
|
"I don't understand what I just broke. I'm glad I broke it.",
|
|
|
|
|
"{{ally}} spots it first. I make short work of it.",
|
|
|
|
|
"The skull gives. Whatever watched through it is gone.",
|
|
|
|
|
"{{ally}} watches my back. The cleanse is fast.",
|
|
|
|
|
"It was waiting to fall. I let it.",
|
|
|
|
|
"One less curse."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"It pulls back. I can't finish this.",
|
|
|
|
|
"Something drives me away before it's done.",
|
|
|
|
|
"The hex holds. The air gets thicker.",
|
|
|
|
|
"I reach for it and stop. Something warns me off.",
|
|
|
|
|
"The totem hums. I'm not strong enough. Not yet.",
|
|
|
|
|
"{{ally}} calls wrong. The totem burns brighter.",
|
|
|
|
|
"The bones won't break. Wrong approach.",
|
|
|
|
|
"{{ally}} needs me. I leave the totem standing.",
|
|
|
|
|
"Halfway through. Then something changes. I run.",
|
|
|
|
|
"The hex endures. I'll find another way."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "chest_search",
|
|
|
|
|
"baseProbability": 0.45,
|
|
|
|
|
"tags": ["chest", "item"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"A medkit. Worn, but real.",
|
|
|
|
|
"A flashlight, still charged. I pocket it.",
|
|
|
|
|
"Something useful. I don't ask how it got here.",
|
|
|
|
|
"Not empty. That's not nothing.",
|
|
|
|
|
"A toolbox, buried under rot. I'll take it.",
|
|
|
|
|
"Half a medkit. Better than nothing.",
|
|
|
|
|
"The chest creaks open. I take what's there.",
|
|
|
|
|
"Lucky.",
|
|
|
|
|
"The fog gives sometimes. Not often.",
|
|
|
|
|
"Supplies. They won't last, but they'll help."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Empty. Just rust and old regret.",
|
|
|
|
|
"Nothing worth taking.",
|
|
|
|
|
"A sound cuts the search short.",
|
|
|
|
|
"Someone else was here first.",
|
|
|
|
|
"Locked. I don't have time to force it.",
|
|
|
|
|
"Debris. Nothing more.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Whatever was here is long gone.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"Nothing. Time I don't have, wasted.",
|
|
|
|
|
"The trial takes without giving.",
|
|
|
|
|
"Move on."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "hook_escape",
|
|
|
|
|
"baseProbability": 0.40,
|
|
|
|
|
"tags": ["hook", "survival"],
|
|
|
|
|
"tier": 2,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"I don't know how. I don't care. I'm off.",
|
|
|
|
|
"Arms burning. The hook releases. Move.",
|
|
|
|
|
"Every instinct says give up. I don't.",
|
|
|
|
|
"It gives. I fall. I run.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Blood and effort. The barb comes free.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"{{ally}}'s voice from out there somewhere. I fight harder. I'm free.",
|
|
|
|
|
"Will wins. I'm off the hook.",
|
|
|
|
|
"A fraction of movement — and it releases.",
|
|
|
|
|
"I stop thinking and just push. It works.",
|
|
|
|
|
"{{ally}} is coming. I hold on long enough. Then I'm free."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The struggle costs everything. The hook doesn't move.",
|
|
|
|
|
"Every movement makes it worse. I go still.",
|
|
|
|
|
"The fog presses in. I'm still up here.",
|
|
|
|
|
"I try. The chains don't.",
|
|
|
|
|
"No leverage. Not this time.",
|
|
|
|
|
"{{ally}} can't get to me. Still stuck.",
|
|
|
|
|
"It's designed for exactly this. It holds.",
|
|
|
|
|
"Panic and pain in equal measure. Neither helps.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The barb shifts but doesn't release.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"I lose this one."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "exit_gate",
|
|
|
|
|
"baseProbability": 0.50,
|
|
|
|
|
"tags": ["exit", "objectives"],
|
|
|
|
|
"tier": 2,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The gate grinds open. Cold air. Real air.",
|
|
|
|
|
"The lock gives. I keep pressure on the switch.",
|
|
|
|
|
"Light from outside cuts through the fog.",
|
|
|
|
|
"The gate obeys. I don't let go until it does.",
|
|
|
|
|
"A long second. Then the mechanism gives.",
|
|
|
|
|
"The panel responds. I'm almost out.",
|
|
|
|
|
"It opens. It actually opens.",
|
|
|
|
|
"Through the iron, I can see outside.",
|
|
|
|
|
"The switch trips. The gate moves. I move.",
|
|
|
|
|
"One more thing behind me."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The gate mechanism jams. I burn seconds I don't have.",
|
|
|
|
|
"A shadow at the panel. I abandon it.",
|
|
|
|
|
"The switch won't budge.",
|
|
|
|
|
"The gate refuses. Not now.",
|
|
|
|
|
"The panel sparks and resets. I try again.",
|
|
|
|
|
"Something holds it. Nothing mechanical.",
|
|
|
|
|
"The gate resists. I can't tell why.",
|
|
|
|
|
"The lock fails. The gate stays shut.",
|
|
|
|
|
"Too slow. The gate doesn't care.",
|
|
|
|
|
"Nothing. Wrong timing."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "patrol_avoid",
|
|
|
|
|
"baseProbability": 0.60,
|
|
|
|
|
"tags": ["stealth", "survival"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"I don't breathe. I don't think. It passes.",
|
|
|
|
|
"A long silence — then the footsteps recede.",
|
|
|
|
|
"I melt into the fog. Unseen.",
|
|
|
|
|
"Predictable. Predictable is avoidable.",
|
|
|
|
|
"Close. Too close. But not enough.",
|
|
|
|
|
"{{ally}} draws the patrol the other way. I slip through.",
|
|
|
|
|
"A gap in the route. I take it.",
|
|
|
|
|
"The killer looks elsewhere. I don't waste it.",
|
|
|
|
|
"Footsteps near. Then far. Then gone.",
|
|
|
|
|
"The locker is cold and tight and it works."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"A wrong step. Eye contact. The chase starts.",
|
|
|
|
|
"I misjudge the angle. Spotted.",
|
|
|
|
|
"My heartbeat is too loud. The presence is too close.",
|
|
|
|
|
"The route changed. I didn't know.",
|
|
|
|
|
"No cover. Nowhere to go.",
|
|
|
|
|
"{{ally}} breaks stealth nearby. We're both compromised.",
|
|
|
|
|
"Every instinct says run. That instinct is wrong. I run anyway.",
|
|
|
|
|
"The fog doesn't protect me here.",
|
|
|
|
|
"Spotted. Everything changes.",
|
|
|
|
|
"{{ally}}'s noise pulls the killer my way."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "medkit_use",
|
|
|
|
|
"baseProbability": 0.65,
|
|
|
|
|
"tags": ["healing", "altruistic", "survival"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The bandages hold. The pain pulls back.",
|
|
|
|
|
"The medkit does what it's supposed to.",
|
|
|
|
|
"Not ideal. But the wound closes.",
|
|
|
|
|
"Not fixed. Functional. That's enough.",
|
|
|
|
|
"The bleeding stops. I breathe.",
|
|
|
|
|
"{{ally}}'s hands are steadier than mine. It works.",
|
|
|
|
|
"I use the supplies right. The wound yields.",
|
|
|
|
|
"{{ally}} moves fast. The treatment holds.",
|
|
|
|
|
"One less liability.",
|
|
|
|
|
"Better than nothing. Better than before."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The supplies run out before the job is done.",
|
|
|
|
|
"My hands shake too much. Time runs out.",
|
|
|
|
|
"Worse than I thought. Supplies fall short.",
|
|
|
|
|
"The medkit can't do this.",
|
|
|
|
|
"Half-healed is still injured.",
|
|
|
|
|
"{{ally}} isn't here. I can't manage it alone.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Not enough supplies. Not enough time.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"A sound. I have to stop.",
|
|
|
|
|
"The wound doesn't cooperate.",
|
|
|
|
|
"The medkit fails me. I move anyway."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "pallet_drop",
|
|
|
|
|
"baseProbability": 0.55,
|
|
|
|
|
"tags": ["survival", "escape"],
|
|
|
|
|
"tier": 2,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"It crashes down between us. A moment bought.",
|
|
|
|
|
"Wood and impact. I gain distance.",
|
|
|
|
|
"The drop lands right. The chase falters.",
|
|
|
|
|
"Timed right. The pallet works.",
|
|
|
|
|
"They stagger. I use every second.",
|
|
|
|
|
"The drop lands at the right instant.",
|
|
|
|
|
"A barrier placed. The chase interrupted.",
|
|
|
|
|
"It holds. That's all it needs to do.",
|
|
|
|
|
"A roar behind the pallet. I'm already running.",
|
|
|
|
|
"The gap widens. Use it."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The pallet drops wide. No gap.",
|
|
|
|
|
"Too slow. It means nothing.",
|
|
|
|
|
"I miscalculate. The chase continues.",
|
|
|
|
|
"Too early. Wasted.",
|
|
|
|
|
"They vault before the wood lands.",
|
|
|
|
|
"Wrong angle. Wrong moment.",
|
|
|
|
|
"The swing comes first.",
|
|
|
|
|
"Not enough distance. Never was.",
|
|
|
|
|
"I panic. The pallet follows.",
|
|
|
|
|
"Wasted. The chase doesn't stop."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "basement_search",
|
|
|
|
|
"baseProbability": 0.35,
|
|
|
|
|
"tags": ["chest", "item", "high-risk"],
|
|
|
|
|
"tier": 3,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Down there and back. Worth it.",
|
|
|
|
|
"A pristine toolbox. Almost worth dying for.",
|
|
|
|
|
"The gamble paid. I have what I need.",
|
|
|
|
|
"A full medkit in the basement. I don't question it.",
|
|
|
|
|
"The best supplies in the trial. Found.",
|
|
|
|
|
"I run the numbers. The risk pays out.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The stairs back up feel like a victory.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"The basement gives up something good.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"A rare find. The fog occasionally provides.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"I go against every instinct. It works."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The basement was a trap. I pay for it.",
|
|
|
|
|
"The stairs offer nothing. Getting back costs more.",
|
|
|
|
|
"The risk wasn't worth it. Nothing down here.",
|
|
|
|
|
"Empty. And now I'm out of time.",
|
|
|
|
|
"Going down is easy. Coming back is the problem.",
|
|
|
|
|
"They know about the basement.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Nothing down here but dread.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"I find nothing. The stairs back feel endless.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"An empty chest in a dangerous room.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"The basement takes more than it gives."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "hatch_find",
|
|
|
|
|
"baseProbability": 0.30,
|
|
|
|
|
"tags": ["exit", "survival", "high-risk"],
|
|
|
|
|
"tier": 3,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The hatch opens. One last way out.",
|
|
|
|
|
"That sound — I know that sound. I run toward it.",
|
|
|
|
|
"Against everything. The escape route is there.",
|
|
|
|
|
"It was here all along. Waiting.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The fog breaks once. That's enough.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"I find it before they do.",
|
|
|
|
|
"One door left. It opens.",
|
|
|
|
|
"The hatch glows. I don't wait.",
|
|
|
|
|
"I hear it. I go.",
|
|
|
|
|
"Found. This ends here."
|
2026-05-07 14:25:46 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Nothing. Only fog.",
|
2026-05-07 14:25:46 +00:00
|
|
|
"Close — so close. Then it closes.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"That sound was something else.",
|
|
|
|
|
"It stays hidden.",
|
|
|
|
|
"Searching burns time I don't have.",
|
|
|
|
|
"They find the hatch first.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The fog gives nothing freely.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"The sound led nowhere.",
|
|
|
|
|
"No hatch. No escape this way.",
|
|
|
|
|
"The trial isn't finished with me yet."
|
2026-05-07 15:42:52 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "window_vault",
|
|
|
|
|
"baseProbability": 0.60,
|
|
|
|
|
"tags": ["escape", "survival"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Clean vault. The frame holds.",
|
|
|
|
|
"Through and clear. Momentum kept.",
|
|
|
|
|
"Tight, but usable.",
|
|
|
|
|
"I make it through before they close the gap.",
|
|
|
|
|
"The vault buys distance. I use it.",
|
|
|
|
|
"Practiced. The window yields.",
|
|
|
|
|
"I land clean on the other side.",
|
|
|
|
|
"The window is a door when I need it.",
|
|
|
|
|
"Fast enough. The gap opens.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Through. The chase resets."
|
|
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Boarded. No exit here.",
|
|
|
|
|
"Too slow. I'm caught mid-vault.",
|
|
|
|
|
"The frame splinters wrong.",
|
|
|
|
|
"I misjudge the height. I pay for it.",
|
|
|
|
|
"The window doesn't solve the problem.",
|
|
|
|
|
"Too narrow.",
|
|
|
|
|
"The worst possible moment for this to fail.",
|
|
|
|
|
"The opening was an illusion.",
|
|
|
|
|
"Bad angle. Bad outcome.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The window doesn't help tonight."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "locker_hide",
|
|
|
|
|
"baseProbability": 0.65,
|
|
|
|
|
"tags": ["stealth", "survival"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The door closes. Footsteps pass. Breathe.",
|
|
|
|
|
"Rust and darkness. It works.",
|
|
|
|
|
"They walk past without a glance.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Still. Quiet. Safe.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"Cold metal. Silence. It holds.",
|
|
|
|
|
"{{ally}} draws them off. The locker stays shut.",
|
|
|
|
|
"I hold my breath. The footsteps don't stop here.",
|
|
|
|
|
"One long minute. Then nothing. Clear.",
|
|
|
|
|
"The hiding spot works. They move on.",
|
|
|
|
|
"They don't check it. I don't breathe until they're gone."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The door rattles. I'm found.",
|
|
|
|
|
"It yanks open. No hiding here.",
|
|
|
|
|
"Already checked. Bad call.",
|
|
|
|
|
"My breathing gives me away.",
|
|
|
|
|
"They know these lockers too well.",
|
|
|
|
|
"{{ally}} makes noise nearby. They look harder. They find me.",
|
|
|
|
|
"The wrong spot. I know it as soon as I'm inside.",
|
|
|
|
|
"Their instinct is right tonight.",
|
|
|
|
|
"Spotted going in. No time.",
|
|
|
|
|
"Pulled out."
|
2026-05-07 15:42:52 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "trap_disarm",
|
|
|
|
|
"baseProbability": 0.50,
|
|
|
|
|
"tags": ["objectives", "altruistic"],
|
|
|
|
|
"tier": 2,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"It clicks safe. One less hazard.",
|
|
|
|
|
"Patience. The mechanism yields.",
|
|
|
|
|
"The snap of metal — controlled this time.",
|
|
|
|
|
"Clean disarm. No mistakes.",
|
|
|
|
|
"It comes apart safely. I exhale.",
|
|
|
|
|
"One moment of focus. The trap is inert.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The floor is safer now.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"Elegant mechanism. Now it's nothing.",
|
|
|
|
|
"One trap down. Keep moving.",
|
|
|
|
|
"Disarmed. Path clear."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"It snaps. A brutal reminder of what this place is.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"One wrong move. The trap wins.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"Subtler than I expected.",
|
|
|
|
|
"My attempt triggers it.",
|
|
|
|
|
"Too slow. The trap bites.",
|
|
|
|
|
"Whoever set this knew what they were doing.",
|
|
|
|
|
"I miscalculate. The mechanism fires.",
|
|
|
|
|
"It catches me.",
|
|
|
|
|
"I fail. Pain follows.",
|
|
|
|
|
"It wasn't meant to be easy."
|
2026-05-07 15:42:52 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "survivor_rescue",
|
|
|
|
|
"baseProbability": 0.45,
|
|
|
|
|
"tags": ["altruistic", "hook"],
|
|
|
|
|
"tier": 2,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"{{ally}} gets there first. Both of us run.",
|
|
|
|
|
"Clean unhook. Nobody watching.",
|
|
|
|
|
"I get them down. The trial continues.",
|
|
|
|
|
"Fast hands, right timing.",
|
|
|
|
|
"They're off the hook. We move.",
|
|
|
|
|
"{{ally}} pulls them free before the killer returns.",
|
|
|
|
|
"The rescue works. Don't stop moving.",
|
|
|
|
|
"The window was there. I took it.",
|
|
|
|
|
"{{ally}} gets them clear. Two of us running again.",
|
|
|
|
|
"Free. Both running now."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"{{ally}} pulls back. The killer turns too soon.",
|
|
|
|
|
"The rescue fails. Both of us in danger.",
|
|
|
|
|
"Wrong timing.",
|
|
|
|
|
"{{ally}} reaches for the hook — the killer is already watching.",
|
|
|
|
|
"No safe window. I leave.",
|
|
|
|
|
"The hook holds.",
|
|
|
|
|
"{{ally}}'s approach is spotted.",
|
|
|
|
|
"They're hooked again. Worse now.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The rescue was a trap.",
|
|
|
|
|
"The killer was closer than it looked."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "ruin_destroy",
|
|
|
|
|
"baseProbability": 0.45,
|
|
|
|
|
"tags": ["totem", "objectives", "altruistic"],
|
|
|
|
|
"tier": 2,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"It falls. Generator speed comes back.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The hex breaks. The pressure lifts.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"Ruin is gone. Finally.",
|
|
|
|
|
"{{ally}} calls out the location. I put it down.",
|
|
|
|
|
"One less advantage for the fog.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The corrupting influence ends here.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"Ruin undone. That mattered.",
|
|
|
|
|
"{{ally}} watches while I cleanse. The hex shatters.",
|
|
|
|
|
"Ruin falls. The whole trial shifts.",
|
|
|
|
|
"One of the fog's edges, removed."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Ruin holds. The generators push back at every touch.",
|
|
|
|
|
"It's guarded.",
|
|
|
|
|
"Ruin endures. Progress is slower than it should be.",
|
|
|
|
|
"The hex is stronger than I am right now.",
|
|
|
|
|
"I fail. Ruin stays.",
|
|
|
|
|
"{{ally}} couldn't hold them back. Ruin stands.",
|
|
|
|
|
"The path to it is cut off.",
|
|
|
|
|
"Ruin sees everything. I can't get close.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The hex survives the attempt.",
|
|
|
|
|
"Ruin stands. The generators punish every mistake."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "noise_check",
|
|
|
|
|
"baseProbability": 0.70,
|
|
|
|
|
"tags": ["stealth", "survival", "objectives"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"All clear. Back to work.",
|
|
|
|
|
"Nothing here. I was right to check.",
|
|
|
|
|
"Quiet. Safe to continue.",
|
|
|
|
|
"Seconds spent checking. Worth it.",
|
|
|
|
|
"Nothing threatening nearby.",
|
|
|
|
|
"{{ally}} signals clear. I continue.",
|
|
|
|
|
"Slow sweep. Nothing. Move.",
|
|
|
|
|
"My instincts were right. Safe.",
|
|
|
|
|
"The noise was nothing.",
|
|
|
|
|
"Empty. Continue."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The check confirms what I feared.",
|
|
|
|
|
"Not clear. Move now.",
|
|
|
|
|
"Not empty.",
|
|
|
|
|
"That sound was not nothing.",
|
|
|
|
|
"{{ally}}'s signal cuts out. Something is here.",
|
|
|
|
|
"Confirmed. Worse than I thought.",
|
|
|
|
|
"Get out.",
|
|
|
|
|
"I'm being watched.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The noise was a warning.",
|
|
|
|
|
"Something is here."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "map_find",
|
|
|
|
|
"baseProbability": 0.40,
|
|
|
|
|
"tags": ["item", "objectives"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"A map of the grounds. The generators are marked.",
|
|
|
|
|
"Routes, exits — all of it on one piece of paper.",
|
|
|
|
|
"The map helps. Decisions get clearer.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"A schematic of the realm. Useful.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"The map tells me things I couldn't know otherwise.",
|
|
|
|
|
"A rare find. I know where I'm going now.",
|
|
|
|
|
"Totem locations, hooks — the map knows.",
|
|
|
|
|
"Accurate. I didn't expect that.",
|
|
|
|
|
"A clearer picture.",
|
|
|
|
|
"Old, but correct. I'll take it."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"Nothing useful.",
|
|
|
|
|
"No map. If there was one, it's gone.",
|
|
|
|
|
"The search gives me nothing.",
|
|
|
|
|
"Fog and no information.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The grounds give nothing away.",
|
|
|
|
|
"The trial keeps its layout to itself.",
|
|
|
|
|
"No orientation gained.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"Still blind.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The realm offers no guide tonight.",
|
|
|
|
|
"No map. Trust instinct."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "scratch_marks",
|
|
|
|
|
"baseProbability": 0.55,
|
|
|
|
|
"tags": ["stealth", "altruistic"],
|
|
|
|
|
"tier": 1,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"I read the trail right. Found.",
|
|
|
|
|
"{{ally}}'s marks, followed. They're close.",
|
|
|
|
|
"The fog leaves clues if you know how to look.",
|
|
|
|
|
"{{ally}} was just here. The trail is fresh.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The marks lead somewhere useful.",
|
|
|
|
|
"Reading the ground pays off.",
|
|
|
|
|
"The scratch marks don't lie.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"I follow {{ally}}'s path. It ends well.",
|
|
|
|
|
"Legible. I find what I was looking for.",
|
|
|
|
|
"The trail ends somewhere worth being."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
|
|
|
|
"The trail goes cold.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"{{ally}}'s marks lead nowhere useful.",
|
|
|
|
|
"I read it wrong. Wrong direction.",
|
|
|
|
|
"The trail circles. I lose time.",
|
|
|
|
|
"The fog misleads. The signs are wrong.",
|
|
|
|
|
"Too old. {{ally}}'s trail is gone.",
|
|
|
|
|
"The marks weren't recent.",
|
|
|
|
|
"The trail leads somewhere I don't want to be.",
|
|
|
|
|
"I can't make sense of them.",
|
|
|
|
|
"No resolution."
|
2026-05-07 15:42:52 +00:00
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "bone_chill",
|
|
|
|
|
"baseProbability": 0.35,
|
|
|
|
|
"tags": ["high-risk", "survival"],
|
|
|
|
|
"tier": 3,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The presence passes over me. Not chosen. Not tonight.",
|
|
|
|
|
"Whatever stalks the fog — it moves on.",
|
|
|
|
|
"The terror recedes. I'm still here.",
|
|
|
|
|
"It considers. Then looks elsewhere.",
|
|
|
|
|
"I'm overlooked. I don't question it.",
|
|
|
|
|
"The cold lifts. It chose someone else.",
|
|
|
|
|
"The fog's attention slides away.",
|
|
|
|
|
"Stillness. It's gone.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Not taken. Not yet.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"The chill passes. I continue."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The fog thickens around me. Something is coming.",
|
|
|
|
|
"It locks on. There's no running from this.",
|
|
|
|
|
"The attention doesn't move.",
|
|
|
|
|
"Noticed. Everything changes.",
|
|
|
|
|
"The chill deepens. It's here.",
|
|
|
|
|
"Nothing escapes something this deliberate.",
|
|
|
|
|
"The fog moves with intent.",
|
|
|
|
|
"Something sees me. Something that doesn't forget.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The presence descends.",
|
|
|
|
|
"Chosen. The hardest part begins."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"key": "killer_instinct",
|
|
|
|
|
"baseProbability": 0.30,
|
|
|
|
|
"tags": ["high-risk", "stealth"],
|
|
|
|
|
"tier": 3,
|
|
|
|
|
"flavorSuccess": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"The instinct misfires. I'm not found.",
|
|
|
|
|
"They look in the wrong place.",
|
|
|
|
|
"The prediction fails. I'm safe.",
|
|
|
|
|
"They check elsewhere.",
|
|
|
|
|
"Wrong corner. I breathe.",
|
|
|
|
|
"They're certain. They're wrong.",
|
|
|
|
|
"The read was off. I move.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"Not there. Not tonight.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"The instinct fails them.",
|
|
|
|
|
"Their focus breaks. I use it."
|
2026-05-07 15:42:52 +00:00
|
|
|
],
|
|
|
|
|
"flavorFailure": [
|
2026-05-11 08:38:19 +00:00
|
|
|
"They know exactly where I am.",
|
|
|
|
|
"Instinct and experience. I'm found.",
|
|
|
|
|
"There's no hiding from something this certain.",
|
|
|
|
|
"The read was right.",
|
|
|
|
|
"My position is given away before the search starts.",
|
|
|
|
|
"Exactly where expected.",
|
|
|
|
|
"Their certainty was earned.",
|
|
|
|
|
"Found before the search begins.",
|
2026-05-07 15:42:52 +00:00
|
|
|
"The instinct is right.",
|
2026-05-11 08:38:19 +00:00
|
|
|
"They walk directly to me."
|
2026-05-07 14:25:46 +00:00
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|