/% Safehouse free action — breed Evelyn. Produces 1 Worker drone. Once per day, no day cost. %/
<<if $flags.evelynBredDay is $gamestate.day and $gamestate.day gt 0>>
<center>''EVELYN''</center>
<<scene "missions/neighbour/drones-born.webp">>
----
<<name "evelyn">> is slumped at the kitchen table, one hand resting on her stomach, a satisfied ache still written across her face.
<<speech "evelyn">><<say "evelyn" "Already? $names.player, I //just// recovered from this morning.">> A tired smile. <<say "evelyn" "Give me until tomorrow. I'm good — I'm very good — but I'm not a machine.">><</speech>>
<<thought "She has a point. One a day.">>
----
<<choose "← Back to the hive" "ColonyMap">>
<<else>>
<center>''EVELYN''</center>
<<scene "missions/neighbour/drones-born.webp">>
----
The basement. Warm, humid, the nest breathing softly around you. <<name "evelyn">> is already here — she knows the look by now. The way your mass shifts. The way the tendrils reach before you've decided to move them.
<<speech "evelyn">><<say "evelyn" "You've got that look again.">> She sets down her datapad. Not annoyed. Not reluctant. Just... certain. <<say "evelyn" "Fine. Come here.">><</speech>>
She undresses without ceremony — this is routine now, familiar, almost domestic. She lies back on the padded membrane alcove the drones grew over Facet's old workbench and opens for you like it's the most natural thing in the colony.
<<psi_to "You don't have to—">>
<<speech "evelyn">><<say "evelyn" "I know. I want to. Someone has to keep the workforce growing while you're out playing.">> She reaches out, wraps a hand around a tendril, pulls it toward her. <<say "evelyn" "And honestly? After a day of spreadsheets and drone logistics, I //earned// this.">><</speech>>
A tendril slides into her — she's ready, always ready for you now, her body reshaped by weeks of this into something that welcomes you instantly. She sighs, long and low, hips rolling up to meet the first slow thrust.
No conquest here. No override, no musk, no resistance to break. Just Evelyn, warm and willing, taking you the way she has a hundred times. Her breath quickening. Her hand tightening on your surface. The low, easy sounds of a woman who trusts what's inside her.
You set the pace she likes — deep, unhurried, thorough. She talks through it, half-teasing, half-genuine — "there— //yes//, right there, you learn fast for a puddle" — until the words dissolve into a shuddering gasp and she clenches around you, coming with a soft, unguarded cry.
You release into her. The familiar flood — warm, luminous, filling her. She takes all of it with a satisfied hum, one hand drifting to her belly where the warmth is already spreading, already taking.
<<speech "evelyn">><<say "evelyn" "There.">> Breathless. Content. <<say "evelyn" "One more for the colony. You're welcome.">><</speech>>
By morning there'll be a new Worker curled by the wall. There always is.
<<set $flags.evelynBredDay to $gamestate.day>>
<<silently>><<gain_drones "Worker" 1 "Evelyn">><</silently>>
<<results>>
''FREE ACTION — EVELYN''
<div class="result-line result-gain"><img src="art/ui/icon/drone/drone-worker.webp" class="result-drone-icon"> +1 Worker drone (from Evelyn)</div>
<</results>>
----
<<choose "← Back to the hive" "ColonyMap">>
<</if>>/% ============================================
EVELYN EVENT 1 — the first morning after the Neighbours
Live once $flags.neighboursDone (setup.hubEvents "evelyn-morning",
scripts/hub-data.twee). Sets $flags.evelynMorningSeen.
Outfit: sleepwear (art/characters/body/main/evelyn/sleepwear).
============================================ %/
<<set $flags.evelynMorningSeen to true>>
<center>''THE KITCHEN''</center>
<<scene "events/evelyn/morning.webp">>
Early. The kitchen is full of pale morning light, and <<name "evelyn">> is sitting on the counter in nothing but her old STARFIRE T-shirt, bare feet swinging, both hands round a mug of tea she isn't drinking. She's been up a while. There's a second mug beside her, for nobody, out of habit.
Under the floor, very faintly, the nest hums. It's louder than it was yesterday. Three new voices in it.
<<speech "evelyn">><<say "evelyn" "Morning.">> She doesn't look up from the mug. <<say "evelyn" "I didn't sleep. I kept going down to look at them.">><</speech>>
<<psi_to "Sadie. Honey. Jade.">>
<<speech "evelyn">><<say "evelyn" "Sadie. Honey. Jade.">> She says the names like she's checking she still can. <<say "evelyn" "I've borrowed sugar off Sadie. Twice. Honey waved at me over the fence on Tuesday.">> A breath. <<say "evelyn" "And now they're in our basement, and they're happy. That's the bit I can't get my head round. They're so //happy.//">><</speech>>
<<choose_do "Tell her it's what you are now" "you're not going to pretend">><<replace "#morning-scene">>
<<psi_to "This is what I am now. What we are. You knew that when you opened your jumpsuit on the shuttle.">>
<<speech "evelyn">>She laughs, short and surprised. <<say "evelyn" "I did, didn't I.">> She finally drinks the tea. Makes a face; it's cold. <<say "evelyn" "Yeah. I knew. I just didn't know it would feel like... this.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Like it was a good night.">> Quietly. <<say "evelyn" "It //was// a good night. Wasn't it.">><</speech>>
<<include "Event_EvelynMorning_End">>
<</replace>><</choose_do>>
<<choose_do "Ask if she's all right" "she's been down there all night">><<replace "#morning-scene">>
<<psi_to "Are you all right?">>
<<speech "evelyn">><<say "evelyn" "Yes.">> Too quick. Then, properly: <<say "evelyn" "Yes. I think so. I'm proud. Is that awful? I keep thinking that's a //nest// down there, and I helped build it, and I'm proud of it.">><</speech>>
<<speech "evelyn">>She hooks a bare foot round one of your tendrils and pulls you closer along the counter. <<say "evelyn" "Ask me again in a week. I'll probably say the same thing.">><</speech>>
<<include "Event_EvelynMorning_End">>
<</replace>><</choose_do>>
<span id="morning-scene"></span><<speech "slimey">>From the basement stairs, at volume: <<say "slimey" "MUM! Honey's drone is doing the thing with her face again!">><</speech>>
<<speech "evelyn">><<say "evelyn" "Of course she is.">> She slides off the counter, tugging the T-shirt down. <<say "evelyn" "Right. Mothers' meeting. You're coming too.">><</speech>>
<div class="results-block"><div class="results-header">The safehouse</div>
<div class="result-line">Evelyn's first morning as the nest's mother.</div>
</div>
<<choose "← Back to the safehouse" "ColonyMap">>/% ============================================
EVELYN EVENT 2 — the nest is hot
Live once there's a seedbed (setup.hubEvents "evelyn-nest").
Sets $flags.evelynNestSeen. Outfit: nest.
============================================ %/
<<set $flags.evelynNestSeen to true>>
<<set _sb to $currentRun.colony.seedbeds[0]>>
<center>''THE SEEDBED CHAMBER''</center>
<<scene "events/evelyn/nest.webp">>
It's hot down here now. Properly hot, the membrane walls sweating, the air thick and sweet. <<name "evelyn">> has given up on the jumpsuit: it's peeled down to her waist with the sleeves knotted round her hips, a cotton wrap tied under her bust, hair twisted up off her neck, barefoot on the warm floor. She's fanning herself with a clipboard and losing.
She's at <<= _sb ? _sb.name + "'s" : "the first">> pod, one palm flat on the membrane, the other holding the clipboard she's stopped writing on.
<<speech "evelyn">><<say "evelyn" "It's thirty-four degrees. I checked. The nest likes it like this, apparently.">> She blows a curl out of her face. <<say "evelyn" "They're fine, before you ask. Better than fine. Heart rates down, milk up. She smiled at me.">><</speech>>
<<if _sb>><<speech "evelyn">><<say "evelyn" `"She smiled at me, " + $names.player + ". " + _sb.name + ". Through the membrane. Like I'd come to visit."`>><</speech>><</if>>
<<name "slimey">> comes past with a bucket of resin, sees the clipboard, and stops dead.
<<speech "slimey">><<say "slimey" "Are you doing a rota? Can I be on the rota? I want to be on the rota.">><</speech>>
<<speech "evelyn">><<say "evelyn" "You're on every line of the rota, Slimey.">><</speech>>
<<speech "slimey">>Overjoyed. <<say "slimey" "//Every line!//">> She sloshes off with the bucket.<</speech>>
<<choose_do "Help her with the rounds" "pod to pod">><<replace "#nest-scene">>
You go pod to pod with her, slow, while she reads the membranes with her hand and you read them with something deeper. It's easy. It's the easiest thing you've done since the shuttle. Somewhere around the third pod she stops writing anything down at all and just talks: what each woman was like before, the small things, the way Honey always overwatered her tomatoes.
<<speech "evelyn">>At the end of the row, leaning on the warm wall: <<say "evelyn" "I thought I'd hate this part. The keeping.">> She looks back along the glowing pods. <<say "evelyn" "I don't. I like it. I like that they're ours.">><</speech>>
<<include "Event_EvelynNest_End">>
<</replace>><</choose_do>>
<<choose_do "Distract her" "she's hot and bothered anyway">><<replace "#nest-scene">>
<<psi_to "You're overheating.">>
<<speech "evelyn">><<say "evelyn" "I'm aware, thank you.">> Then she sees how you're looking at the wrap, and her mouth twitches. <<say "evelyn" "Absolutely not. Not in front of the seedbeds.">><</speech>>
A tendril slides round her ankle, warm on warm skin. She doesn't move her foot.
<<speech "evelyn">><<say "evelyn" "...They're asleep. Mostly.">> The clipboard goes down on the floor. <<say "evelyn" "Upstairs. Now. Before I change my mind.">><</speech>>
<<include "Event_EvelynNest_End">>
<</replace>><</choose_do>>
<span id="nest-scene"></span><div class="results-block"><div class="results-header">The nest</div>
<div class="result-line">Evelyn keeps the seedbed rounds now.</div>
</div>
<<choose "← Back to the safehouse" "ColonyMap">>/% ============================================
EVELYN EVENT 3 — training in the garden
Live from day 5 (setup.hubEvents "evelyn-training").
Sets $flags.evelynTrainingSeen. Outfit: sport. Reward: Strength XP.
============================================ %/
<<set $flags.evelynTrainingSeen to true>>
<center>''THE GARDEN''</center>
<<scene "intro/plan-get-stronger.webp">>
Afternoon. The back garden behind the safehouse wall, hidden from the street by the cypresses. <<name "evelyn">> is in her old training kit, white crop top and navy shorts and slouched socks, ponytail coming loose, already pink and breathing hard. A pair of dumbbells sits on the grass in front of her.
<<speech "evelyn">><<say "evelyn" "Right. You. Here. We're doing this properly.">><</speech>>
<<psi_to "Doing what?">>
<<speech "evelyn">><<say "evelyn" "Training. You keep throwing yourself at women who fight back and hoping your biology sorts it out.">> She nudges a dumbbell towards you with her toe. <<say "evelyn" "Strength isn't just for breaking doors. It's control. Holding someone still without leaving a mark. Quiet strength. Pick it up.">><</speech>>
You pick it up. With four tendrils. Then the other one, with four more. You hold them both out at arm's length, if you had arms, and they don't wobble at all.
<<speech "evelyn">>A long pause. <<say "evelyn" "Show-off.">><</speech>>
<<choose_do "Keep up with her" "a proper session">><<replace "#train-scene">>
She runs you through it for an hour: holds, lifts, the slow controlled squeeze that pins without hurting. You learn to brace against the ground, to spread your weight, to take a woman's full strength and give nothing back. By the end she's flat on her back on the grass, laughing, one sock off, and you're barely warm.
<<speech "evelyn">><<say "evelyn" "Okay. Okay. Same time tomorrow.">> She squints up at you. <<say "evelyn" "Not for you. For //me//. I'm getting soft.">><</speech>>
<<gain_xp "strength" 2>>
<<include "Event_EvelynTraining_End">>
<</replace>><</choose_do>>
<<choose_do "Let her win" "she's earned it">><<replace "#train-scene">>
You let her pin you. Twice. The third time she catches you doing it and sits on you out of spite, triumphant, sweating, pointing a finger down at your membrane.
<<speech "evelyn">><<say "evelyn" "I //know// what you're doing.">> She doesn't get off. <<say "evelyn" "It's very sweet. Don't do it on a mission.">><</speech>>
<<gain_xp "strength" 1>>
<<include "Event_EvelynTraining_End">>
<</replace>><</choose_do>>
<span id="train-scene"></span><div class="results-block"><div class="results-header">Training</div>
<div class="result-line">Evelyn's training: quiet strength, holding without breaking.</div>
</div>
<<choose "← Back to the safehouse" "ColonyMap">>/% ============================================
EVELYN EVENT 4 — what Coral means
Live after the Clinic (setup.hubEvents "evelyn-coral").
Sets $flags.evelynCoralSeen. Outfit: casual. Reads Coral's bond
(setup.bondOf("clinic-coral")): thrall, seedbed, or neither.
============================================ %/
<<set $flags.evelynCoralSeen to true>>
<<set _cb to setup.bondOf("clinic-coral")>>
<center>''THE LIVING ROOM''</center>
<<scene "events/evelyn/coral.webp">>
Evening. <<name "evelyn">> is curled up at one end of the sofa in a tank top and linen shorts, her old Erebus shirt thrown on over the top, bare feet tucked under her. There's a datapad on her knee and a printout of the clinic's staff rota on the cushion beside her, covered in her handwriting.
<<speech "evelyn">><<say "evelyn" "Come and sit. I want to talk about Coral.">><</speech>>
<<if _cb is "thrall">>
<<speech "evelyn">><<say "evelyn" "She opened at nine this morning. On time. Smiled at every patient. Logged Isla's bloods as 'unremarkable'.">> She turns the datapad round: a patient record, clean as a whistle. <<say "evelyn" "Do you understand what that is? That's a doctor who will look at a pregnant woman with glowing veins and write 'routine fluctuation'. For us. Forever.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Every woman we take from now on can be ill in an ordinary way. Coral will see to it.">> She taps the rota. <<say "evelyn" "And she knows everyone in Block 9 who's ever had a cold. Every address. Every name.">><</speech>>
<<elseif _cb is "seedbed">>
<<speech "evelyn">><<say "evelyn" "She's in pod four. She hums.">> A small, odd smile. <<say "evelyn" "A doctor in the nest, looking after the nest. I go down and she tells me who's running hot, from inside the membrane. She diagnoses them, $names.player.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The clinic's put out a notice for a locum. Somebody will come and sit at her desk, and that somebody is a door we haven't opened yet.">><</speech>>
<<else>>
<<speech "evelyn">><<say "evelyn" "She's still out there. She knows something happened in that clinic, even if she can't say what.">> She chews her thumbnail. <<say "evelyn" "So she's either the best friend we'll ever have or the worst problem. I'd like to find out which before Meridia does.">><</speech>>
<</if>>
<<choose_do "Ask what she's planning" "the rota's covered in notes">><<replace "#coral-scene">>
<<speech "evelyn">><<say "evelyn" "Planning?">> She looks at the rota like she's only just noticed it. <<say "evelyn" "Oh, I'm planning. Clinic staff go home to families. Families have neighbours. Neighbours have book clubs.">> She smiles. <<say "evelyn" "Every woman we take knows three more. We don't need to go looking any more, love. They're all written down.">><</speech>>
<<include "Event_EvelynCoral_End">>
<</replace>><</choose_do>>
<<choose_do "Take the datapad off her" "she's been at it for hours">><<replace "#coral-scene">>
You take the datapad. She lets you. The rota slides off the cushion onto the floor and neither of you picks it up.
<<speech "evelyn">><<say "evelyn" "Fine. Fine. Tomorrow.">> She stretches out along the sofa, feet in your lap if you had one. <<say "evelyn" "You did good in there. The clinic. You know that, don't you?">><</speech>>
<<include "Event_EvelynCoral_End">>
<</replace>><</choose_do>>
<span id="coral-scene"></span><div class="results-block"><div class="results-header">The colony</div>
<div class="result-line"><<if _cb is "thrall">>Coral keeps the clinic's records clean for us.<<elseif _cb is "seedbed">>Coral keeps watch over the nest from pod four.<<else>>Coral is still out there, and Evelyn is watching her.<</if>></div>
</div>
<<choose "← Back to the safehouse" "ColonyMap">>/% ============================================
SAFEHOUSE EVENT — the first Charmer
Live the morning after the Neighbours, once Honey's drone is born
(setup.hubEvents "charmer", scripts/hub-data.twee). Opened from the
Hatchery card or the Tonight list. Sets $flags.charmerMet, so it shows once.
Story: Honey's drone mimics her mother, then charms Evelyn into feeding
her. Evelyn names the type after what she did to her (Charmer) and the
drone herself Honey Jr.
Unlocks: $memories.drone_charmer (Hatchery orb, report/summary names),
names her Honey Jr in the roster.
============================================ %/
<<set _cj to setup.firstCharmer()>>
<<set _honeyHome to $currentRun.colony.seedbeds.some(function (s) { return s.id === "honey"; })>>
<center>''THE HATCHERY''</center>
<<scene "missions/neighbour/drones-born.webp">>
The hatchery glows, magenta veins pulsing through the membrane walls. Yesterday they were three swollen bellies in the seedbeds. Sometime in the night they came out, and this morning three women are standing in the middle of the nest. Full grown. Still glossy-wet. Stretching like they've slept too long, and ready to go.
<<name "evelyn">> is in front of them in yesterday's jumpsuit, datapad in one hand, not quite looking up from it.
<<speech "evelyn">><<say "evelyn" "Morning. Come and look at this. Carefully. One of them's a handful.">><</speech>>
Two of them are what you expected: tall violet jelly women, glossy and smooth. Workers. Slimey's build, but not her ponytail: one has a neat jelly bob, the other long loose waves down her back. Sadie's and Jade's. They stretch, look round the nest, and wander off to start fussing at the pod walls like they've worked here for years.
<<speech "slimey">>From the doorway, delighted: <<say "slimey" "Sisters! I have //sisters!// Hi! I'm Slimey! I'll show you where everything is!">><</speech>>
The third one doesn't wander off.
She's amber where the others are violet, like honey held up to the light. Tall jelly fox ears. A huge dripping brush of a tail. Golden eyes that haven't left you since you came in. She stands with her hands on her hips and her weight on one leg, and she's smirking.
<<speech "evelyn">><<say "evelyn" "That one's been watching the door all morning. Waiting for you, I think.">><</speech>>
<<instinct "Hers. Honey's. Different blood, different daughter.">>
<<speech "evelyn">><<say "evelyn" "Workers come from humans. Same as Slimey. But this one's Honey's, and Vyx make... this.">> She scrolls. <<say "evelyn" "She reads a body and wears it. Twice now I've caught her halfway into someone else. She won't do it while I'm looking.">><</speech>>
<<choose_do "Ask her to show you" "she'll do it for you">><<replace "#charmer-scene">>
<<psi_to "Show us. As long as you can.">>
<<speech "honey-jr">><<say "honey-jr" "For //you?//">> Her voice is warm and a little husky, like it's been waiting to be used. <<say "honey-jr" "Anything.">><</speech>>
Her surface goes still. Then it //pours//, colour running into her like dye into water, and the shape keeps going: copper hair, freckles, the little chip in one claw, the exact way Honey stands with her weight on one hip.
<<scene "missions/neighbour/charmer-mimic.webp">>
She lifts one hand in front of her face like it's holding a phone and pouts at it.
<<speech "honey-jr">><<say "honey-jr" "Hi babes! Okay, so, you are NOT ready for this, I literally cannot even—">><</speech>>
It's Honey's voice. Not close. //Hers.//
<<speech "evelyn">><<say "evelyn" "Oh, that is deeply unsettling.">> She leans in, squinting. <<say "evelyn" "Her left hand's still jelly. And the tail tip. But at a door, at night, on a feed?">> She sits back. <<say "evelyn" "Nobody would look twice.">><</speech>>
<<if _honeyHome>>
<<speech "evelyn">><<say "evelyn" "And the real one's in pod two. So the colony still gets its morning selfie.">><</speech>>
<<else>>
<<speech "evelyn">><<say "evelyn" "Her mother's next door posting selfies. So that's two of them now.">><</speech>>
<</if>>
The drone in Honey's body turns to <<name "evelyn">>. Her ears tilt forward. Her eyes go soft and gold and very, very wide.
<<speech "honey-jr">><<say "honey-jr" "You look //so// tired.">> She steps closer, tail swaying slow. <<say "honey-jr" "And you smell like milk. Warm milk. I've been up since I was //born// and nobody's fed me.">><</speech>>
<<speech "evelyn">><<say "evelyn" "There's a whole nest of it. Go and—">><</speech>>
<<speech "honey-jr">><<say "honey-jr" "But I want //yours.//">> Closer. Her voice drops. <<say "honey-jr" "Just a little. Please? You'd like it. You'd like it //so// much.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Absolutely n—">> She stops. Blinks. Something in her face goes slack and pink. <<say "evelyn" "...I mean. Just a little.">><</speech>>
You feel it through the link before you see it: a sweet, syrupy pressure in the air around the drone, like musk but //aimed//. <<name "evelyn">>'s hand is already at her zip. The jumpsuit comes open to the waist. Honey Jr sinks down into her lap, nestles in against one heavy, aching breast and latches on, golden eyes closing in bliss.
<<speech "evelyn">>A long, shaky breath. <<say "evelyn" "Oh... oh, that's... good girl. That's a good girl.">> Her fingers find the jelly fox ears and stroke them. <<say "evelyn" "Take as much as you want, sweetheart.">><</speech>>
<<psi_to "Evelyn.">>
<<speech "evelyn">><<say "evelyn" "Mm?">><</speech>>
<<psi_to "Evelyn. Look at what you're doing.">>
She looks down. At the drone suckling contentedly at her chest. At her own hand, still petting. Her eyes come back into focus all at once.
<<speech "evelyn">><<say "evelyn" "She— did she just— I was //not// going to do that.">> She doesn't push her off, though. Not quite yet. <<say "evelyn" "She charmed me. Two minutes old and she //charmed// me into it.">><</speech>>
<<speech "honey-jr">>Muffled, smug, not letting go: <<say "honey-jr" "Mm-hm.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Right. Well. That's what you are, then. Not a Worker.">> She taps the datapad, still a little flushed, and types. <<say "evelyn" "A //Charmer.// Every Vyx we breed, that's what we'll get. Faces, voices, and whatever that was.">><</speech>>
The drone finally lets go with a soft pop, licks her lips, and lets the shape go all at once. She splashes back down to amber jelly and beams at you, very pleased with herself.
<<speech "evelyn">><<say "evelyn" "And you need a name of your own. I'm not calling you 'the orange one'.">><</speech>>
<<speech "honey-jr">><<say "honey-jr" "Ooh! Honey! I'm Honey!">><</speech>>
<<speech "evelyn">><<say "evelyn" "You are not Honey. Honey is a person.">> A sigh, zipping herself back up. <<say "evelyn" "Honey Jr. Final offer.">><</speech>>
<<speech "honey-jr">><<say "honey-jr" "Honey Jr!">> Spinning on the spot. <<say "honey-jr" "Honey Jr, Honey Jr. Can I have more milk later?">><</speech>>
<<speech "evelyn">><<say "evelyn" "//No.//">> A pause. <<say "evelyn" "...Ask me nicely. Without the eyes.">><</speech>>
<<if _cj>><<run _cj.name = "Honey Jr">><<set _cj.special to true>><</if>>
<<set $memories.drone_charmer to true>>
<<set $flags.charmerMet to true>>
<<sys "NEW DRONE TYPE: Charmer · born from Vyx">>
<<speech "evelyn">><<say "evelyn" "So that's the rule. Different species, different drones. Humans give us Workers. Vyx give us Charmers: someone to open a door, smile, and talk a guard out of his own keys.">> She taps the datapad against her chin. <<say "evelyn" "Remember that when you're picking targets. Every new kind of woman is a new kind of daughter.">><</speech>>
<div class="results-block"><div class="results-header">Unlocked</div>
<div class="result-line result-gain"><img src="art/ui/icon/drone/drone-charmer.webp" class="result-drone-icon" alt=""> Charmer drones · disguise, charm, social infiltration</div>
<div class="result-line result-gain">Honey Jr joins the hatchery</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>
<</replace>><</choose_do>>
<span id="charmer-scene"></span>/% ============================================
NEST EVENT — the first Siren (Nerethis-born)
Live once the first Siren is in the roster and $memories.drone_siren is
unset (setup.hubEvents "intro-siren", scripts/hub-data.twee). Opened from
the Hatchery card or the Tonight list.
Story: she's born and goes straight to the seedbeds to do the rounds:
tendrils, temperature, pulses, a hum for the bad dreams. She heals
Slimey by giving her a bit of her own jelly. Evelyn names the type.
Choices are flavour, +1 XP each (Lurk/Influence, then Influence/Strength).
Unlocks: $memories.drone_siren.
============================================ %/
<<set _d to setup.firstOfType("Siren")>><<set _ds to setup.droneSpeaker("Siren", _d)>>
<<set _dn to _d ? _d.name : "The Siren">>
<<set _mom to (_d and _d.mother) ? _d.mother : "a Nerethis woman">>
<center>''THE SEEDBED CHAMBER''</center>
<<scene "events/nest/first-siren.webp">>
You hear her before you see her. A low, wordless hum, coming up the membrane passage from the seedbeds, so soft it's almost under the hum of the nest itself.
<<name "evelyn">> is sitting on the floor of the seedbed chamber with her back against the wall and her datapad face down in her lap. She doesn't look up when you come in. She lifts one finger to her lips.
In the middle of the chamber a new drone is doing the rounds. She's blue, deep sea blue, and lit from inside by slow rippling bands of light that run down her arms and across her back in time with the hum. She doesn't walk so much as pour, a long smooth flow from pod to pod, and at every one she stops and works.
She slides a hand into the membrane, finds a feeding tendril that's slipped loose and guides it back to where it belongs. She lays two fingers on the inside of a wrist and counts. She wipes the damp off a pod that's running too warm, and the membrane pales and cools under her palm. And all the while she hums, and wherever the hum reaches, the woman inside goes still and soft and sighs.
<<instinct `_mom + "'s. Nerethis blood. Water and light and that voice."`>>
<<speech "evelyn">>Very quietly: <<say "evelyn" "She was born an hour ago. She hasn't fed yet. She went straight past the milk and came in here.">><</speech>>
<<speech _ds>>Without turning round, still humming between the words: <<say _ds "This one's tendril had come loose. That one was too hot. Some of them were having bad dreams.">> She moves to the next pod. <<say _ds "They're better now.">><</speech>>
<<choose_do "Watch her work" "stay in the doorway" "+1 Lurk XP">><<replace "#siren-1">>
You don't move. You let the doorway have you, and you watch. She goes down the whole row. She checks every tendril, warms the pod at the cold end, and turns one woman's head gently on its pillow of membrane so she isn't lying on her own hair. She doesn't hurry once.
When she finally turns round and sees you, the light in her jumps.
<<speech _ds>><<say _ds "Oh.">> A hand to her chest. <<say _ds "You're very quiet, Father.">> Then, pleased: <<say _ds "So am I. I think we'll get on.">><</speech>>
<<gain_xp "lurk" 1>>
<<include "Event_FirstSiren_Mid">>
<</replace>><</choose_do>>
<<choose_do "Ask her what she is" "she's busy, but she'll answer" "+1 Influence XP">><<replace "#siren-1">>
<<psi_to "What are you?">>
<<speech _ds>>She doesn't stop working. <<say _ds "Yours.">> As if it's obvious. <<say _ds `"I'm " + _dn + ". I look after things. That's what I'm for."`>><</speech>>
She reaches back without looking, takes one of your tendrils and lays it flat on the pod beside her.
<<speech _ds>><<say _ds "Feel. She was too warm. Now she isn't.">><</speech>>
Under the membrane, the woman's heartbeat is slow and even and content. You can feel exactly where the Siren's hand has been.
<<gain_xp "influence" 1>>
<<include "Event_FirstSiren_Mid">>
<</replace>><</choose_do>>
<span id="siren-1"></span>Behind you there's a wet slap and a yelp. <<name "slimey">> has come down the passage too fast, as usual, and run face first into the doorframe. She sits down hard, holding her head, a dent in her jelly the size of a fist.
<<speech "slimey">><<say "slimey" "Ow. Ow ow ow. I'm fine! I'm fine. That one was //my// fault.">><</speech>>
_dn is already there. She kneels, cups one hand over the dent, and presses, gently, the way you'd press a lid onto a jar. Something passes between them. A swirl of her own deep blue jelly flows out of her palm and into Slimey's violet, and the dent fills, and smooths, and is gone. Where it was, there's a faint blue thumbprint, settling.
When she takes her hand back it's thinner than the other one. You can see the pods through it. The light in her has dimmed, just slightly.
<<speech "slimey">>Blinking. <<say "slimey" "Oh. Oh, that's //nice.// I've got a blue bit! Look! Can you do that again? I can run into it again.">><</speech>>
<<speech _ds>><<say _ds "Please don't.">> She helps her up. <<say _ds "But yes. Whenever you need.">><</speech>>
<<choose_do "Thank her" "for looking after Slimey" "+1 Influence XP">><<replace "#siren-2">>
<<psi_to "Thank you. For looking after her.">>
She goes a brighter, shyer blue all over, and the hum stutters and loses its place for a moment before it finds it again.
<<speech _ds>><<say _ds "...Nobody's said that before.">> A pause. <<say _ds "I've only been alive an hour. But still.">><</speech>>
<<gain_xp "influence" 1>>
<<include "Event_FirstSiren_End">>
<</replace>><</choose_do>>
<<choose_do "Ask what it cost her" "her hand's thinner" "+1 Strength XP">><<replace "#siren-2">>
<<psi_to "That came out of you.">>
<<speech _ds>>She holds the hand up to the nest light and turns it over, curious, as if it belongs to someone else. <<say _ds "A little. It grows back.">> She lowers it. <<say _ds "If I eat.">><</speech>>
<<speech "evelyn">>Sharply, from the floor: <<say "evelyn" "Which you haven't.">><</speech>>
<<speech _ds>><<say _ds "Which I haven't.">><</speech>>
<<name "evelyn">> writes something on the datapad and underlines it twice.
<<gain_xp "strength" 1>>
<<include "Event_FirstSiren_End">>
<</replace>><</choose_do>>
<span id="siren-2"></span><<speech "evelyn">>She finally gets up off the floor. <<say "evelyn" "Tendrils. Temperatures. Pulses. A nest full of women who can't move and a hundred drones who keep walking into things, and she's the first one who's thought to look after any of them.">> She types. <<say "evelyn" "A medic. A nurse. //Siren.// That hum is a lure if I've ever heard one. I nearly went to sleep in here.">><</speech>>
<<speech _ds>><<say _ds "You did go to sleep in here. For eleven minutes.">><</speech>>
<<speech "evelyn">><<say "evelyn" `"...Thank you, " + _dn + "."`>><</speech>>
<<psi_to "Hum for me. The way you did for them.">>
She does. You feel it through the link, under your skin: the musk in you lifting, spreading, carried on that hum like scent on warm water. Every pod in the chamber pulses pink at once.
<<speech "evelyn">>Fanning herself with the datapad. <<say "evelyn" "Right. And she makes //that// stronger. Good. Noted. Never in my bedroom.">><</speech>>
<<set $memories.drone_siren to true>>
<<sys "NEW DRONE TYPE: Siren · born from Nerethis">>
<<speech "evelyn">><<say "evelyn" "Every Nerethis we bring home, we get one of her. They heal, they calm, and they carry your scent further than you can. Slow on land, though. She'll want water.">> She looks at the basin by the pods. <<say "evelyn" "I'll have the Workers grow her a pool. And she's eating first. Before the rounds.">><</speech>>
<div class="results-block"><div class="results-header">Unlocked</div>
<div class="result-line result-gain"><img src="art/ui/icon/drone/drone-siren.webp" class="result-drone-icon" alt=""> Siren drones · nest medic, calming voice, pheromone amplification</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% ============================================
NEST EVENT — the first Sentinel (Gemlith-born)
Live once the first Sentinel is in the roster and $memories.drone_sentinel
is unset (setup.hubEvents "intro-sentinel").
Story: moving day. She's a gentle giant carrying furniture down to the
nest; two cheeky Workers stack things on her until she topples. Evelyn
tells them off and puts them in time out, with the Sentinel standing in
front of the corner. Nobody gets past her. Evelyn names the type.
Choices are flavour, +1 XP each (Influence/Lurk, then Strength/Influence).
Unlocks: $memories.drone_sentinel.
============================================ %/
<<set _d to setup.firstOfType("Sentinel")>><<set _ds to setup.droneSpeaker("Sentinel", _d)>>
<<set _dn to _d ? _d.name : "The Sentinel">>
<<set _mom to (_d and _d.mother) ? _d.mother : "a Gemlith woman">>
<<set _w to setup.someDrone(["Worker"])>>
<<if _w>><<set _ws to setup.droneSpeaker("Worker", _w)>><<set _wn to _w.name>><<else>><<set _ws to "drone-worker">><<set _wn to "Bramble">><</if>>
<center>''THE NEST PASSAGES''</center>
<<scene "events/nest/sentinel-moving-day.webp">>
It's moving day. <<name "evelyn">> has decided the old furniture from the spare room is coming down to the nest, and the membrane passages are a traffic jam of Workers carrying chairs, rugs, boxes and buckets of resin, all trying to go both ways at once.
In the middle of it, moving very slowly, is the new drone.
She's taller than the others, and twice as broad, and she isn't jelly the way they are. She's jelly the way a geode is stone: clear and pale and glittering, with facets catching the nest light along her shoulders and a crown of little crystal points growing out of her hair. She has a wardrobe on one shoulder and a stack of resin buckets in the crook of the other arm, and she places each foot on the floor as if she's apologising to it.
<<instinct `_mom + "'s. Stone and patience. Nothing gets past a Gemlith she's decided to stand in front of."`>>
She stops dead in the middle of the passage. A moment later <<name "slimey">> comes tearing round the corner at full speed, and shoots straight between her legs.
<<speech _ds>>Her voice is slow and very deep and seems to come up through the floor. <<say _ds "Mind your feet, little sister. I felt you coming.">><</speech>>
<<speech "evelyn">>Coming down behind her with a clipboard: <<say "evelyn" "She's carried more down those stairs this morning than the rest of them put together. She hasn't dropped a thing.">><</speech>>
While she's standing still, waiting for the passage to clear, two Workers sidle up beside her. One of them, _wn, puts a bucket on her head.
<<speech _ws>><<say _ws "Is that all right?">><</speech>>
<<speech _ds>><<say _ds "That's all right.">><</speech>>
The other one adds a chair. Then a lamp. They're giggling.
<<choose_do "Tell them to stop" "they're taking the mick" "+1 Influence XP">><<replace "#sentinel-1">>
<<psi_to "That's enough.">>
<<speech _ws>><<say _ws "Sorry, Dad!">><</speech>>
They stop. They wait, very innocently, until you look away. When you look back there's a footstool on top of the lamp.
<<speech _ds>>Gently, not moving an inch: <<say _ds "It's all right, Father. I don't mind. I'm very good at holding things.">><</speech>>
<<gain_xp "influence" 1>>
<<include "Event_FirstSentinel_Mid">>
<</replace>><</choose_do>>
<<choose_do "See how high it goes" "say nothing" "+1 Lurk XP">><<replace "#sentinel-1">>
You say nothing, and the Workers get bolder. A footstool. A rolled-up rug. A cushion, balanced on the rug. Then Slimey climbs the whole thing like a ladder and sits on the very top, waving.
<<speech _ds>><<say _ds "Hello, Slimey.">><</speech>>
<<speech "slimey">><<say "slimey" "Hello! It's //really// high up here!">><</speech>>
<<name "evelyn">> looks at you. You look at the ceiling.
<<set _slimeyUp to true>>
<<gain_xp "lurk" 1>>
<<include "Event_FirstSentinel_Mid">>
<</replace>><</choose_do>>
<span id="sentinel-1"></span>The stack sways.
_dn feels it go, and starts, very slowly, to lean the other way to correct it. Much too slowly. She tips like a tree coming down, with all the time in the world, and says, quite calmly, <<say _ds "Oh dear.">>
The crash is long and glittering. The wardrobe goes one way, the buckets go the other, resin slops across the floor, and the lamp is in several pieces.<<if _slimeyUp>> Somewhere in the middle of it Slimey lands with a //splat// and bounces.<</if>>
Silence. The two Workers are frozen with their hands still raised.
<<speech "evelyn">><<say "evelyn" "Who. Put. A //lamp// on her.">><</speech>>
<<speech _ws>><<say _ws "It was—">><</speech>>
<<speech "evelyn">><<say "evelyn" "I don't care whose idea it was. She's a day old, she was //helping//, and you used her as a coat stand.">><</speech>>
The Workers look at the floor. _dn is still lying in the wreckage on her back, blinking up at the ceiling.
<<speech _ds>><<say _ds "I'm all right. I'm not cross.">><</speech>>
<<name "evelyn">> looks at her for a long moment. You can see the idea arrive.
<<speech "evelyn">><<say "evelyn" "Can you get up? Good. Come and stand here.">> She points at a dead end where the membrane folds back on itself into a corner. <<say "evelyn" "You two. In the corner. //Time out.//">><</speech>>
The Workers shuffle in. _dn steps in front of them, plants her feet, and fills the gap wall to wall.
<<speech "evelyn">><<say "evelyn" "You can come out when you've thought about what you did.">><</speech>>
<<choose_do "Let them try to escape" "they're going to anyway" "+1 Strength XP">><<replace "#sentinel-2">>
They try. Of course they try. _wn tries to squeeze between her and the wall; she shifts one inch, and the gap is gone. The other one tries to crawl between her legs; she sits down. Then they both push at once, feet skidding in the spilt resin, and she doesn't so much as wobble.
<<speech _ds>>The whole time, very kindly: <<say _ds "Sorry. I'm sorry. No. Sorry.">><</speech>>
In the end they go flat as puddles and try to slide out underneath her. Without seeming to think about it, she breathes out, and a little bright fence of crystal grows across the floor between her feet.
<<speech _ws>>Outraged, from the puddle: <<say _ws "She's made a //floor!//">><</speech>>
<<gain_xp "strength" 1>>
<<include "Event_FirstSentinel_End">>
<</replace>><</choose_do>>
<<choose_do "Tell them to think about it" "they've got time" "+1 Influence XP">><<replace "#sentinel-2">>
<<psi_to "Think about what you did.">>
They sulk. Then, when that doesn't work, they try sweet-talking her instead. _wn peers round her elbow with enormous eyes.
<<speech _ws>><<say _ws "Please? We're really sorry. We'll tidy up. We'll be //so// good.">><</speech>>
_dn considers this very seriously, for a long time.
<<speech _ds>><<say _ds "No.">> A pause. <<say _ds "But I'm very proud of you for saying it.">><</speech>>
_wn deflates against the wall.
<<gain_xp "influence" 1>>
<<include "Event_FirstSentinel_End">>
<</replace>><</choose_do>>
<span id="sentinel-2"></span><<speech "evelyn">>She sits down on the upturned wardrobe and watches. <<say "evelyn" "Nothing gets past her. Not even them, and those two get past //everything.//">> She types. <<say "evelyn" "//Sentinel.// A wall that's kind about it. One on the stairs, one at every way in, and we can finally sleep at night.">><</speech>>
<<speech _ds>>Without turning round. <<say _ds "I don't sleep. You can.">> Then, to the corner: <<say _ds "You can come out in a minute.">><</speech>>
It's nearly an hour. By then Slimey has mopped up most of the resin, and the lamp has gone in the bin.
<<set $memories.drone_sentinel to true>>
<<sys "NEW DRONE TYPE: Sentinel · born from Gemlith">>
<<speech "evelyn">><<say "evelyn" "Gemlith give us Sentinels. They carry, they guard, and they feel your feet coming before they can see you. You will not move one that's decided to stand somewhere.">> A glance at the wreckage. <<say "evelyn" "Don't send one anywhere you need to leave in a hurry.">><</speech>>
<div class="results-block"><div class="results-header">Unlocked</div>
<div class="result-line result-gain"><img src="art/ui/icon/drone/drone-sentinel.webp" class="result-drone-icon" alt=""> Sentinel drones · nest defence, crystal barriers, vibration sensing</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% ============================================
NEST EVENT — the first Warrior (Drakhari-born)
Live once the first Warrior is in the roster and $memories.drone_warrior
is unset (setup.hubEvents "intro-warrior").
Story: she's hot, loud and strong, picks a fight with the nest wall,
lifts Evelyn's sofa to prove a point and flies into the ceiling.
Evelyn worries about the neighbours, and names the type.
Choices are flavour, +1 XP each (Strength/Lurk, then Influence/Lurk).
Unlocks: $memories.drone_warrior.
============================================ %/
<<set _d to setup.firstOfType("Warrior")>><<set _ds to setup.droneSpeaker("Warrior", _d)>>
<<set _dn to _d ? _d.name : "The Warrior">>
<<set _mom to (_d and _d.mother) ? _d.mother : "a Drakhari woman">>
<center>''THE HATCHERY''</center>
<<scene "events/nest/first-warrior.webp">>
The heat hits you at the top of the stairs. The whole basement is warm as a bath, the membrane walls sweating, and from the hatchery comes a sound like someone kicking a door in. Over and over.
<<speech "evelyn">>From somewhere down there, sharp: <<say "evelyn" "Stop. //Stop// it. It's a wall. It's not going to fight you back.">><</speech>>
The new drone is crimson. Deep, hot, glowing red, like jelly poured over embers, and the air ripples above her shoulders. She has stubby jelly horns, a thick lashing tail, and a pair of small folded wings she clearly hasn't worked out what to do with yet. She's squared up to the hatchery wall with her fists raised. There's a fist-shaped dent in it at head height, steaming.
<<instinct `_mom + "'s. Drakhari. She came out ready to fight something."`>>
<<speech _ds>>She spins round as you come in and her whole face lights up. <<say _ds "DAD!">> It rattles the shelves. <<say _ds `"Dad, Dad, Dad. I'm " + _dn + ". I'm //strong.// Watch this."`>><</speech>>
<<speech "evelyn">><<say "evelyn" "Please don't make her watch th—">><</speech>>
She's already gone. Out of the hatchery, through the passage and up the stairs into the lounge, with you behind her. <<name "evelyn">> follows, puts her mug down, and sits heavily on the sofa to rub her temples.
The drone looks at the sofa. You can see the idea arrive.
<<choose_do "Egg her on" "go on, then" "+1 Strength XP">><<replace "#warrior-1">>
<<psi_to "Go on, then. Show me.">>
She picks up the sofa. The whole sofa. With Evelyn still on it, mid-sit, and a cushion falling off the end. She holds it over her head with both arms straight and beams at you.
<<speech _ds>><<say _ds "STRONG!">><</speech>>
<<speech "evelyn">>From up near the light fitting, holding very still: <<say "evelyn" "Yes. Thank you. Put me //down.// Gently. The neighbours have ears.">><</speech>>
<<gain_xp "strength" 1>>
<<include "Event_FirstWarrior_Mid">>
<</replace>><</choose_do>>
<<choose_do "Brace for it" "get Evelyn clear" "+1 Lurk XP">><<replace "#warrior-1">>
<<psi_to "Evelyn. Move.">>
You hook a tendril round Evelyn's waist and pull her off the sofa half a second before the drone picks it up. The whole sofa, with Evelyn's blanket still on it and a cushion falling off the end. She holds it over her head with both arms straight and beams at you.
<<speech _ds>><<say _ds "STRONG!">><</speech>>
<<speech "evelyn">>Hanging in your tendrils, through her teeth: <<say "evelyn" "Thank you.">> Then, to the drone: <<say "evelyn" "Put it //down.// Gently. The neighbours have ears.">><</speech>>
<<gain_xp "lurk" 1>>
<<include "Event_FirstWarrior_Mid">>
<</replace>><</choose_do>>
<span id="warrior-1"></span>She puts it down. Not gently. Then her wings snap open, she makes a delighted noise, and she goes straight up into the ceiling, bounces off it, and lands in a heap in the middle of the rug.
<<speech _ds>>Flat on her back, grinning at the light fitting. <<say _ds "I can fly.">><</speech>>
<<speech "evelyn">><<say "evelyn" "For about a second.">><</speech>>
<<speech _ds>><<say _ds "I can fly for about a //second.//">> She sounds thrilled about it.<</speech>>
<<name "evelyn">> sits down on the arm of the sofa and rubs her eyes. Through the wall, faintly, someone next door is knocking.
<<speech "evelyn">><<say "evelyn" "She can hold a woman down that would throw you across a room. She'll go through a door like it's paper. She'll burn hot enough to dry the walls.">> She types. <<say "evelyn" "And everyone in the street will hear her do it.">><</speech>>
<<speech _ds>>Sitting up, suddenly serious, looking at you. <<say _ds "I'll be quiet if you need me to be quiet, Dad.">> A beat. <<say _ds "I'll try.">><</speech>>
<<choose_do "Believe her" "she means it" "+1 Influence XP">><<replace "#warrior-2">>
<<psi_to "I believe you.">>
She beams so hard her glow goes up a shade. Then she leans in close, cups a hand to your membrane, and whispers, at roughly the volume of a fire alarm:
<<speech _ds>><<say _ds "THANK YOU, DAD.">><</speech>>
Through the wall, the knocking starts again.
<<gain_xp "influence" 1>>
<<include "Event_FirstWarrior_End">>
<</replace>><</choose_do>>
<<choose_do "Test her" "ten seconds of silence" "+1 Lurk XP">><<replace "#warrior-2">>
<<psi_to "Ten seconds. Not a sound. Go.">>
She clamps both hands over her mouth. One. Two. Her glow deepens. Three. Four. Her tail starts to lash. Five. Six. Steam is coming off the tips of her horns.
<<speech _ds>>She bursts. <<say _ds "SORRY!">><</speech>>
Through the wall, the knocking starts again.
<<speech "evelyn">><<say "evelyn" "Six. That's a start.">><</speech>>
<<gain_xp "lurk" 1>>
<<include "Event_FirstWarrior_End">>
<</replace>><</choose_do>>
<span id="warrior-2"></span><<speech "evelyn">><<say "evelyn" "//Warrior.// Front line. Breaching, holding, and anything that hits back.">> She puts the datapad away. <<say "evelyn" "Bring her when it's already going to be loud. Never when it isn't.">><</speech>>
<<set $memories.drone_warrior to true>>
<<sys "NEW DRONE TYPE: Warrior · born from Drakhari">>
<div class="results-block"><div class="results-header">Unlocked</div>
<div class="result-line result-gain"><img src="art/ui/icon/drone/drone-warrior.webp" class="result-drone-icon" alt=""> Warrior drones · breaching, restraining, short-burst flight · loud</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% ============================================
NEST EVENT — the first Scout (Faelix-born)
Live once the first Scout is in the roster and $memories.drone_scout is
unset (setup.hubEvents "intro-scout").
Story: a warm croissant from the bakery lands on the kitchen table; she
comes back in through the Workers' vent behind it with a full report on
the street. Then she flies into the lamp. Human-sized, just petite.
Evelyn names the type.
Choices are flavour, +1 XP each (Musk/Lurk, then Influence/Lurk).
Unlocks: $memories.drone_scout.
============================================ %/
<<set _d to setup.firstOfType("Scout")>><<set _ds to setup.droneSpeaker("Scout", _d)>>
<<set _dn to _d ? _d.name : "Zip">>
<<set _mom to (_d and _d.mother) ? _d.mother : "a Faelix woman">>
<center>''THE KITCHEN''</center>
<<scene "events/nest/scout-croissant.webp">>
Morning. <<name "evelyn">> is at the kitchen table with a mug of tea and the notebook she's kept for a month: every peacekeeper patrol past the end of the road, written down from the front window, cup by cold cup.
Something drops onto the table in front of her with a soft papery thump.
A croissant. In a paper bag from the bakery on the parade. Still warm. Still flaking.
<<speech "evelyn">>She looks at it. Then at you. <<say "evelyn" "Did you—">><</speech>>
Behind her the Workers' vent rattles, and a drone comes out of it head first, folding and unfolding through the slats like a ribbon pulled through a ring. She's as tall as any of the others, but slighter: petite, narrow-shouldered, light on her feet. Translucent green with an oily rainbow shimmer, big black eyes, and on her back a pair of clear veined dragonfly wings, buzzing so fast they blur. She lands on the counter on her toes, grinning.
<<instinct `_mom + "'s. Faelix. She'll never be still a moment in her life."`>>
<<speech _ds>><<say _ds `"HiDadI'm" + _dn + "I'vebeenoutside."`>> To Evelyn, proudly: <<say _ds "I got you breakfast.">><</speech>>
<<speech "evelyn">><<say "evelyn" "You've been //outside.// In daylight. Through the //vent.//">><</speech>>
<<speech _ds>><<say _ds "Through the vent!">><</speech>>
<<speech "evelyn">><<say "evelyn" "The vent is the size of a letterbox.">><</speech>>
<<choose_do "Eat the croissant" "it's still warm" "+1 Musk XP">><<replace "#scout-1">>
You take the croissant. It's warm and buttery and it goes into your membrane in flakes, and the drone watches every bite like it's the best thing she's ever seen.
<<speech _ds>><<say _ds "I can get you one every morning!">><</speech>>
<<speech "evelyn">><<say "evelyn" "You will not.">><</speech>>
<<speech _ds>>Sly, to Evelyn: <<say _ds "...I can get //you// one every morning.">><</speech>>
<<speech "evelyn">>A pause that goes on slightly too long. <<say "evelyn" "...Almond.">><</speech>>
<<gain_xp "musk" 1>>
<<include "Event_FirstScout_Mid">>
<</replace>><</choose_do>>
<<choose_do "Ask how she got out" "the size of a letterbox" "+1 Lurk XP">><<replace "#scout-1">>
<<psi_to "Show me how.">>
She's gone. Folded back through the slats in half a second, a green flicker, the vent cover barely rattling. Before Evelyn can say anything she's back, unfolding onto the counter again, with a second paper bag.
<<speech _ds>><<say _ds "Pain au chocolat. In case you didn't like croissants.">><</speech>>
<<name "evelyn">> just watches the vent for a while.
<<gain_xp "lurk" 1>>
<<include "Event_FirstScout_Mid">>
<</replace>><</choose_do>>
<span id="scout-1"></span><<psi_to "Slowly. What did you see?">>
She takes a huge breath and visibly tries.
<<speech _ds>><<say _ds "Okay. Okay. Slowly. Up the street, left at the cypress, one hundred and twelve houses, nine with a window open, three with a dog, one dog is very old and he saw me and didn't care.">> Breath. <<say _ds "Two peacekeepers on the corner of the crescent, the tall one is bored, the short one keeps looking at her watch, they go round every forty minutes. The bakery on the parade is already open. There is a //cat// on the roof of the clinic. It is the size of a sheep.">><</speech>>
<<speech "evelyn">>Very still. <<say "evelyn" "Every forty minutes.">><</speech>>
<<speech _ds>><<say _ds "Every forty minutes. I timed them twice. It's not exactly forty, it's thirty-nine and a bit.">><</speech>>
<<name "evelyn">> looks down at the notebook.
<<speech "evelyn">><<say "evelyn" "Do you know how long it took me to learn the patrol on the crescent? A //month.// Sitting in that window with a cup of tea going cold.">><</speech>>
<<choose_do "Praise her" "she's earned it" "+1 Influence XP">><<replace "#scout-2">>
<<psi_to "That's very good. Well done.">>
Her wings go from a blur to a whine. She lifts clean off the counter without meaning to, hanging in the air, hands over her mouth, delighted.
<<speech _ds>><<say _ds "Really? //Really?// I can go again! I can go //now!// I can go to the end of the—">><</speech>>
<<gain_xp "influence" 1>>
<<include "Event_FirstScout_End">>
<</replace>><</choose_do>>
<<choose_do "Ask about the patrol again" "the exact times" "+1 Lurk XP">><<replace "#scout-2">>
<<psi_to "Both rounds. Exact times.">>
<<speech _ds>>Instantly: <<say _ds "Seven-oh-four and seven-forty-three. The short one stops to do her shoelace at the post box, so they're slower going round the back. Eight-twenty-two next. Probably.">><</speech>>
<<name "evelyn">> checks the times against her notebook. She checks them again. Then she closes it, gets up, and drops it in the bin.
<<speech _ds>>Thrilled. <<say _ds "I can check! I can go //now!// I can go to the end of the—">><</speech>>
<<gain_xp "lurk" 1>>
<<include "Event_FirstScout_End">>
<</replace>><</choose_do>>
<span id="scout-2"></span>She launches off the counter, does one fast lap of the kitchen ceiling for the joy of it, and flies straight into the hanging lamp. There's a //bonk.// She comes down like a stone across the kitchen table in a spray of crumbs, wings in a tangle.
<<speech _ds>>Flat on her back among the crumbs, small: <<say _ds "I'm okay.">><</speech>>
<<speech "evelyn">>She gets a bag of frozen peas out of the freezer and holds it to the drone's forehead. <<say "evelyn" "She's made of tissue paper. One good swat and she's done.">> She adjusts the peas, absurdly gently. <<say "evelyn" "And she just did a month of my work in four minutes.">><</speech>>
<<speech "evelyn">><<say "evelyn" "//Scout.// Eyes. Ears. Fast enough to be somewhere and back before they've finished looking. We send her first, and we never send her into a fight.">><</speech>>
<<set $memories.drone_scout to true>>
<<sys "NEW DRONE TYPE: Scout · born from Faelix">>
<div class="results-block"><div class="results-header">Unlocked</div>
<div class="result-line result-gain"><img src="art/ui/icon/drone/drone-scout.webp" class="result-drone-icon" alt=""> Scout drones · flight, recon, intel relay · fragile</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% ============================================
NEST EVENT — the first Officer (Aetheri-born)
Live once the first Officer is in the roster and $memories.drone_officer
is unset (setup.hubEvents "intro-officer").
Story: born a few hours ago, she stands in the middle of the nest
sorting everyone out over the link while Evelyn tries to show her the
ropes (one line per drone type you've met). Evelyn is peeved at being
replaced; the Officer reassures her. A Worker keeps feeding after being
told to stop and gets a spanking. Evelyn remembers her own mum.
Evelyn names the type.
Choices are flavour, +1 XP each (Influence/Lurk, then Strength/Influence).
Unlocks: $memories.drone_officer.
============================================ %/
<<set _d to setup.firstOfType("Officer")>><<set _ds to setup.droneSpeaker("Officer", _d)>>
<<set _dn to _d ? _d.name : "The Officer">>
<<set _mom to (_d and _d.mother) ? _d.mother : "an Aetheri woman">>
<<set _w to setup.someDrone(["Worker"])>>
<<if _w>><<set _ws to setup.droneSpeaker("Worker", _w)>><<set _wn to _w.name>><<else>><<set _ws to "drone-worker">><<set _wn to "Bramble">><</if>>
<center>''THE NEST''</center>
<<scene "events/nest/officer-sorting.webp">>
The nest is busy, the way it always is. But something's off, and it takes you a moment on the stairs to work out what.
Nobody's bumping into anybody.
In the middle of the main chamber, standing quite still while the traffic flows round her like water round a rock, is the newest one. She's gold. Pale, clear, glowing gold, like light through honey, and she's tall and very straight, and around her head, faint as breath on glass, a thin ring of light hangs in the air.
<<name "evelyn">> is standing beside her with her datapad held to her chest, talking.
<<speech "evelyn">><<say "evelyn" "—and then the Workers do the pods in the morning, and after that the—">><</speech>>
<<speech _ds>><<say _ds "Morning pods in pairs. Yes. I saw the rota.">><</speech>>
<<speech "evelyn">><<say "evelyn" "I haven't shown you the rota.">><</speech>>
<<speech _ds>><<say _ds "It was on your datapad, Mother. You hold it at an angle.">><</speech>>
<<instinct `_mom + "'s. Aetheri. You can feel her in the link like a hand on every shoulder at once."`>>
<<speech _ds>>She turns as you come down, and inclines her head. Not a bow. Close to one. Her voice is soft and exact; every word is finished before the next one starts. <<say _ds `"Father. Good morning. I'm " + _dn + ". Mother's been showing me how the nest works."`>><</speech>>
<<speech "evelyn">><<say "evelyn" "I've been //trying.// She was born at four. By half past she'd spoken to every one of them. I don't mean out loud.">><</speech>>
While Evelyn talks, the Officer listens, and nods, and never once looks away from her. And all the while you can feel the orders going out through the link, quiet and constant, like breathing.
Two Workers peel off to the pods without a word. A third goes for the resin buckets before anyone has asked.<<if $memories.drone_charmer>> Across the chamber, Honey Jr, halfway into Evelyn's face in the reflection of a puddle, drops it with a sigh and goes back to her own.<</if>><<if $memories.drone_siren>> A Siren drifts to the end pod, where a mother is running hot, before the mother has even noticed.<</if>><<if $memories.drone_sentinel>> The Sentinel at the foot of the stairs straightens up and plants her feet.<</if>><<if $memories.drone_warrior>> A Warrior about to punch the wall lowers her fist, and goes to punch a resin barrel instead. Quietly.<</if>><<if $memories.drone_scout>> The Scouts stop racing each other to the vent and form a queue.<</if>>
<<speech "evelyn">>She watches all of it happen. Her mouth goes thin. <<say "evelyn" "I was about to do that.">><</speech>>
<<speech _ds>><<say _ds "I know, Mother. You'd have done it very well.">><</speech>>
<<speech "evelyn">><<say "evelyn" "So what am I for, then?">> Sharper than she means it. <<say "evelyn" "Am I being replaced?">><</speech>>
<<choose_do "Back Evelyn up" "this is her nest" "+1 Influence XP">><<replace "#officer-1">>
<<psi_to "Evelyn runs this nest.">>
The Officer turns to you, and inclines her head again, lower this time. Then she turns the same nod on Evelyn.
<<speech _ds>><<say _ds "Of course she does. Mother sets the nest. I only keep it set.">><</speech>>
<<speech "evelyn">>A little mollified, not quite ready to show it. <<say "evelyn" "...Good.">><</speech>>
<<gain_xp "influence" 1>>
<<include "Event_FirstOfficer_Mid">>
<</replace>><</choose_do>>
<<choose_do "Let the Officer answer" "see what she says" "+1 Lurk XP">><<replace "#officer-1">>
You say nothing. The Officer answers Evelyn directly, gently, and while she does, without so much as a glance, she sends two Workers one way, <<name "slimey">> another, and a bucket of resin a third.
<<speech _ds>><<say _ds "You aren't being replaced, Mother. I'm here so that you can sleep.">><</speech>>
<<speech "evelyn">><<say "evelyn" "That is both very reassuring and //incredibly// annoying.">><</speech>>
<<gain_xp "lurk" 1>>
<<include "Event_FirstOfficer_Mid">>
<</replace>><</choose_do>>
<span id="officer-1"></span><<speech _ds>><<say _ds "Nobody can be you, Mother. Every one of them was born knowing your voice.">> Quieter. <<say _ds "I was only born knowing that it's the one they listen for.">><</speech>>
<<name "evelyn">> opens her mouth to say something, and doesn't.
The Officer stops mid-breath. Her eyes go past Evelyn, to the feeding station by the far wall, where a Worker is drinking.
<<speech _ds>><<say _ds `_wn + ". That's enough now."`>><</speech>>
_wn lifts her head. Looks at the Officer. And goes back to drinking.
<<speech _ds>><<say _ds `_wn + "."`>><</speech>>
One more gulp. Looking the Officer straight in the eye.
_dn sighs, the way someone much older would. She crosses the chamber, sits down on the edge of the feeding trough, tips the Worker across her knee in one smooth movement, and gives her three brisk smacks across her jelly bottom. The wet slaps echo round the whole nest. Every drone in it stops.
<<speech _ws>><<say _ws "Ow! Ow. //Ow.// Okay! Okay!">><</speech>>
She slides off and slinks away, rubbing her wobbling bottom, lower lip out.
<<choose_do "Wince" "you felt that through the link" "+1 Strength XP">><<replace "#officer-2">>
You wince. You can't help it. You felt every one of those through the link. _wn sulks past you, still rubbing.
<<speech _ds>>Without heat, already back on her feet: <<say _ds `"You can come back at supper, " + _wn + ". Not before."`>><</speech>>
<<speech "evelyn">>She's staring. <<say "evelyn" "Wow.">> Her hand has drifted round to her own backside without her noticing. <<say "evelyn" "I remember that. My mum did that to me once. I'd eaten a whole tin of biscuits before tea.">> A beat. <<say "evelyn" "I never did it again, either.">><</speech>>
<<gain_xp "strength" 1>>
<<include "Event_FirstOfficer_End">>
<</replace>><</choose_do>>
<<choose_do "Raise an eyebrow at Evelyn" "she's gone very quiet" "+1 Influence XP">><<replace "#officer-2">>
You look at Evelyn. Evelyn catches you looking, and goes pink.
<<speech "evelyn">><<say "evelyn" "Don't.">><</speech>>
You keep looking.
<<speech "evelyn">><<say "evelyn" "...Fine. Yes. My mum did that to me once. //Exactly// like that.">> She rubs her own backside without thinking, then notices she's doing it and stops. <<say "evelyn" "I never did it again, either.">><</speech>>
<<gain_xp "influence" 1>>
<<include "Event_FirstOfficer_End">>
<</replace>><</choose_do>>
<span id="officer-2"></span><<name "evelyn">> looks at the Officer for a long moment, and then, to her enormous credit, laughs.
<<speech "evelyn">><<say "evelyn" "Fine. //Fine.//">> She types, and then holds the datapad out. _dn takes it as if it's something precious. <<say "evelyn" "//Officer.// She thinks, she plans, she talks to all of them at once without opening her mouth, and apparently she does discipline. Aetheri are rare and they're careful, so we won't get many.">> A glance at you. <<say "evelyn" "Look after her.">><</speech>>
<<speech _ds>><<say _ds "I'll look after all of them, Mother.">> Then, quieter, only to you, through the link: //I'm very glad to meet you, Father.//<</speech>>
<<set $memories.drone_officer to true>>
<<sys "NEW DRONE TYPE: Officer · born from Aetheri">>
<div class="results-block"><div class="results-header">Unlocked</div>
<div class="result-line result-gain"><img src="art/ui/icon/drone/drone-officer.webp" class="result-drone-icon" alt=""> Officer drones · command, psychic coordination, tactical planning · rare</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% ============================================
NEST EVENT — the whole hive
Live once every drone type is unlocked (Charmer, Siren, Sentinel,
Warrior, Scout, Officer) and Nest_Dormancy has been seen, so the rest
shelves exist (setup.hubEvents "whole-hive"). Sets $flags.wholeHiveSeen.
Story: a morning on the stairs watching the hive run. Each type at its
job; a knock at the door and the whole hive answers it. Evelyn is miffed
that humans make "Workers" and Aetheri make "Officers"; the Officer says
the hive is a family, as Honey Jr tries to dodge her shift disguised as
a sleeping Worker orb. Slimey worries she isn't useful any more; the
Officer reminds her she's the eldest sister.
Choices are flavour, +1 XP each (Influence/Lurk, then Influence/Strength).
Flavour only: no mechanics.
============================================ %/
<<set _o to setup.someDrone(["Officer"])>><<set _os to setup.droneSpeaker("Officer", _o)>>
<<set _si to setup.someDrone(["Siren"])>><<set _ss to setup.droneSpeaker("Siren", _si)>>
<<set _se to setup.someDrone(["Sentinel"])>><<set _ses to setup.droneSpeaker("Sentinel", _se)>>
<<set _wa to setup.someDrone(["Warrior"])>><<set _was to setup.droneSpeaker("Warrior", _wa)>>
<<set _sc to setup.someDrone(["Scout"])>><<set _scs to setup.droneSpeaker("Scout", _sc)>>
<<set _w to setup.someDrone(["Worker"])>><<set _ws to setup.droneSpeaker("Worker", _w)>>
<<set _beds to $currentRun.colony.seedbeds>>
<<set _face1 to _beds.length > 0 ? _beds[0].name : "Evelyn">>
<<set _face2 to _beds.length > 1 ? _beds[1].name : null>>
<center>''THE NEST''</center>
<<scene "events/nest/whole-hive.webp">>
Morning. You and <<name "evelyn">> are sitting on the top step of the basement stairs, the way you do sometimes, her with a mug of tea and you with the one she always makes you out of habit. Below you, the whole nest is awake.
In the middle of the main chamber the Workers have grown the Officer a perch: a curl of membrane like a little pulpit. She stands in it with her eyes half closed and her ring of light bright, and the link hums with her, steady as a heartbeat.
The Workers go pod to pod in pairs, unhurried, wiping membranes and checking tendrils, resin buckets swinging.
Down the long passage comes the Sentinel, with a crate on each shoulder. Two Workers walk either side of her, steadying the load.
<<speech _ws>><<say _ws "Left a bit. Bit more. Lovely. Mind the step.">><</speech>>
<<speech "evelyn">><<say "evelyn" "That's the two from the corner.">> She sips. <<say "evelyn" "They're very helpful now.">><</speech>>
At the seedbeds, the Siren does her rounds with a bowl of milk balanced on her hip, and she actually drinks from it between pods.
<<speech "evelyn">><<say "evelyn" "I make her.">><</speech>>
In the far corner the Warrior is training: press-ups, with a full resin barrel on her back, counting under her breath, which for her means the whole nest knows she's on two hundred and twelve. She sees you, sits up and opens her mouth to shout. Then remembers, and waves instead, enormously.
Something green goes overhead. The Scout, in through one vent and out of another without slowing down, and as she passes she drops a paper bag into Evelyn's lap.
<<speech _scs>>Already gone, her voice trailing back from the vent: <<say _scs "Almond! Patrol's on the crescent, back in twelve minutes!">><</speech>>
Down by the Siren's pool, <<name "honey-jr">> is kneeling at the edge using the water as a mirror. Her face is _face1's. She frowns at it, tweaks the nose, tries again.<<if _face2>> Then it's _face2's, and she pouts at the reflection like she's taking a selfie.<</if>>
<<speech "honey-jr">><<say "honey-jr" "No. No, her mouth goes up more on that side. Hang on.">><</speech>>
And <<name "slimey">> is everywhere at once. She comes up the stairs with a cup of tea for Evelyn, sees she's already got one, and goes back down. She comes back with a cushion. Then a blanket.
<<speech "slimey">><<say "slimey" "Do you need anything? Anything at all? I can get anything. I can get //two// of anything.">><</speech>>
<<speech "evelyn">><<say "evelyn" "I'm fine, Slimey. Thank you, love.">><</speech>>
Slimey wilts, just a little, and goes off again. You notice it. You aren't sure Evelyn does.
<hr>
Upstairs, someone knocks on the front door.
For half a heartbeat, the whole nest stops. The Officer's eyes open.
<<speech _scs>>The Scout is already back at the vent, upside down. <<say _scs "Delivery driver. One. Parcel. Van running. She's bored.">><</speech>>
<<choose_do "Let the Officer run it" "it's what she's for" "+1 Influence XP">><<replace "#hive-1">>
You stay where you are and leave it to her. Through the link you feel her reach out, and the whole hive answer at once.
The Sentinel sets her crates down and takes the foot of the stairs. The Siren starts to hum, low, and every pod in the seedbeds dims and goes quiet. The Warrior is told to sit down and not move. She sits. She vibrates. And Honey Jr pours up the stairs past you wearing Evelyn's face, Evelyn's jumpsuit and Evelyn's frown, opens the door a crack, signs for the parcel and says <<say "honey-jr" "Thanks, love.">>
The door shuts. It's taken under a minute.
Down in her perch, the Officer catches your eye, and gives you a small, pleased nod.
<<gain_xp "influence" 1>>
<<include "Event_WholeHive_Mid">>
<</replace>><</choose_do>>
<<choose_do "See to it yourself" "it's your house" "+1 Lurk XP">><<replace "#hive-1">>
You get up to go and see to it yourself, and get exactly as far as the door at the top of the stairs, where the Sentinel, who has come up behind you without a sound, gets there first. You end up wedged between her and the doorframe.
<<speech _ses>><<say _ses "Sorry, Father.">><</speech>>
Through the link you feel the Officer, very calmly, rearrange the whole hive around you. The Siren starts to hum, and every pod dims and goes quiet. The Warrior is told to sit down and not move. She sits. She vibrates. Honey Jr steps neatly over your tendrils wearing Evelyn's face, Evelyn's jumpsuit and Evelyn's frown, goes up, opens the door a crack, and signs for the parcel. <<say "honey-jr" "Thanks, love.">>
The door shuts.
<<speech _os>>Very kindly: <<say _os "Thank you, Father. That was very helpful.">><</speech>>
Evelyn snorts into her tea.
<<gain_xp "lurk" 1>>
<<include "Event_WholeHive_Mid">>
<</replace>><</choose_do>>
<span id="hive-1"></span>Honey Jr comes back down with the parcel under one arm, still wearing Evelyn's face.
<<speech "evelyn">><<say "evelyn" "That was a //parcel.//">> She looks at Honey Jr. Then harder. <<say "evelyn" "Is my nose really like that?">><</speech>>
<<speech "honey-jr">><<say "honey-jr" "Mm-hm.">> She lets the face go with a splash and is amber again, and hands the parcel over. <<say "honey-jr" "You've got a lovely nose, babe.">><</speech>>
<<name "evelyn">> puts the parcel down beside her, and watches the hive go back to work. Then she starts counting on her fingers.
<<speech "evelyn">><<say "evelyn" "Vyx get Charmers. Nerethis get Sirens. Gemlith get Sentinels. Drakhari get Warriors. Faelix get Scouts.">> A pause. <<say "evelyn" "Aetheri get //Officers.//">> Another. <<say "evelyn" "And humans get Workers.">><</speech>>
She puts the mug down.
<<speech "evelyn">><<say "evelyn" "//Workers.// We're the help. That's what we are to the universe. Everyone else gets a job title and we get a hi-vis vest.">><</speech>>
<<speech _os>>From the perch, without opening her eyes: <<say _os "Mother.">><</speech>>
She steps down and comes to the foot of the stairs, and looks up at Evelyn.
<<speech _os>><<say _os "Who taught Slimey to talk? Who kept the rota for weeks on a datapad? Who is it every one of us listens for, when we're frightened?">> Gently. <<say _os "A hive isn't a ladder, Mother. It's a family. Everyone in it matters. Every single one.">><</speech>>
Her eyes slide, unhurried, to the rest shelves on the back wall.
<<speech _os>><<say _os "Even when they're being naughty.">><</speech>>
On the shelves, among the rows of sleeping orbs, there's a new one. Violet. Worker violet, smooth and round and perfectly still. Except that poking out from underneath it is the tip of a fluffy amber fox tail. Twitching.
<<speech _os>><<say _os "Honey Jr.">><</speech>>
<<speech "honey-jr">>The orb, very small, in a Worker's voice: <<say "honey-jr" "...zzz.">><</speech>>
<<choose_do "Let her sleep" "just this once" "+1 Influence XP">><<replace "#hive-2">>
<<psi_to "Let her have this one.">>
The Officer considers it. She considers it for long enough that the tail stops twitching.
<<speech _os>><<say _os "Once. And she does a double shift tomorrow.">><</speech>>
The orb lets out an enormous sigh. The tail droops.
<<speech "honey-jr">><<say "honey-jr" "...Worth it.">><</speech>>
<<gain_xp "influence" 1>>
<<include "Event_WholeHive_End">>
<</replace>><</choose_do>>
<<choose_do "Wake her" "she's on shift" "+1 Strength XP">><<replace "#hive-2">>
You reach down the stairs with one long tendril and poke the orb.
It squeaks. Then it pours off the shelf, tail first, amber and outraged.
<<speech "honey-jr">><<say "honey-jr" "I was //resting!//">><</speech>>
<<speech _os>><<say _os "You were hiding.">><</speech>>
<<speech "honey-jr">><<say "honey-jr" "I was resting //in disguise!//">> She stomps off to the pods with her tail in the air.<</speech>>
Beside you, Evelyn laughs, properly, for the first time all morning.
<<gain_xp "strength" 1>>
<<include "Event_WholeHive_End">>
<</replace>><</choose_do>>
<span id="hive-2"></span><<name "slimey">> has come back. She's sitting three steps down, very quietly, which is the strangest thing that's happened all morning.
<<speech "slimey">><<say "slimey" "Officer?">> She picks at the step. <<say "slimey" "What am //I?//">><</speech>>
<<speech _os>><<say _os "What do you mean, Slimey?">><</speech>>
<<speech "slimey">><<say "slimey" "I'm not a Charmer. Or a Siren, or a Sentinel or anything. I'm just a Worker. And there's loads of Workers now, and everyone's really good at stuff.">> Smaller. <<say "slimey" "Mum doesn't even need tea.">><</speech>>
The Officer comes up the stairs and kneels on the step below her, so that for once she's the one looking up.
<<speech _os>><<say _os "You're the eldest, Slimey. You were first. Before any of us.">> She takes Slimey's hands. <<say _os "Every daughter in this nest learnt how to be a daughter from you. How to love Father. How to look after Mother. How to run into doorframes.">><</speech>>
<<speech "slimey">><<say "slimey" "...That last one's an accident.">><</speech>>
<<speech _os>><<say _os "We all learnt it anyway.">><</speech>>
Slimey has to go and sit down for a bit, even though she's already sitting down. <<name "evelyn">> pulls her up a step and in under her arm, and holds her there.
<<speech "evelyn">>Into the top of her head: <<say "evelyn" "My first girl.">><</speech>>
Down in the seedbeds, the Siren starts to hum. A Worker picks it up, then another. The Sentinel's comes up deep through the floor. The Warrior's is far too loud and nobody minds. The Scout's buzzes in from somewhere outside. Honey Jr's slides through three different voices before it settles on her own. And the Officer gathers all of it up through the link and hands it to you, the whole hive at once, every one of them.
<<speech "evelyn">>She leans her head against you. <<say "evelyn" "We built this.">><</speech>>
<<set $flags.wholeHiveSeen to true>>
<div class="results-block"><div class="results-header">The hive is complete</div>
<div class="result-line">Every kind of daughter, every one with her job, and one family.</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% ============================================
NEST EVENT — Dormancy: how drones sleep
Live once every drone type is unlocked (setup.hubEvents "dormancy", on
the Nest card). Sets $flags.nestDormancySeen, which Event_WholeHive
(events/drone/drone_introductions.twee) waits for.
Story: night. The Workers have grown one long shelf and the whole hive
sleeps on it, curled up as orbs. That's how drones rest. The Officer
explains (hibernating through a milk shortage gets one line). Every type
sleeps differently, and all together on one shelf they go wrong: Workers
merge, the Charmer copies her neighbours, the Siren drips, the Warrior
melts the orbs either side, the Scout rolls off, and the Sentinel's
weight bows the shelf until it gives. Evelyn comes down and decides each
type needs its own shelves: the per-type rest pods (Hive · Upgrades ·
Drone capacity).
Choices are flavour, +1 XP each (Lurk/Influence, then Influence/Musk).
============================================ %/
<<set _o to setup.someDrone(["Officer"])>><<set _os to setup.droneSpeaker("Officer", _o)>>
<<set _w to setup.someDrone(["Worker"])>>
<<if _w>><<set _ws to setup.droneSpeaker("Worker", _w)>><<set _wn to _w.name>><<else>><<set _ws to "drone-worker">><<set _wn to "Bramble">><</if>>
<<set _wa to setup.someDrone(["Warrior"])>><<set _wan to _wa ? _wa.name : "Ember">>
<<set _sc to setup.someDrone(["Scout"])>><<set _scn to _sc ? _sc.name : "Zip">>
<<set _se to setup.someDrone(["Sentinel"])>><<set _sen to _se ? _se.name : "Quartz">>
<<set _si to setup.someDrone(["Siren"])>><<set _ssn to _si ? _si.name : "Marina">>
<center>''THE NEST''</center>
<<scene "events/nest/dormancy.webp">>
Night. The house is dark, Evelyn's asleep upstairs, and you go down to the nest the way you sometimes do, just to feel it.
It's quiet. Quieter than you've ever heard it. The feeding stations are empty, the passages are still, and along the back wall of the main chamber there's something new: one long shelf of smooth pink membrane, grown out of the wall at about waist height and running the whole length of the room.
The drones are climbing onto it.
They come in off their shifts one by one, yawning, and find a space, and lie down. Then they curl up. Smaller, and smaller, arms and legs drawing in, until each of them is a glossy round orb about the size of a football, slightly flattened where it meets the shelf, glowing very softly in her own colour. Violet, amber, blue, red, green, crystal-white. Dozens of them, in a row.
<<instinct "Sleeping. All of them, on the link, very faint. Like a room full of people breathing.">>
<<speech _os>>The Officer is sitting on the bottom step of the stairs with a slate in her lap. She doesn't look surprised to see you. <<say _os "Good evening, Father. You've found the dormitory.">><</speech>>
<<psi_to "This is how you sleep?">>
<<speech _os>><<say _os "This is how we rest. We don't need beds. We go round, and everything slows down, and we dream on the link until morning.">> She tilts her head at the shelf. <<say _os "Then we uncurl, full size, and very hungry. Nobody taught us. We just know. Like feeding, or knowing where our sisters are.">><</speech>>
<<choose_do "Watch one fall asleep" "a Worker's just climbed up" "+1 Lurk XP">><<replace "#dorm-1">>
You keep still and watch. At the near end of the shelf a Worker gives an enormous yawn, sags, and rolls herself up the way a cat settles: one turn, two, a little shuffle to get it right, and then she's an orb.
Up close, you can see her dreaming. Slow ripples go round under her surface, like a breeze over water. Every so often one of them is the shape of a hand.
<<speech _os>>Quietly: <<say _os "She's dreaming she's still doing the pods. They nearly all do, the first few nights.">><</speech>>
<<gain_xp "lurk" 1>>
<<include "Nest_Dormancy_Mid">>
<</replace>><</choose_do>>
<<choose_do "Ask what they dream about" "they're on the link" "+1 Influence XP">><<replace "#dorm-1">>
<<psi_to "What do you dream about?">>
<<speech _os>>She considers it properly. <<say _os "You, mostly, Father.">> A pause. <<say _os "And milk.">><</speech>>
You reach into the link, very lightly, and the whole shelf answers at once: a sleepy, warm, pink blur, two dozen dreams at the same time, and every one of them has you somewhere in it.
<<speech _os>><<say _os "You can stay, if you like. They sleep better when you're down here.">><</speech>>
<<gain_xp "influence" 1>>
<<include "Nest_Dormancy_Mid">>
<</replace>><</choose_do>>
<span id="dorm-1"></span><<speech _os>><<say _os "We can stay down longer, if we need to. Days, if the milk ever ran short and there weren't enough feeds to go round. We'd just sleep through it.">> She looks along the shelf. <<say _os "But mostly we just get tired, Father. Same as you.">><</speech>>
It's very peaceful. For about ten minutes.
Then it starts to go wrong. Every kind of daughter sleeps differently, and all of them are on the same shelf.
The Workers sleep in a heap. Two violet orbs side by side relax into each other, and then they're one violet orb, twice the size, with two dreams going round inside it.
<<speech _ws>>Muffled, from inside: <<say _ws "...whose arm is this.">><</speech>>
Honey Jr's orb, halfway along, keeps changing colour in her sleep. Violet, to match the Worker on her left. Blue, to match the Siren on her right. A Worker coming off shift goes to give her a goodnight pat, stops, and pats the wrong one.
_ssn hums the others down before she goes round herself, very sweetly. But a Siren orb is //wet.// It drips. Slowly, steadily, onto the end of the shelf, where the orb next to hers wakes up spluttering, shuffles along a space, and goes back to sleep.
_wan is snoring. Warriors snore. Her orb glows a deep coal-red, and each snore comes with a little puff of heat, and the orbs either side of her are starting to go soft and runny at the edges. The membrane under her is smoking, very gently.
_scn's orb twitches. Then buzzes. Then rolls, a few centimetres along the shelf, and stops. Then rolls a bit further, and drops off the end with a //bonk.// She stays asleep. A Worker sighs, picks her up and puts her back. Two minutes later she rolls off again.
And at the far end is _sen. <<if $memories.drone_sentinel>>"I don't sleep," she said, the day she was born. She is very, very asleep.<</if>> A Sentinel sleeps the way a mountain does: completely, and heavily. Her pale crystal orb is the size of an armchair, and the shelf underneath it is bowed like a hammock. It creaks. Every orb on the shelf has slowly slid downhill towards her, until they're all bunched against her in the dip.
The shelf creaks again. Longer this time.
<<speech _os>>The Officer has stopped writing. <<say _os "Ah.">><</speech>>
<hr>
Over by the feeding stations, one small violet figure is //not// asleep. <<name "slimey">> is curled up on the floor, as tight as she can make herself. Then she uncurls.
<<speech "slimey">><<say "slimey" "Dad? Do //you// sleep?">><</speech>>
<<psi_to "Not like you do.">>
<<speech "slimey">><<say "slimey" "Oh.">> She curls back up. Uncurls. <<say "slimey" "What's it like, then?">> Curls. Uncurls. <<say "slimey" "I can't get round. I keep thinking about tomorrow.">><</speech>>
<<choose_do "Stay with her till she drops off" "she just needs company" "+1 Influence XP">><<replace "#dorm-2">>
You settle down on the warm floor beside her and let one tendril rest across her back. She talks for a while, about the pods, and Mum, and whether Scouts can fly upside down, and somewhere in the middle of a sentence about buckets she stops talking and goes round. A neat violet orb, tucked against your side.
<<speech _os>>Softly, from the stairs: <<say _os "She's never been able to do that by herself. She was first. There was nobody to show her.">><</speech>>
<<gain_xp "influence" 1>>
<<include "Nest_Dormancy_End">>
<</replace>><</choose_do>>
<<choose_do "Hum to her the way the Siren does" "how hard can it be" "+1 Musk XP">><<replace "#dorm-2">>
You try. It comes out wrong: much too low, much too warm, and with a good deal more of you in it than a lullaby needs. Every orb on the shelf glows pink at once.
<<speech "slimey">>Giggling. <<say "slimey" "That's not how //she// does it!">><</speech>>
But she's giggling herself round as she says it, and by the end of the giggle she's an orb, glowing a very pleased shade of pink.
<<speech _os>><<say _os "Please don't do that again, Father. Half of them will wake up wanting a feed.">><</speech>>
<<gain_xp "musk" 1>>
<<include "Nest_Dormancy_End">>
<</replace>><</choose_do>>
<span id="dorm-2"></span>At the far end of the chamber, the shelf gives up.
It doesn't snap. It peels, slowly, away from the wall under _sen's weight, starting at her end, and tips. And every orb on it rolls downhill at once: violet, amber, blue, a red one trailing steam, a green one buzzing. They pour off the end in a long glowing cascade and bounce, and scatter, all over the floor of the nest.
Not one of them wakes up.
Except the merged Workers, who split back into two on impact and look at each other in horror.
The basement light clicks on. <<name "evelyn">> is at the top of the stairs in her old STARFIRE T-shirt, hair everywhere, holding a mug she brought down out of pure habit.
<<speech "evelyn">><<say "evelyn" "What. Was. That.">><</speech>>
She comes down slowly, stepping over orbs. She looks at the shelf, hanging off the wall. At the two Workers. At _wan, still snoring on the floor, in a little ring of melted jelly. At _scn, who has rolled under the feeding trough.
<<speech "evelyn">><<say "evelyn" "Have they been sleeping on //one// shelf? All of them? Together?">><</speech>>
<<speech _os>><<say _os "It's how we've always done it, Mother.">><</speech>>
<<speech "evelyn">><<say "evelyn" "You've //always// done it for about a month.">> She sits down on the stairs next to the Officer and rubs her eyes, and then, because she's Evelyn, starts counting on her fingers. <<say "evelyn" "Right. Warriors get something that doesn't burn. Stone. Away from everyone. Scouts get a lip on the front, so they stop rolling off. Sirens get a basin. Sentinels sleep on the floor, where they can't bring anything down. Workers get cups, one each, so they stop //merging.// And Charmers get their own cubby where they can't copy anybody.">><</speech>>
<<speech _os>>Writing all of it down. <<say _os "And Officers?">><</speech>>
<<speech "evelyn">><<say "evelyn" "Officers get a shelf. A normal one. Because they behave.">><</speech>>
The Officer looks, very slightly, pleased.
<<speech "evelyn">>Getting up. <<say "evelyn" "Proper rest pods. One kind for each of you. The Workers can start growing them in the morning.">> She stops at the bottom step, looks down at Slimey's orb on the floor by your side, and her face goes soft. <<say "evelyn" "...Leave that one. She's fine where she is.">><</speech>>
<<set $flags.nestDormancySeen to true>>
<div class="results-block"><div class="results-header">The nest</div>
<div class="result-line result-gain">Rest pods: each drone type gets its own shelves. More room for them: Hive · Upgrades · Drone capacity.</div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% ============================================
NEST EVENT — Maintenance breeding (from development/drafts/events/nest/02-maintenance-breeding.twee)
Live once there are 2+ seedbeds and 15+ drones (setup.hubEvents
"maintenance", on the Seedbeds card). Sets $flags.nestMaintenanceSeen.
Story: the drones have switched conception off on their own. The
seedbeds are still being bred (for milk and the bond), but nobody's
carrying. They explain the three modes and ask Father what he wants.
Mechanic: $currentRun.colony.nest.conception (false = maintenance, no
seedbed births; <<advance_day>>, setup.overnight). The choice here sets
it; afterwards it's a switch on the Hive's Seedbeds screen.
The explainer is an Officer, else a Siren, else Slimey. The seedbed
asides use real seedbeds: a Nerethis if there is one, a Drakhari for
alcove seven if there is one.
============================================ %/
<<set _o to setup.someDrone(["Officer"])>>
<<set _si to setup.someDrone(["Siren"])>>
<<set _w to setup.someDrone(["Worker"])>>
<<if _o>><<set _es to setup.droneSpeaker("Officer", _o)>><<elseif _si>><<set _es to setup.droneSpeaker("Siren", _si)>><<else>><<set _es to "slimey">><</if>>
<<if _si>><<set _ss to setup.droneSpeaker("Siren", _si)>><</if>>
<<if _w>><<set _ws to setup.droneSpeaker("Worker", _w)>><<else>><<set _ws to "slimey">><</if>>
<<set _beds to $currentRun.colony.seedbeds>>
<<set _calm to _beds.find(function (b) { return b.species === "Nerethis"; }) || _beds[0]>>
<<set _loud to _beds.find(function (b) { return b.species === "Drakhari" && b !== _calm; })>>
<center>''THE SEEDBED CHAMBER''</center>
<<scene "events/nest/maintenance.webp">>
Late evening, and the seedbed chamber is doing what it always does: the slow wet rhythm of the breeding tendrils, soft sounds from the alcoves, <<if _si>>a Siren humming between the pods<<else>>a Worker humming between the pods<</if>>. A normal night in the nest.
Except nobody's pregnant.
The tendrils are working. The women in the pods are flushed and drowsy and pink with it, the bond doing what it does. But the bellies under the membrane are flat. Not one of them is rounding.
<<psi_to "They're not carrying.">>
A Worker tidying an alcove doesn't look up.
<<speech _ws>><<say _ws "Hmm? Oh, no. We turned that off.">><</speech>>
<<psi_to "You turned it off.">>
<<speech _ws>><<say _ws "Mm-hm.">> She straightens a fold in the membrane. Fussy. <<say _ws "We've got lots of sisters right now. And every new one's another mouth. But the mums still need their sessions, or their milk drops off and they get uncomfortable, and the bond goes thin.">> She beams at you. <<say _ws "It's not just for making drones, Dad. It's maintenance. Happy mums make better milk.">><</speech>>
<hr>
<<if _calm>>
In the end alcove, <<= _calm.name>> is lying back with her eyes half closed and one hand resting on her flat belly. Unhurried, comfortable, content. <<if _si>>A Siren sits beside her pod with two fingers on the membrane, reading her.<</if>>
<<speech _calm.id>><<say _calm.id "Mmm.">> To nobody in particular. <<say _calm.id "That's //nice.//">><</speech>>
<<if _si>><<speech _ss>><<say _ss "Good flow. Strong production. She's doing well.">><</speech>><</if>>
<</if>>
<<if _o>>
An Officer passing through sees you watching, and explains without being asked, because Officers like explaining things.
<<else>>
<<if _si>>The Siren<<else>><<name "slimey">><</if>> comes over to explain, very pleased to have been asked.
<</if>>
<<speech _es>><<say _es "There are three ways we do it.">> One finger. <<say _es "Production. Conception on. A drone from every mum, every night. That's what we do when the roster needs filling.">> A second finger. <<say _es "Maintenance. Conception off. The milk keeps flowing, the bond stays strong, no new mouths. That's what we're running now.">> A third. <<say _es "And recreational. Same as maintenance, but the mums book it themselves.">> Dry. <<say _es "There's a waiting list. It's long.">><</speech>>
<<psi_to "They ask for more?">>
<<if _loud>>
<<speech _es>><<say _es `"Some of them ask three times a day. " + _loud.name + " in alcove seven has asked fourteen times this week. We've said yes to eight."`>><</speech>>
<<speech _loud.id>>From alcove seven, muffled and indignant: <<say _loud.id "I can //hear// you!">><</speech>>
<<speech _es>>Without turning round. <<say _es "You were meant to. Your last request was at three in the morning.">><</speech>>
<<speech _loud.id>><<say _loud.id "I was //awake!//">><</speech>>
<<speech _es>><<say _es "You're always awake. That's the problem.">><</speech>>
<<else>>
<<speech _es>><<say _es "Some of them ask three times a day.">> A glance along the pods. <<say _es "We say yes to most of them.">><</speech>>
<</if>>
<hr>
Production when they need drones, maintenance when they don't, and the nest switching between them on its own. But it's your nest.
<<speech _es>><<say _es "We can turn it back on whenever you like. Just tell us. More sisters, or more milk?">><</speech>>
<<set $flags.nestMaintenanceSeen to true>>
<<choose_do "Leave it off for now" "maintenance · milk, no new seedbed drones">><<replace "#maint-scene">>
<<set $currentRun.colony.nest.conception to false>>
<<speech _ws>><<say _ws "Okay! Everything's running great. The mums are happy, the sisters are fed, and nobody's pregnant!">> Bouncing. <<say _ws "Isn't that //wonderful?//">><</speech>>
<<include "Nest_Maintenance_Result">>
<</replace>><</choose_do>>
<<choose_do "Turn it back on" "production · a drone from every seedbed each night">><<replace "#maint-scene">>
<<set $currentRun.colony.nest.conception to true>>
<<speech _ws>><<say _ws "Okay! More sisters!">> She claps. Down the row the tendrils change rhythm, and the pods glow a deeper pink. <<say _ws "I'll tell everyone to make room.">><</speech>>
<<include "Nest_Maintenance_Result">>
<</replace>><</choose_do>>
<span id="maint-scene"></span><div class="results-block"><div class="results-header">The nest</div>
<div class="result-line result-gain">Seedbeds: switch between production and maintenance breeding any time on the Hive's Seedbeds screen.</div>
<div class="result-line"><<if $currentRun.colony.nest.conception === false>>Maintenance now · the seedbeds still make milk, but carry no drones.<<else>>Production now · a drone from every seedbed each night.<</if>></div>
</div>
<<choose "← Back to the hive" "ColonyMap">>/% Nothing shows until at least one ui_* flag is unlocked %/\
<<if $memories and Object.keys($memories).some(function (k) { return k.startsWith("ui_") and $memories[k]; })>>\
<div class="sidebar-stats">\
/% --- The colony day (Federation). The coronation countdown is cut for
now (development/drafts/game/story/gameover/gameover-timeup.twee) --- %/\
<<if $memories.ui_day>>\
<div class="rail-block rail-clock">\
<div class="rail-kicker">Elysara colony</div>\
<div class="sidebar-header">Day <<= $gamestate.day>></div>\
</div>\
<</if>>\
/% --- Fed-Sec alert (Federation): state class drives the colour --- %/\
<<if $memories.ui_suspicion>>\
<<set _sus to $gamestate.suspicion>>\
<<if _sus lte 30>><<set _susState to "calm">><<set _susWord to "Calm">>\
<<elseif _sus lte 60>><<set _susState to "watched">><<set _susWord to "Watched">>\
<<elseif _sus lte 89>><<set _susState to "alert">><<set _susWord to "Alert">>\
<<else>><<set _susState to "raid">><<set _susWord to "Raid imminent">><</if>>\
<div @class="'rail-block rail-alert sus-' + _susState">\
<div class="sidebar-section">Fed-Sec alert</div>\
<div class="rail-alert-readout"><span class="rail-alert-value"><<= _sus>></span><span class="rail-alert-max">/ 100</span><span class="rail-alert-state"><<= _susWord>></span></div>\
<div class="sus-bar-container"><div class="sus-bar-fill" @style="'width:' + Math.min(100, _sus) + '%'"></div></div>\
</div>\
<</if>>\
/% --- S.L.I.M.E. glands: badge, level and XP bar per stat --- %/\
<<if $memories.ui_stats>>\
<div class="rail-block rail-glands">\
<div class="sidebar-section">S.L.I.M.E.</div>\
/% Each gland is focusable; hover or focus shows its tip (rail-tips.twee) %/\
<<for _stat range setup.statOrder>>\
<<set _s to $currentRun.stats[_stat]>><<set _need to setup.xpNeeded(_stat)>>\
<div @class="'gland gland-' + _stat + (_need ? '' : ' is-max')" tabindex="0" data-tip="stat" @data-key="_stat">\
<div class="gland-row"><span class="gland-badge"><<= _stat[0].toUpperCase()>></span><span class="gland-name"><<= setup.statInfo[_stat].name>></span><span class="gland-lv">Lv <<= _s.level>></span></div>\
<div class="gland-xp"><div class="xp-bar-wrap"><div class="xp-bar" @style="'width:' + setup.xpPercent(_stat) + '%'"></div></div><span class="gland-xp-num"><<if _need>><<= _s.xp>>/<<= _need>><<else>>MAX<</if>></span></div>\
</div>\
<</for>>\
</div>\
<</if>>\
/% --- Resources: a tile each, nightly change underneath --- %/\
<<if $memories.ui_resources>>\
<div class="rail-block rail-stock">\
<div class="sidebar-section">Resources</div>\
<div class="res-grid">\
<<for _res range setup.resourceOrder>>\
<<set _flow to setup.resourceFlow(_res)>>\
<div @class="'res-tile res-' + _res + (_res is 'milk' and $currentRun.colony.milkStarvationDays gt 0 ? ' is-starving' : '')" tabindex="0" data-tip="res" @data-key="_res">\
<img @src="'art/ui/icon/resource/' + _res + '.webp'" class="res-icon" alt="">\
<span class="res-value"><<= $currentRun.colony.resources[_res]>></span>\
<span class="res-name"><<= setup.resourceInfo[_res].name>></span>\
<<if _flow>><span @class="'res-rate' + (_flow.net lt 0 ? ' is-loss' : _flow.net gt 0 ? ' is-gain' : '')"><<= setup.signed(_flow.net)>>/day</span><<else>><span class="res-rate"> </span><</if>>\
</div>\
<</for>>\
</div>\
</div>\
<</if>>\
/% --- Colony: each row opens its Hive screen (scripts/hive-ui.twee) --- %/\
<<if $memories.ui_drones or $memories.ui_broodmares or $memories.ui_seedbeds or $memories.ui_thralls or $currentRun.colony.thralls.length gt 0>>\
<div class="rail-block rail-colony">\
<div class="sidebar-section">Colony</div>\
<<if $memories.ui_drones>>\
<div class="sidebar-stat sidebar-clickable colony-drones" id="drone-panel-btn"><img src="art/ui/icon/drone/drone-worker.webp" class="sidebar-icon" alt=""><span class="stat-label">Drones</span><span class="stat-value"><<= setup.droneTotal()>></span></div>\
<</if>>\
<<if $memories.ui_broodmares>>\
<div class="sidebar-stat sidebar-clickable colony-broodmares" id="broodmare-panel-btn"><img src="art/ui/icon/colony/broodmare.webp" class="sidebar-icon" alt=""><span class="stat-label">Broodmares</span><span class="stat-value"><<= $currentRun.colony.broodmares.length>></span></div>\
<</if>>\
<<if $memories.ui_seedbeds>>\
<div class="sidebar-stat sidebar-clickable colony-seedbeds" id="seedbed-panel-btn"><img src="art/ui/icon/colony/seedbed.webp" class="sidebar-icon" alt=""><span class="stat-label">Seedbeds</span><span class="stat-value"><<= $currentRun.colony.seedbeds.length>>/<<= $currentRun.colony.nest.seedbedCapacity>></span></div>\
<</if>>\
<<if $memories.ui_thralls or $currentRun.colony.thralls.length gt 0>>\
<div class="sidebar-stat sidebar-clickable colony-thralls" id="thrall-panel-btn"><img src="art/ui/icon/colony/thrall.webp" class="sidebar-icon" alt=""><span class="stat-label">Thralls</span><span class="stat-value"><<= $currentRun.colony.thralls.length>></span></div>\
<</if>>\
</div>\
<</if>>\
</div>\
<</if>>/* --- Favicon --- */
<<script>>
(function() {
var link = document.querySelector("link[rel~='icon']");
if (!link) {
link = document.createElement('link');
link.rel = 'icon';
document.head.appendChild(link);
}
link.type = 'image/webp';
link.href = 'art/ui/brand/favicon.webp';
})();
<</script>>
/* ============================================
VARIABLE INITIALIZATION
Objects are the single source of truth.
============================================ */
/* --- Setup Constants (configurable for testing) ---
Species -> drone type is setup.speciesMap (header/data/01-drones). */
<<set setup.totalDays to 100>>
/* Starting seedbed capacity. Each Seedbed Alcoves tier adds +2 (5 tiers). */
<<set setup.seedbedBase to 5>>
<<set setup.resourceRates to {
milkPerBroodmare: 10,
milkPerSeedbed: 10,
milkPerThrall: 3,
resinPerWorker: 1,
milkPerDrone: 1,
starvationGameOverDays: 3
}>>
<<set setup.droneCapBase to {
"Worker": 10, "Charmer": 5, "Scout": 5, "Siren": 5, "Warrior": 3, "Sentinel": 3, "Officer": 1
}>>
<<set setup.breedingImageCount to {
"aetheri": 4, "drakhari": 3, "faelix": 4, "gemlith": 2,
"human": 7, "nerethis": 4, "vyx": 1
}>>
/* --- Player Names --- */
<<set $names to {
player: ""
}>>
/* --- Game State --- */
<<set $gamestate to {
day: 0,
daysUntilCoronation: setup.totalDays,
suspicion: 0,
lastSusEvent: 0
}>>
/* --- Flags (track one-time events and crisis triggers) --- */
<<set $flags to {
tutorialComplete: false,
councilFirstSeen: false,
councilSecondSeen: false,
natsukiConverted: false,
nestDormancySeen: false,
nestMaintenanceSeen: false,
/* Every drone type met: the whole-hive scene (events/drone/drone_introductions.twee) */
wholeHiveSeen: false,
chapter1Complete: false,
/* The end-of-content screen (Content_End) has been shown */
contentEndSeen: false,
fieldTripDone: false,
staffRoomDone: false,
crisis30Done: false,
crisis60Done: false,
crisis90Done: false,
/* --- Suburb mission completion --- */
neighboursDone: false,
streetSweepDone: false,
bathhouseDone: false,
clinicDone: false,
gymDone: false,
parkTrailDone: false,
gameNightDone: false,
/* Derived — set true when all claimable suburb missions are done */
suburbMissionsComplete: false,
/* Evelyn's one-time explanation on the pre-mission screen */
prepTutorialSeen: false,
/* Safehouse event after the Neighbours: meeting the first Charmer */
charmerMet: false,
/* Evelyn events (characters/evelyn/evelyn-events.twee) */
evelynMorningSeen: false,
evelynNestSeen: false,
evelynTrainingSeen: false,
evelynCoralSeen: false,
/* Coral reached Meridia during the clinic, or got away: Meridia is watching (council events) */
meridiaWatchful: false,
/* Free action cooldown — day Evelyn was last bred (-1 = never) */
evelynBredDay: -1
}>>
/* --- Hub State --- */
<<set $hubTab to "colony">>
<<set $hubSelectedZone to "suburbs">>
<<set $hubSelectedMission to "">>
/* Safehouse events opened today: event id -> day (scripts/hub-data.twee) */
<<set $hubSeen to {}>>
<<set $hiveSub to "broodmares">>
<<set $prepMission to "">>
/* Last night's report from <<advance_day>>, shown by Day_Summary */
<<set $lastNight to null>>
/* The running mission, for the in-mission HUD (setup.missionBegin) */
<<set $mission to null>>
/* The last finished op, for Mission_Report (setup.missionFinish), and
what Mission_Resolve decided for its captures */
<<set $lastMission to null>>
<<set $lastResolve to null>>
/* --- Current Game (stats, colony, conversions) --- */
<<set $currentRun to {
stats: {
strength: { level: 1, xp: 0 },
lurk: { level: 1, xp: 0 },
influence: { level: 1, xp: 0 },
musk: { level: 1, xp: 0 },
endowment: { level: 1, xp: 0 },
/* XP per level: setup.xpThresholds (header/core/rail-tips.twee) */
maxLevel: 5
},
colony: {
drones: { Worker: 0, Warrior: 0, Scout: 0, Siren: 0, Charmer: 0, Sentinel: 0, Officer: 0 },
droneRoster: [],
/* Drones due at the next dawn from tonight's breeding: [{ type, mother, name }]
(setup.queueBirth; born by <<advance_day>>) */
pendingBirths: [],
seedbeds: [],
broodmares: [],
thralls: [],
nestSites: ["Safehouse Basement"],
resources: {
milk: 15,
resin: 0,
materials: 0
},
nest: {
seedbedCapacity: setup.seedbedBase, /* the ONLY seedbed cap — raised by Seedbed Alcoves upgrades */
level: 1,
breedingChamber: false
},
milkStarvationDays: 0
},
/* Items for tomorrow's Morning Bulletin — queue with setup.bulletin() */
bulletin: [],
converted: {
natsuki: false,
kira: false,
miri: false,
prisma: false,
valkra: false,
meridia: false,
lysara: false,
queen: false
}
}>>
/* --- Memories (unlock choices & UI as you progress) --- */
<<set $memories to {
/* --- UI Unlocks (sidebar elements) --- */
ui_day: false,
ui_stats: false,
ui_suspicion: false,
ui_drones: false,
ui_broodmares: false,
ui_seedbeds: false,
ui_thralls: false,
ui_resources: false,
drone_worker: false,
drone_warrior: false,
drone_siren: false,
drone_scout: false,
drone_charmer: false,
drone_sentinel: false,
drone_officer: false,
/* --- Story Memories --- */
meridiaConverted: false,
lysaraConverted: false,
queenConverted: false,
valkraDefeated: false,
natsukiRecruited: false,
nestVisited: false,
corridorCDiscovered: false,
coronationReached: false,
firstBreedingComplete: false,
allLeadersConverted: false
}>>/% Age gate — shown before anything else. The \ joins keep SugarCube from adding <br>s between the blocks. %/\
<div class="age-gate">\
<div class="age-gate-title">⚠ ADULTS ONLY (18+)</div>\
<<if setup.version>><div class="age-gate-body" style="opacity:.6;font-size:.85em">Version <<= setup.version>></div><</if>>\
<div class="age-gate-body">\
<p>This game contains explicit sexual content and adult themes, and is intended for adults only.</p>\
<p>By continuing, you confirm that you are at least ''18 years old'' (or the age of majority in your jurisdiction, whichever is greater) and that it is legal for you to view adult content where you live.</p>\
<p>If you are under 18, or if adult content is not legal where you are, please leave now.</p>\
</div>\
<div class="age-gate-actions">[[I am 18 or older — Enter|Title]]</div>\
<div class="age-gate-note">//This is a work of fiction. All characters are adults.//</div>\
</div>/% Title card over the orbit art (styles/05-screens/title.twee). %/\
<div class="title-screen">\
<div class="title-card">\
<img src="art/ui/brand/banner.webp" alt="Stellar Conquest: The Slime of Elysara" class="title-banner">\
<div class="title-tagline">//A game about saving humanity. One womb at a time.//</div>\
<div class="title-actions">[[Begin|Intro_Name]]</div>\
</div>\
</div>Ban10/* ============================================
<<advance_day>>
In order:
1. clock: day +1
2. suspicion decays by setup.susDecayPerDay (3)
3. resources: milk from broodmares + seedbeds, resin from Workers,
minus 1 milk per drone; 3 days starving = game over
4. every seedbed births a drone (unless conception is switched off,
$currentRun.colony.nest.conception === false); every broodmare
births one (if she wasn't already bred today)
5. game-over: starvation (step 3), suspicion 100, coronation reached;
only the first one found is shown
Leaves a report of the night in $lastNight for the Day_Summary
screen, and moves the queued bulletin items into it.
============================================ */
<<widget "advance_day">>
/* Overnight report — filled in as each step runs */
<<set _report to { from: $gamestate.day, susBefore: $gamestate.suspicion, births: [] }>>
/* 1. Clock */
<<set $gamestate.day to $gamestate.day + 1>>
/* 2. Suspicion decay */
<<set $gamestate.suspicion to Math.max(0, $gamestate.suspicion - setup.susDecayPerDay)>>
/* 3. Resources — counted before today's births */
<<set _milkGain to ($currentRun.colony.broodmares.length * setup.resourceRates.milkPerBroodmare) + ($currentRun.colony.seedbeds.length * setup.resourceRates.milkPerSeedbed)>>
<<set _milkCost to setup.droneTotal() * setup.resourceRates.milkPerDrone>>
<<set $currentRun.colony.resources.resin += ($currentRun.colony.drones["Worker"] || 0) * setup.resourceRates.resinPerWorker>>
<<set $currentRun.colony.resources.milk += (_milkGain - _milkCost)>>
<<set _report.milkProduced to _milkGain>>
<<set _report.milkDrunk to _milkCost>>
<<set _report.resinGained to ($currentRun.colony.drones["Worker"] || 0) * setup.resourceRates.resinPerWorker>>
/* Starvation: milk can't go below zero; count the days it would have */
<<if $currentRun.colony.resources.milk lt 0>>
<<set $currentRun.colony.resources.milk to 0>>
<<set $currentRun.colony.milkStarvationDays += 1>>
<<else>>
<<set $currentRun.colony.milkStarvationDays to 0>>
<</if>>
/* <<goto>> is deferred, so a later one in this run would override it:
_gameOverTo records the first game-over and step 5 only adds one if
there isn't one yet */
<<set _gameOverTo to "">>
<<if $currentRun.colony.milkStarvationDays gte setup.resourceRates.starvationGameOverDays>>
<<set _gameOverTo to "GameOver_Starvation">>
<</if>>
/* 4. Births — last night's breeding first (setup.queueBirth), then each
seedbed, then each broodmare (once a day) */
<<set _rosterStart to $currentRun.colony.droneRoster.length>>
<<set _pbMothers to []>>
<<for _pb range ($currentRun.colony.pendingBirths || [])>>
<<run setup.addDrone(_pb.type, _pb.mother, _pb.name || undefined)>>
<<run _pbMothers.push(_pb.mother)>>
<</for>>
<<set $currentRun.colony.pendingBirths to []>>
/* A woman sealed tonight is already carrying tonight's drone (above) */
/* ...unless the nest has switched conception off (Nest_Maintenance):
seedbeds still make milk, they just don't carry */
<<for _sb range ($currentRun.colony.nest.conception === false ? [] : $currentRun.colony.seedbeds)>>
<<if not _pbMothers.includes(_sb.name)>>
<<run setup.addDrone(setup.droneTypeFor(_sb.id, _sb.species), _sb.name)>>
<</if>>
<</for>>
<<for _bm range $currentRun.colony.broodmares>>
<<run setup.breedBroodmare(_bm)>>
<</for>>
<<set _report.births to $currentRun.colony.droneRoster.slice(_rosterStart).map(function (d) { return { type: d.type, mother: d.mother }; })>>
/* Report done: the bulletin queue moves into it */
<<set _report.to to $gamestate.day>>
<<set _report.susAfter to $gamestate.suspicion>>
<<set _report.starvingDays to $currentRun.colony.milkStarvationDays>>
<<set _report.bulletin to ($currentRun.bulletin || [])>>
<<set $currentRun.bulletin to []>>
<<set $lastNight to _report>>
/* 5. Game over: the first one found wins */
<<if _gameOverTo is "" and $gamestate.suspicion gte 100>>
<<set _gameOverTo to "GameOver_Suspicion">>
<</if>>
<<if _gameOverTo isnot "">>
<<goto _gameOverTo>>
<</if>>
<</widget>>/* ============================================
<<gain_drones "Type" count ["Mother"]>> add drones, auto-named
<<gain_drones count>> shorthand for Workers
<<gain_named_drone "Name" "Type" ["Mother"]>> a special story drone
<<lose_drones "Type" count>> remove drones
<<drone_line "gain|loss" "Type" "text">> (internal) the result line
Passing a mother credits her broodmare record (dronesProduced).
============================================ */
/* --- Result line: icon, text, then the colony total ---
_args[0] result kind (gain/loss), _args[1] drone type, _args[2] text
with a {type} placeholder that becomes the coloured type name. */
<<widget "drone_line">><<set _lineType to _args[1]>><<set _lineParts to _args[2].split("{type}")>><div @class="'result-line result-' + _args[0]"><img @src="setup.droneIcon(_lineType)" class="result-drone-icon"> <<= _lineParts[0]>><span @class="'drone-' + _lineType.toLowerCase()"><<= _lineType>></span><<= _lineParts[1]>> <span class="result-total">(Total: <<= setup.droneTotal()>>)</span></div><</widget>>
/* --- Gain (auto-named from the pool) ---
<<gain_drones "Worker" 2>> no mother tracked
<<gain_drones "Worker" 2 "Evelyn">> credits Evelyn */
<<widget "gain_drones">>
<<if _args.length gte 2>><<set _droneType to _args[0]>><<set _droneCount to Number(_args[1])>><<else>><<set _droneType to "Worker">><<set _droneCount to Number(_args[0])>><</if>>
<<set _mother to (_args.length gte 3) ? _args[2] : "">>
<<for _i to 0; _i lt _droneCount; _i++>><<run setup.addDrone(_droneType, _mother)>><</for>>
<<if _mother>>
<<set _bm to $currentRun.colony.broodmares.find(function (b) { return b.name === _mother; })>>
<<if _bm>><<set _bm.dronesProduced += _droneCount>><</if>>
<</if>>
<<run setup.sfx.event("gain-drone")>>
<<drone_line "gain" _droneType `"+" + _droneCount + " {type} drone" + (_droneCount gt 1 ? "s" : "")`>>
<</widget>>
/* --- Named drone (special story drones) ---
<<gain_named_drone "Slimey" "Worker">> no mother
<<gain_named_drone "Slimey" "Worker" "Evelyn">> credits Evelyn */
<<widget "gain_named_drone">>
<<set _name to _args[0]>><<set _type to _args[1]>><<set _mother to (_args.length gte 3) ? _args[2] : "">>
<<run setup.addDrone(_type, _mother, _name)>>
<<if _mother>>
<<set _bm to $currentRun.colony.broodmares.find(function (b) { return b.name === _mother; })>>
<<if _bm>><<set _bm.dronesProduced += 1>><</if>>
<</if>>
<<run setup.sfx.event("gain-drone")>>
<<drone_line "gain" _type `"+1 {type} drone: <strong>" + _name + "</strong>"`>>
<</widget>>
/* --- Loss --- */
<<widget "lose_drones">>
<<if _args.length gte 2>><<set _droneType to _args[0]>><<set _droneCount to _args[1]>><<else>><<set _droneType to "Worker">><<set _droneCount to _args[0]>><</if>>
<<set $currentRun.colony.drones[_droneType] -= _droneCount>>
<<run setup.sfx.event("loss-drone")>>
<<drone_line "loss" _droneType `"-" + _droneCount + " {type} drone" + (_droneCount gt 1 ? "s" : "") + " lost"`>>
<</widget>>/* ============================================
TEXT FORMATTING
<<slime "BREED HER NOW">> Slime instinct (red, bold, urgent)
<<think "This is ridiculous.">> Human thought (grey, italic)
<<psi "Can you hear me?">> Psychic outgoing (violet, italic)
<<psiin "Yes, I hear you.">> Psychic incoming (orchid pink, italic)
<<sys "ENDOWMENT +1 XP">> System message (gold console line)
<<xp "ENDOWMENT +1">> XP gain (green)
<<sus "+2 SUSPICION">> Suspicion gain (red)
CHARACTER DIALOGUE
<<say "meridia" "Colony health is excellent.">> class say-meridia
<<say "gemlith" "Isn't she lovely?">> class say-gemlith
CHARACTER NAMES (inline, coloured)
<<name "meridia">> prints "Meridia" with class name-meridia
New character? Add one line to styles/03-text/voices.twee:
.say-newname, .name-newname { --voice: var(--species-vyx); }
============================================ */
/* --- Text formatting --- */
<<widget "slime">><span class="slime-instinct">_args[0]</span><</widget>>
<<widget "think">><span class="human-thought">_args[0]</span><</widget>>
<<widget "psi">><span class="psychic-out">//<<= _args[0]>>//</span><</widget>>
<<widget "psiin">><span class="psychic-in">//<<= _args[0]>>//</span><</widget>>
<<widget "sys">><span class="system-msg"><<= _args[0]>></span><</widget>>
<<widget "xp">><span class="xp-gain"><<= _args[0]>></span><</widget>>
<<widget "sus">><span class="suspicion-gain"><<= _args[0]>></span><</widget>>
/* --- Dialogue: the first argument becomes the class (say-<name>) --- */
<<widget "say">><<print '<span class="say-' + _args[0] + '">"' + _args[1] + '"</span>'>><</widget>>
/* --- Names: capitalises the id and colours it (name-<name>) --- */
<<widget "name">><<print '<span class="name-' + _args[0] + '">' + _args[0].charAt(0).toUpperCase() + _args[0].slice(1) + '</span>'>><</widget>>/* ============================================
<<results>> ... <</results>> the end-of-mission block
<<gain_drones "Worker" 1>>
<<gain_broodmare "evelyn">>
============================================ */
<<widget "results" container>><div class="results-block"><div class="results-header">Results</div>_contents</div><</widget>>
/* ============================================
<<gain_xp "stat" amount>>
Adds XP and levels up when the threshold is met (stat: strength,
lurk, influence, musk, endowment). Leftover XP carries over.
============================================ */
/* The card HTML and the level-up maths: setup.gainXp / setup.gainSus
(header/core/gain-notices.twee). Styles: styles/03-text/notices.twee. */
<<widget "gain_xp">><<print setup.gainXp(_args[0], _args[1])>><</widget>>
/* --- <<gain_sus amount ["why"]>> suspicion as a results line.
In a mission the reason is also listed on the mission report. --- */
<<widget "gain_sus">><<print setup.gainSus(_args[0], _args[1])>><</widget>>
/* --- <<inline_sus amount ["why"]>> same card, not logged to the mission report --- */
<<widget "inline_sus">><<print setup.gainSus(_args[0], _args[1], false)>><</widget>>
/* ============================================
BROODMARES
<<gain_broodmare "meridia">> adds her to the nest (results line)
<<breed_broodmare "meridia">> call during sex scenes: one drone,
at most once a day; prints nothing
============================================ */
<<widget "gain_broodmare">><<run setup.sfx.event("gain-capture")>><<set _char to setup.characters[_args[0]]>><<run $currentRun.colony.broodmares.push(setup.captive(_args[0], { dronesProduced: 0, lastBredDay: -1 }))>><div class="result-line result-broodmare"><img src="art/ui/icon/colony/broodmare.webp" class="result-drone-icon"> New Broodmare: <strong><<= _char.name>></strong> (<<= _char.species>>)</div><</widget>>
<<widget "breed_broodmare">><<set _bm to $currentRun.colony.broodmares.find(function (b) { return b.id === _args[0]; })>><<if _bm>><<run setup.breedBroodmare(_bm)>><</if>><</widget>>
/* ============================================
SEEDBEDS
<<gain_seedbed "vyx-civ-3">> seals her in a pod, if there is room
============================================ */
<<widget "gain_seedbed">><<set _char to setup.characters[_args[0]]>><<set _sbList to $currentRun.colony.seedbeds>><<set _sbCap to $currentRun.colony.nest.seedbedCapacity>><<if _sbList.length lt _sbCap>><<run _sbList.push(setup.captive(_args[0]))>><<run setup.sfx.event("gain-capture")>><div class="result-line result-seedbed"><img src="art/ui/icon/colony/seedbed.webp" class="result-drone-icon"> New Seedbed: <strong><<= _char.name>></strong> (<<= _char.species>>) <span class="result-total">(<<= _sbList.length>>/<<= _sbCap>>)</span></div><<else>><<run setup.sfx.event("fed-deny")>><div class="result-line result-loss"><span class="result-icon">▲</span> Nest full! Cannot add <<= _char.name>> as seedbed. Upgrade needed.</div><</if>><</widget>>
/* ============================================
THRALLS — left in the colony as loyal agents
<<gain_thrall "aetheri-civ-2">> results line
<<bred "human-civ-1">> inline notice
<<bred_multi "Human" 3>> up to 3 random background women of
that species not already captured
============================================ */
<<widget "gain_thrall">><<run setup.sfx.event("gain-capture")>><<set _char to setup.characters[_args[0]]>><<run $currentRun.colony.thralls.push(setup.captive(_args[0], { role: _char.role }))>><div class="result-line result-thrall"><img src="art/ui/icon/colony/thrall.webp" class="result-drone-icon"> New Thrall: <strong><<= _char.name>></strong> (<<= _char.species>>)</div><</widget>>
<<widget "bred">><<run setup.sfx.event("gain-capture")>><<set _char to setup.characters[_args[0]]>><<run $currentRun.colony.thralls.push(setup.captive(_args[0], { role: _char.role }))>><span class="inline-bred">♣ <<= _char.name>> (<<= _char.species>>) — thrall acquired</span><</widget>>
<<widget "bred_multi">>
<<set _species to _args[0]>><<set _count to _args[1]>>
/* Background women of this species who are neither thralls nor seedbeds */
<<set _available to Object.keys(setup.characters).filter(function (id) {
var c = setup.characters[id];
var colony = State.variables.currentRun.colony;
var held = function (list) { return list.some(function (x) { return x.id === id; }); };
return c.species === _species && c.tier === "background" && !held(colony.thralls) && !held(colony.seedbeds);
})>>
<<set _toAdd to Math.min(_count, _available.length)>>
<<for _i to 0; _i lt _toAdd; _i++>>
<<set _pick to random(0, _available.length - 1)>>
<<set _charId to _available[_pick]>>
<<run $currentRun.colony.thralls.push(setup.captive(_charId, { role: setup.characters[_charId].role }))>>
<<run _available.splice(_pick, 1)>>
<</for>>
<<if _toAdd gt 0>><<run setup.sfx.event("gain-capture")>><</if>>
<span class="inline-bred">♣ +<<= _toAdd>> <<= _species>> thralls acquired</span>
<</widget>>/* ============================================
<<scene "path" [layout] [location]>>
Image from art/scenes/<path>. After the path, "full", "left" or
"right" sets the layout; any other text is the location chip, a
Federation tag in the image's bottom-left corner.
<<scene "intro/colony-establishing-v3.webp">> full width
<<scene "intro/council-chamber-v3.webp" "right">> float right
<<scene "intro/elysara-orbit.webp" "Elysara · high orbit">> with a chip
============================================ */
<<widget "scene">><<set _layout to "full">><<set _where to "">><<for _sa range _args.slice(1)>><<if ["full", "left", "right"].includes(_sa)>><<set _layout to _sa>><<else>><<set _where to _sa>><</if>><</for>><div @class="'scene scene-' + _layout"><img @src="'art/scenes/' + _args[0]" @alt="_where || 'scene'"><<if _where>><span class="scene-chip"><<= _where>></span><</if>></div><</widget>>
/* ============================================
<<stare "path" "speaker" ["alt text"]>>
A cinematic close-up for a character's defining look. A 3:1 strip
that overhangs the text column a little, and when it scrolls into
view the screen dims, the black "lids" part and the eyes come into
focus. The glow takes the speaker's voice colour (03-text/voices).
Art: a 3:1 strip, brow to just under the eyes, eyes ~62% down.
Styles: 03-text/stare.twee Script: scripts/stare.twee
<<stare "council/council-meridia-stare.webp" "meridia">>
============================================ */
<<widget "stare">><<set _stWho to _args[1] || "">><<set _stAlt to _args[2] || (_stWho ? _stWho.toUpperFirst() + "'s eyes, close up, holding your gaze" : "A close-up stare")>><div @class="'stare name-' + _stWho"><span class="stare-dim" aria-hidden="true"></span><img class="stare-img" @src="'art/scenes/' + _args[0]" @alt="_stAlt"><span class="stare-veil" aria-hidden="true"></span><span class="stare-lid stare-lid-top" aria-hidden="true"></span><span class="stare-lid stare-lid-bottom" aria-hidden="true"></span></div><</widget>>
/* ============================================
<<breeding "species" [layout]>>
A random image for the species, from
art/scenes/breeding/<species>-1.webp ... <species>-N.webp,
where N is setup.breedingImageCount[species] (StoryInit).
<<breeding "nerethis">> full width
<<breeding "aetheri" "right">> float right
============================================ */
<<widget "breeding">><<set _species to _args[0]>><<set _num to random(1, setup.breedingImageCount[_species] || 1)>><<set _layout to (_args.length >= 2) ? _args[1] : "full">><div @class="'scene scene-' + _layout"><img @src="'art/scenes/breeding/' + _species + '-' + _num + '.webp'" alt="breeding scene"></div><</widget>><<widget "line">><<print setup.bubbleOpen(_args[0], _args[2]) + '<span class="line-quote">"' + _args[1] + '"</span></div></div></div>'>><</widget>>
<<widget "speech" container>><<print setup.bubbleOpen(_args[0], _args[1]) + _contents + '</div></div></div>'>><</widget>>
<<widget "psi_to">><div class="psi-link psi-link--out"><span class="psi-link-label">Psychic · you<<if _args[1]>> → <<= setup.speaker(_args[1]).name>><</if>></span><span class="psi-link-text"><<= _args[0]>></span></div><</widget>>
<<widget "psi_from">><div @class="'psi-link psi-link--in say-' + _args[0]"><span class="psi-link-label">Psychic · <span class="psi-link-who"><<= setup.speaker(_args[0]).name>></span></span><span class="psi-link-text"><<= _args[1]>></span></div><</widget>>
<<widget "thought">><div class="thought-note"><span class="thought-label">You · thinking</span><span class="thought-text"><<= _args[0]>></span></div><</widget>><<if not $hubTab>><<set $hubTab to "colony">><<elseif $hubTab is "safehouse">><<set $hubTab to "hive">><</if>>
<<if not $hubSelectedZone>><<set $hubSelectedZone to "suburbs">><</if>>
<div @class="'hub-layout hub-layout--' + ($hubTab is 'hive' ? 'safehouse hub-layout--hive' : $hubTab)">
<<hub_html setup.hubView.tabs()>>
<<if $hubTab is "hive">><<hub_html setup.hiveView()>><<else>><<hub_html setup.hubView.colony()>><</if>>
</div><<set _r to $lastNight>>
<<set _v to setup.daySummary(_r)>>
<<set _fmt to function (n) { return (n > 0 ? "+" : n < 0 ? "−" : "±") + Math.abs(n); }>>
<div class="day-summary">
<header class="day-summary-head">
<h1 class="day-summary-title">Day <<= _r.from>> <span class="day-summary-arrow">→</span> Day <<= _r.to>></h1>
<div class="day-summary-sub">Dawn over the colony. The Federation wakes up. So does the nest.</div>
</header>
<div class="day-summary-cols">
/* ---------- The Federation's morning ---------- */
<section class="fed-panel fed-panel--scan day-bulletin" aria-label="Morning bulletin">
<div class="bulletin-top"><span class="fed-label">Colony bulletin · 06:00</span><span class="bulletin-code"><<= _v.code>></span></div>
<div class="bulletin-masthead">
<div><div class="bulletin-title">Morning Bulletin</div><div class="bulletin-org">Aetheri Federation · Elysara colony</div></div>
<span class="fed-crest" aria-hidden="true"></span>
</div>
<div class="fed-label fed-label--gold">Colony day</div>
<div class="bulletin-countdown"><<= $gamestate.day>></div>
<<for _item range _v.bulletin>>
<div class="bulletin-item">
<div class="fed-label"><<= _item.dept>></div>
<div class="bulletin-text"><<= _item.text>></div>
</div>
<</for>>
</section>
/* ---------- What really happened ---------- */
<section class="nest-panel day-overnight" aria-label="The nest overnight">
<div class="nest-label">The nest · overnight</div>
<div class="overnight-headline"><<= _v.headline>></div>
<<if _r.births.length gt 0>>
<<run setup.sfx.event("day-birth", { repeat: _r.births.length, gap: 0.16, delay: 0.4 })>>
<div class="overnight-hatch">
<<for _b range _r.births>>
/* A type you haven't met yet ($memories.drone_<type>) is a mystery orb */
<<set _known to $memories["drone_" + _b.type.toLowerCase()]>>
<<if _known>>
<div class="overnight-drone" @title="_b.type + (_b.mother ? ' — from ' + _b.mother : '')">
<div class="orb overnight-orb" @style="'--orb: var(--drone-' + _b.type.toLowerCase() + ')'"><img @src="setup.droneIcon(_b.type)" alt=""></div>
<span class="overnight-drone-type"><<= _b.type>></span>
<<if _b.mother>><span class="overnight-drone-mother"><<= _b.mother>></span><</if>>
</div>
<<else>>
<div class="overnight-drone is-unknown" @title="'Something new' + (_b.mother ? ' — from ' + _b.mother : '')">
<div class="orb overnight-orb" style="--orb: var(--nest-dim)"><img src="art/ui/icon/drone/drone-locked.webp" alt=""></div>
<span class="overnight-drone-type">Something new</span>
<<if _b.mother>><span class="overnight-drone-mother"><<= _b.mother>></span><</if>>
</div>
<</if>>
<</for>>
</div>
<</if>>
<div class="overnight-row">
<div class="overnight-row-label">Milk</div>
<div class="overnight-row-body">
<div class="milk-drops" @aria-label="'Milk: ' + _r.milkProduced + ' produced, ' + _r.milkDrunk + ' drunk'" role="img">
<<for _d range _v.drops>><span @class="'milk-drop milk-drop--' + _d"></span><</for>>
</div>
<div class="overnight-note"><<= _fmt(_r.milkProduced)>> produced · −<<= _r.milkDrunk>> drunk by the drones · net <strong @class="_v.milkNet lt 0 ? 'is-loss' : 'is-gain'"><<= _fmt(_v.milkNet)>></strong><<if _v.milkUnit gt 1>> <span class="overnight-scale">(each drop = <<= _v.milkUnit>>)</span><</if>></div>
<<if _r.starvingDays gt 0>>
<div class="overnight-warning">The nest is starving — day <<= _r.starvingDays>> of <<= setup.resourceRates.starvationGameOverDays>>. Breed, or the hive collapses.</div>
<</if>>
</div>
</div>
<<if $memories.ui_seedbeds>>
<div class="overnight-row">
<div class="overnight-row-label">Pods</div>
<div class="overnight-row-body">
<div class="overnight-pods" role="img" @aria-label="_v.podsFilled + ' of ' + _v.podsCap + ' seedbed pods filled'">
<<for _p range _v.podsCap>><span @class="'overnight-pod' + (_p lt _v.podsFilled ? ' is-filled' : '')"></span><</for>>
</div>
<div class="overnight-note"><<= _v.podsFilled>> / <<= _v.podsCap>> · <<= _v.podsFilled gt 0 ? "gestating" : "empty">></div>
</div>
</div>
<</if>>
<<if $memories.ui_resources>>
<div class="overnight-row">
<div class="overnight-row-label">Resin</div>
<div class="overnight-row-body"><div class="overnight-note"><img src="art/ui/icon/resource/resin.webp" class="sidebar-icon-sm" alt=""> <strong class="is-gain"><<= _fmt(_r.resinGained)>></strong> from Worker glands</div></div>
</div>
<</if>>
<div class="overnight-wake"><<link `"Wake up — Day " + _r.to + " →"` _wakeTo>><</link>></div>
</section>
</div>
</div>/% Between-Day Transition — advances the day, then shows the Day_Summary
screen. Its Wake up button goes to ColonyMap (or Content_End).
The day only advances once per visit: a browser reload re-renders this
passage on the same turn, and must not run the night a second time. %/
<<if $flags._dayEndTurn isnot State.turns>>
<<set $flags._dayEndTurn to State.turns>>
<<run setup.missionEnd()>>
/% Wake up on the Colony tab, ready to plan the next operation %/
<<set $hubTab to "colony">><<set $hubSelectedMission to "">>
<<advance_day>>
/% --- Derived flag: every claimable suburb mission done (MVP end of content) --- %/
<<set $flags.suburbMissionsComplete to setup.zoneState(setup.zone("suburbs")).claimed gte setup.zoneState(setup.zone("suburbs")).total>>
<</if>>
/% advance_day may already have routed to a game-over (suspicion cap or
milk starvation). Those win, so show nothing. %/
<<if $gamestate.suspicion lt 100 and $currentRun.colony.milkStarvationDays lt setup.resourceRates.starvationGameOverDays>>
/% The end of this build's content fires once, the morning after the last claim %/
<<if $flags.suburbMissionsComplete and not $flags.contentEndSeen>>
<<set _wakeTo to "Content_End">>
<<else>>
<<set _wakeTo to "ColonyMap">>
<</if>>
<<include "Day_Summary">>
<</if>><<print setup.missionReport()>><<if not $flags._resolveTargets or $flags._resolveTargets.length is 0>>
<div class="mres"><p class="mres-sub">Nobody left to decide.</p><p><<link "Continue →" `$flags._resolveReturn or "DayEnd_Transition"`>><</link>></p></div>
<<else>>
<<print setup.resolveView()>>
<</if>><<widget "claim">><<run setup.missionTarget(_args[0], "claimed", "Claimed · bonding")>><</widget>>
/* <<claim_bred "sadie">>: claimed, and her drone is due at dawn (setup.queueBirth) */
<<widget "claim_bred">><<run setup.missionTarget(_args[0], "claimed", "Claimed · carrying")>><<run setup.queueBirth(_args[0])>><</widget>>
<<widget "target">><<run setup.missionTarget(_args[0], _args[1], _args[2])>><</widget>>
<<widget "mission_alarm">><<run setup.missionAlarm(_args[0], _args[1])>><</widget>>
<<widget "mission_tick">><<run setup.missionTick()>><</widget>>
<<widget "mission_end">><<run setup.missionEnd()>><</widget>>
<<widget "mission_finish">><<run setup.missionFinish()>><</widget>>
/* <<take_todo "Celestine · Influence through the trance" "beats to cover">>:
a marked placeholder for a scene still to be written (the author fills it
in later). Plays as a short dashed note so the mission stays playable. */
<<widget "take_todo">><div class="take-todo" role="note"><span class="take-todo-label">Scene to write</span><span class="take-todo-what"><<= _args[0]>></span><<if _args[1]>><span class="take-todo-beats"><<= _args[1]>></span><</if>></div><</widget>>
<<widget "instinct">><div class="instinct-bubble" role="note"><span class="instinct-label">Instinct</span><span class="instinct-text"><<= _args[0]>></span></div><</widget>>
/* The label is the link; CSS stretches it over the whole card.
Arguments after the note are chips. */
<<widget "choose">><<set _cc to _args.slice(3)>><<set _ct to setup.choiceTheme(_cc)>><<choice_card "choice" _ct>><<print setup.choiceNum(_ct)>><span class="choice-body"><span class="choice-label"><<link _args[0] _args[1]>><</link>></span><<if _args[2]>><span class="choice-note"><<= _args[2]>></span><</if>></span><<print setup.choiceChips(_cc)>><</choice_card>><</widget>>
/* Same card, but runs its contents on click instead of going to a passage
(for in-passage reveals: <<choose_do "Musk" "note">><<replace "#x">>…<</replace>><</choose_do>>) */
<<widget "choose_do" container>><<set _cdoId to "cdo-" + (setup.cdoSeq = (setup.cdoSeq || 0) + 1)>><<set _cc to _args.slice(2)>><<set _ct to setup.choiceTheme(_cc)>><<choice_card "choice" _ct `{ "data-cdo": _cdoId }`>><<print setup.choiceNum(_ct)>><span class="choice-body"><span class="choice-label"><<capture _contents, _cdoId>><<link _args[0]>><<run setup.spendChoices(_cdoId)>><<print _contents>><</link>><</capture>></span><<if _args[1]>><span class="choice-note"><<= _args[1]>></span><</if>></span><<print setup.choiceChips(_cc)>><</choice_card>><</widget>>
/* Climax button: a pulsing heartbeat orb. On click the release plays
(shockwave ring, milky splash, screen shake) and the orb is replaced
by the wrapped contents, in place. Reusable in any sex scene:
<<climax "Cum">>…what happens next…<</climax>>
<<climax "Cum" "nerethis">> her race (or a character id) for the vocals
Sound (scripts/sound.twee): the release whoosh, the cum and gush, her
climax cry, then her afterglow. Without a second argument her race comes
from the <<claim>> / <<claim_bred>> inside the block, or the only one in
the passage; if neither names her, it plays without vocals.
Styles: 05-screens/mission-hud.twee · Mock: development/design/4-2-climax.html */
<<widget "climax" container>><<set _cxId to "cx-" + (setup.climaxSeq = (setup.climaxSeq || 0) + 1)>><<set _cxBody to _contents.trim()>><<set _cxRace to setup.sfx.raceOf(_args[1]) || setup.sfx.climaxRace(_cxBody)>><<run setup.sfx.climaxPreload(_cxRace)>><<capture _cxId, _cxBody, _cxRace>><div @id="_cxId" class="climax"><<link `'<span class="climax-orb"><span class="climax-label">' + _args[0] + '</span></span>'`>><<run setup.climaxRelease(_cxRace)>><<replace `"#" + _cxId`>><div class="climax-after"><<print _cxBody>></div><</replace>><<addclass `"#" + _cxId` "is-released">><</link>></div><</capture>><</widget>>
/* Speech choice: what you say (psychically), in violet quotes */
<<widget "choose_say">><<set _cc to _args.slice(3)>><<set _ct to setup.choiceTheme(_cc)>><<choice_card "choice choice--say" _ct>><<print setup.choiceNum(_ct)>><span class="choice-body"><span class="choice-label"><<link `'"' + _args[0] + '"'` _args[1]>><</link>></span><<if _args[2]>><span class="choice-note"><<= _args[2]>></span><</if>></span><<print setup.choiceChips(_cc)>><</choice_card>><</widget>>
<<widget "choose_locked">><<set _cc to ["Needs " + _args[1]]>><<set _ct to setup.choiceTheme(_cc)>><<choice_card "choice choice--locked" _ct `{ "aria-disabled": "true" }`>><<print setup.choiceNum(_ct, true)>><span class="choice-body"><span class="choice-label"><<= _args[0]>></span><<if _args[2]>><span class="choice-note"><<= _args[2]>></span><</if>></span><<print setup.choiceChips(_cc, "locked")>><</choice_card>><</widget>><<set _m to $mission>>
<<set _ts to _m.targets>>
<<set _claimed to _ts.filter(function (t) { return t.status === "claimed"; }).length>>
<<set _alerted to _ts.filter(function (t) { return t.status === "alerted"; }).length>>
<<set _exp to setup.missionExposure()>>
<<set _compact to _ts.length gte 5>>
<div class="hud-block hud-op">
<div class="fed-label">Operation<<if _m.location>> · <<= _m.location>><</if>></div>
<div class="hud-op-name"><<= _m.name>></div>
<<if _m.tags.length>><div class="hud-op-tags"><<for _tg range _m.tags>><span class="chip-fed"><<= _tg>></span><</for>></div><</if>>
</div>
<<if _ts.length gt 0>>
<div @class="'hud-block hud-targets ' + (_compact ? 'hud-targets--compact' : 'hud-targets--cards hud-targets--n' + _ts.length)">
<div class="fed-label">Occupants · <<= _claimed>> / <<= _ts.length>> claimed<<if _alerted gt 0>> · <span class="hud-alerted"><<= _alerted>> alerted</span><</if>></div>
<div class="hud-occ-grid">
<<for _t range _ts>>
<<set _c to setup.characters[_t.id] || { name: _t.id }>>
<div @class="'hud-target hud-target--' + _t.status">
<span @class="_t.status === 'claimed' ? 'hud-target-photo pod' : 'hud-target-photo fed-photo'"><img @src="(_compact and setup.headFor(_t.id)) || setup.portraitFor({ id: _t.id })" @alt="_c.name"></span>
<span class="hud-target-info"><span class="hud-target-name"><<= _c.name>></span><span class="hud-target-note"><<= _t.note>></span></span>
</div>
<</for>>
</div>
</div>
<</if>>
<<if _m.alarm>>
<div class="hud-block hud-alarm" role="status">
<div class="fed-label fed-label--alert"><<= _m.alarm.label>></div>
<div class="hud-alarm-row"><span class="hud-alarm-value"><<= _m.alarm.left>></span><span class="hud-alarm-unit"><<= _m.alarm.left is 1 ? "move left" : "moves left">></span></div>
</div>
<</if>>
<div class="hud-block hud-exposure">
<div class="fed-label fed-label--alert">Exposure this op</div>
<div class="hud-exposure-row"><span @class="'hud-exposure-value' + (_exp gt 0 ? ' is-up' : '')">+<<= _exp>></span><span class="hud-exposure-total">Fed-Sec <<= $gamestate.suspicion>> / 100</span></div>
<div class="hud-exposure-bar"><div class="hud-exposure-fill" @style="'width:' + Math.min(100, $gamestate.suspicion) + '%'"></div></div>
</div>
<<set _types to Object.keys($currentRun.colony.drones).filter(function (k) { return $currentRun.colony.drones[k] gt 0; })>>
<div class="hud-block hud-with nest-panel">
<div class="nest-label">With you</div>
<<if _types.length gt 0>>
<div class="hud-with-orbs">
<<for _dtp range _types>>
<span class="hud-with-drone" @title="$currentRun.colony.drones[_dtp] + ' × ' + _dtp"><span class="orb hud-with-orb" @style="'--orb: var(--drone-' + _dtp.toLowerCase() + ')'"><img @src="setup.droneIcon(_dtp)" alt=""></span><span class="hud-with-count"><<= $currentRun.colony.drones[_dtp]>> <<= _dtp>></span></span>
<</for>>
</div>
<<else>>
<div class="hud-with-empty">Just you tonight.</div>
<</if>>
</div>/% Shared pre-mission screen. Set $prepMission to a setup.missions id, then link here. %/
<<nobr>>
<<set _m to setup.missions[$prepMission]>>
<<set _cost to setup.missionCost($prepMission)>>
<<set _dt to setup.droneTotal()>>
<div class="resolve-screen">
<div class="resolve-title">Preparation</div>
<div class="resolve-sub"><<= _m.name>></div>
<div class="resolve-summary prep-cost">
<div class="result-line"><<= _cost.baseLabel>>: <strong>+<<= _cost.base>></strong></div>
<<for _d range _cost.discounts>>
<div class="result-line result-gain">− <<= _d.amount>> <<= _d.label>></div>
<</for>>
<div class="result-line prep-net">Net start cost: <strong>+<<= _cost.net>></strong> suspicion <span class="result-total">(now <<= $gamestate.suspicion>>/100 → <<= $gamestate.suspicion + _cost.net>>/100)</span></div>
</div>
<div class="resolve-summary">
<div class="results-header">Drone loadout — all drones come along</div>
<<set _any to false>>
<<for _type, _count range $currentRun.colony.drones>><<if _count gt 0>><<set _any to true>>
<div class="result-line"><img @src="setup.droneIcon(_type)" class="result-drone-icon"> <<= _count>> × <<= _type>></div>
<</if>><</for>>
<<if not _any>><div class="result-line result-total">No drones yet.</div><</if>>
</div>
<<if _m.tutorial and not $flags.prepTutorialSeen>>
<div class="prep-evelyn">
<<speech "evelyn">><<say "evelyn" "Every time you go out, people notice a little more. That's suspicion. The further you go, the more of it you pick up just getting there.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Tonight's five metres, over our own garden wall. Nobody sees that. The park, the clinic, anywhere past the end of the street, and the trip there costs you. Better stats and the right drones bring it down.">><</speech>>
</div>
<</if>>
<div class="resolve-continue">
<span data-sfx="mission-start"><<link "Begin mission">>
<<set $flags.prepTutorialSeen to true>>
<<set $gamestate.suspicion += setup.missionCost($prepMission).net>>
<<run setup.missionBegin($prepMission)>>
<<goto setup.missions[$prepMission].entry>>
<</link>></span>
<span data-sfx="fed-close">[[← Not yet|ColonyMap]]</span>
</div>
</div>
<</nobr>>/% ============================================
COLONY GYM — per-run $flags (all reset at Suburb_Gym):
_<id>Done claimed (torva kael syrra voss rhea tessa mika juno paige lexa kiki fennec)
_vents roof entry: the climate system is breathing musk into every room.
Humans go soft; on the Drakhari it builds heat, not sleep
_basement basement entry: you know the breaker (Gym_Blackout is open)
_loud front-door entry: the music is up so far it covers the back wing too
_dark the main-floor breaker is off: no music, red light, the din is gone
_hackles fights the Drakhari have heard. 2+: every free Drakhari is riled.
4+: Voss calls Fed-Sec (if she's free and it isn't a lockdown)
_called Voss called: +4, HUD clock (3 moves), then whoever's left gets away
_lockdown the drones took the building (Gym_Lockdown)
_showers ten o'clock: Torva and Paige are in the showers (Gym_TenOClock)
_class Rhea is teaching studio one; free Tessa/Lexa/Mika/Kiki went up too
_vossSettled the count was talked down (Gym_Count)
_vossDistracted you followed her from the count: she's head-down over the log
_tenSeen, _classSeen, _countSeen, _hubSeen one-off beats
Signature mechanics:
The din music and clanging plates mask any noise on the main floor
(and the back wing with _loud), until the lights go out.
Hackles the Drakhari hit back. Riled (setup.gymRiled), quiet approaches on
them get spotted and turn into a scrap; meeting them head-on
(Strength) becomes the right call, because a Drakhari who loses yields.
No stat gates: the right approach is +2 (premium +3), workable +1, loud +1 plus noise.
Flow: Suburb_Gym → entry → Gym_Hub ⇄ rooms (+ TenOClock, ClassCall, Count)
→ Gym_Complete (or Gym_Flee) → Mission_Report → Gym_Debrief
→ Mission_Resolve → Gym_Homecoming → DayEnd_Transition
Widgets:
<<gym_next>> way on after a claim: the ducts, the end, or out
<<gym_noise n "where" "why">> where: "floor" | "back" | "up". Masked by the din,
or +n suspicion and +n hackles
<<gym_hackles n>> the Drakhari heard something (marks them, may call)
<<gym_called>> Voss gets through to Fed-Sec: +4 and the clock
============================================ %/
<<widget "gym_next">><<if $flags._called>><<mission_tick>><</if>><<set _gl to setup.gymLeft().length>><<if _gl is 0>><<choose "Lights off, doors locked" "Gym_Complete" "every woman in the building is yours">><<elseif $flags._called and setup.alarmLeft() lte 0>><<choose "Get out. Now." "Gym_Flee" "the patrol is pulling up outside">><<else>><<choose "Back up into the ducts" "Gym_Hub" `_gl + " left in the building" + ($flags._called ? " · " + setup.alarmLeft() + " moves before Fed-Sec" : "")`>><</if>><</widget>>
<<widget "gym_noise">><<if not $flags._dark and (_args[1] is "floor" or (_args[1] is "back" and $flags._loud))>><<if _args[1] is "floor">>//Under the bass and the clang of plates, nobody hears a thing.//<<else>>//The music you turned up is booming down the back corridor. Nobody hears a thing.//<</if>><<else>><<gain_sus _args[0] _args[2]>><<gym_hackles _args[0]>><</if>><</widget>>
<<widget "gym_hackles">><<set $flags._hackles to ($flags._hackles || 0) + _args[0]>><<if $flags._hackles gte 2>><<for _gh range setup.gymDrakhari>><<if not $flags["_" + _gh + "Done"] and not (_gh is "voss" and $flags._called)>><<target `"gym-" + _gh` "alerted" "Hackles up">><</if>><</for>><</if>><<if $flags._hackles gte 4 and not $flags._vossDone and not $flags._lockdown>><<gym_called>><</if>><</widget>>
<<widget "gym_called">><<if not $flags._called>><<set $flags._called to true>><br><br>//From the back corridor, Voss's voice, clipped and clear://<<speech "gym-voss">><<say "gym-voss" "Fed-Sec, this is the colony gym, Block 9. I have an intruder on my floor. Send a patrol.">><</speech>><<gain_sus 4 "Voss called Fed-Sec">><<mission_alarm 3 "Fed-Sec patrol en route">><<target "gym-voss" "alerted" "Called Fed-Sec">><</if>><</widget>>/% Hard mission, 12 targets, five Drakhari. Signature: the din (music masks the main floor) and the hackles (Drakhari hit back). %/
<<set $flags._torvaDone to false>><<set $flags._kaelDone to false>><<set $flags._syrraDone to false>><<set $flags._vossDone to false>><<set $flags._rheaDone to false>><<set $flags._tessaDone to false>>
<<set $flags._mikaDone to false>><<set $flags._junoDone to false>><<set $flags._paigeDone to false>><<set $flags._lexaDone to false>><<set $flags._kikiDone to false>><<set $flags._fennecDone to false>>
<<set $flags._vents to false>><<set $flags._basement to false>><<set $flags._loud to false>><<set $flags._dark to false>><<set $flags._hackles to 0>><<set $flags._called to false>><<set $flags._lockdown to false>>
<<set $flags._showers to false>><<set $flags._class to false>><<set $flags._vossSettled to false>><<set $flags._vossDistracted to false>>
<<set $flags._tenSeen to false>><<set $flags._classSeen to false>><<set $flags._countSeen to false>><<set $flags._hubSeen to false>>
<center>''IRON & SWEAT · COLONY GYM''</center>
//9:30pm. Day $gamestate.day.//
<<scene "missions/gym/gym-night.webp">>
----
<<psi_from "evelyn" "$names.player. The colony gym. Main road, Block 9. Open till half ten.">>
A long white marble building with tall arched windows, every one of them lit. Through the glass: racks of iron, a wall of mirrors, a row of treadmills facing the street. The bass is thumping hard enough to feel from the pavement.
<<psi_from "evelyn" "Twelve inside. Five of them are Drakhari, and Drakhari hit back. Torva on the weights with her friend Paige. Syrra on the combat mats. Kael in the sauna. She does twenty minutes every night.">>
<<psi_from "evelyn" "And Voss. She runs the floor. Ex-army, counts heads like other people breathe, and Rhea follows her round like a duckling. If the Drakhari hear a fight, Voss is the one who picks up the communicator.">>
<<psi_from "evelyn" "The rest should be easy. Two on the cardio deck, one at the smoothie bar, a new girl hiding in the changing room. Two Vyx upstairs in the studios.">>
<<psi_from "evelyn" "Two things. That music covers anything on the main floor, so use it. And the climate system cycles the air hard, for the sweat. Pick your way in.">>
----
''How do you get in?''
<<choose "Through the roof vents" "Gym_Entry_Vents" "dose the climate system and let it carry you everywhere" "Musk">>
<<choose "Up through the basement" "Gym_Entry_Basement" "the service tunnel, the plant room, the breakers" "Lurk">>
<<choose "Through the front doors" "Gym_Entry_Front" "behind someone leaving, past the sound desk" "Influence">>
<<set _dt to setup.droneTotal()>>\
<<if _dt gte 4>><<choose "Lockdown" "Gym_Lockdown" "the drones take the building and hold the Drakhari" "4+ drones ✓">><<else>><<choose_locked "Lockdown" `"4+ drones (you have " + _dt + ")"` "the drones take the building and hold the Drakhari">><</if>><<scene "missions/gym/entry-vents.webp">>
Up the back wall, across the flat roof, past a row of humming fans. The climate unit is the size of a delivery van and it's working hard: it pulls every breath out of the gym, strips the sweat out of it, and pumps it back in cool.
You pour yourself in behind the filters and breathe. Slow, warm, sweet. The fans take it from there, down every duct, out of every grille, into every lung in the building.
Five minutes. Then you follow it down.
<<psi_from "evelyn" "Everyone's breathing you now. The humans will go soft. The Drakhari run hot, though. On them it won't sedate. It'll just make them warm and restless.">>
<<set $flags._vents to true>>
<<gain_xp "musk" 2>>
<<choose "Into the ducts" "Gym_Hub" "the whole building, under you">><<scene "missions/gym/entry-basement.webp">>
The storm drain on the main road, the service tunnel under the pavement, a ladder of pipes. You come up through a floor grate at the end of the gym's back corridor, beside a grey panel of breakers. One switch is fatter than the rest, labelled in neat black capitals: MAIN FLOOR.
The music is right overhead. One tendril on that switch and it goes off, and the lights with it.
<<psi_from "evelyn" "That's the main floor's circuit. Pull it and the humans out there are blind. The music goes too, mind. Anything after that will carry.">>
<<set $flags._basement to true>>
<<gain_xp "lurk" 1>>
<<choose "Up into the ducts" "Gym_Hub" "the breaker will keep">><<scene "missions/gym/entry-front.webp">>
The front doors are tall, heavy glass. You wait in the planter beside them until a woman comes out with a gym bag on her shoulder and her eyes on her phone.
You lay a thought in her head as she pushes through. //Hold it. Someone's behind you.// She holds the door behind her without looking round, a polite little habit, and you slide across the threshold past her heels.
The front desk is empty after nine; members scan themselves in at the gate. Behind the desk sits the sound system, a panel of glowing sliders. You push the master all the way up.
The bass hits the back of the building like a wave. Now it isn't only the main floor that can't hear itself think. It's the back corridor, the changing room, the showers, the office.
<<psi_from "evelyn" "Bold. Nobody on the ground floor will hear a thing now. The studios upstairs have their own speakers, though.">>
<<set $flags._loud to true>>
<<gain_xp "influence" 1>>
<<choose "Up into the ducts" "Gym_Hub" "under the noise">>/% Assault: the drones take the building. Everyone soft falls in the first rush; Warriors pin Torva, Paige and Syrra (without them those three are still loose). Kael and Voss are left for you, riled. No Fed-Sec call in a lockdown. %/
<<set $flags._lockdown to true>><<set $flags._hackles to 4>>
<<set _war to ($currentRun.colony.drones["Warrior"] || 0) gte 1>>
<<set _sen to ($currentRun.colony.drones["Sentinel"] || 0) gte 1>>
<<set _sco to ($currentRun.colony.drones["Scout"] || 0) gte 1>>
<<set _cha to (($currentRun.colony.drones["Charmer"] || 0) + ($currentRun.colony.drones["Siren"] || 0)) gte 1>>
<<scene "missions/gym/lockdown.webp">>
<<psi_from "evelyn" "Drones. Lock it down.">>
The front doors swing open and your drones walk in under the music.
<<if _sen>>A Sentinel plants herself across the glass doors and another across the loading dock. Nobody is leaving.<<else>>Workers brace both doors with their whole weight. It'll hold against humans. Against a Drakhari, not for long.<</if>> <<if _sco>>A Scout is in the supervisor's office before the door swings shut, and the communicator on Voss's desk goes dead in one neat snip.<<else>>Voss gets a hand to the communicator before anyone gets to Voss. It rings out once before a Worker knocks it from her grip.<</if>>
<<gain_sus 2 "Drones in the colony gym">>
<<if not _sco>><<gain_sus 1 "The gym's communicator rang out">><</if>>
The humans don't stand a chance, and they don't really try. Tessa stumbles off her treadmill into a Worker's arms. Lexa doesn't get off the elliptical at all. Mika screams, then giggles, then stops making sense. Juno never leaves the changing-room bench. <<if _cha>>Upstairs a Charmer drifts into the studios, and both Vyx turn toward her like sunflowers: Kiki forgets her camera, Fennec forgets her steps.<<else>>Upstairs, Kiki and Fennec bolt for the stairs and run straight into a drone coming up them.<</if>>
Voss sends Rhea out to see what the noise is. Rhea gets as far as the mats, sees the swarm, and stops dead, wings half open, looking back for Voss. The fight goes out of her before anybody touches her.
<<if _war>>Torva and Syrra don't freeze. They charge. Your Warriors meet them on the mats with a crash that rattles every mirror on the floor, and the music swallows it. Paige swings a collar clamp at the nearest drone, once, and is gathered up for her trouble. Two minutes later both Drakhari are pinned flat, chests heaving, the defeat response flooding through them.<<else>>Torva and Syrra charge. Your Workers aren't built for that. Torva throws one into the dumbbell rack and plants herself in front of Paige, a plate in her fist. Syrra puts another through a mirror and backs onto the mats, wings out, laughing, daring anyone to come closer.<</if>>
<<climax "Cum">>You go room to room behind your drones as fast as you can move, and each woman is held for you. Tessa and Lexa side by side on the rubber matting behind the treadmills, one arguing, one asleep. Mika on her stool, still talking. Juno on her bench, frozen and then not. Kiki on her yoga mat, tail wrapped round your tendril. Fennec on the dance floor, hips still moving to her earbuds. Rhea last of the first rush, on the blue foam of the mats, still looking at the office door as her belly warms under her hands and her small wings fall open.<<if _war>> Then Torva, snarling right up to the moment she isn't, and Paige beside her on the bench, silent and furious and then neither. Then Syrra, laughing at herself by the end.<</if>>
Every one of them flushed and dazed and carrying when you leave her. Every belly rounding.
<<gain_xp "musk" 2>><<gain_xp "endowment" 2>>
<<if _war>><<gain_xp "strength" 1>><</if>>
<<for _c range ["tessa", "lexa", "mika", "juno", "kiki", "fennec", "rhea"]>><<set $flags["_" + _c + "Done"] to true>><<claim_bred `"gym-" + _c`>><</for>>
<<if _war>><<for _c range ["torva", "paige", "syrra"]>><<set $flags["_" + _c + "Done"] to true>><<claim_bred `"gym-" + _c`>><</for>><<else>><<gain_sus 1 "Drakhari smashed up the drones">><<target "gym-torva" "alerted" "The iron · guarding Paige">><<target "gym-paige" "alerted" "The iron · behind Torva">><<target "gym-syrra" "alerted" "The mats · loving this">><</if>>
<<target "gym-kael" "alerted" "Sauna · on her feet">><<target "gym-voss" "alerted" "Office · cornered">>
----
<<if _war>>Two left, and they're the two who'd actually hurt you. Kael, behind the sauna's glass door, on her feet. Voss, in her office with the door shut.<<else>>Five left, and four of them fight. Torva and Syrra on the floor, Kael in the sauna, Voss in her office. Your drones hold the doors. The rest is up to you.<</if>>
<<choose "Up into the ducts" "Gym_Hub" "the ones who fight are yours to take">><</climax>>/% The hub: the ducts over every room. Events fire from here, once each, in order: ten o'clock (2 claimed), the class call (3), Voss's count (5). None of them in the dark, in a lockdown, or once Fed-Sec is called. %/
<<set _t to setup.gymTaken()>>\
<<set _event to "">>\
<<if not $flags._called and not $flags._lockdown and not $flags._dark>>\
<<if not $flags._tenSeen and _t gte 2 and not $flags._torvaDone>><<set _event to "Gym_TenOClock">>\
<<elseif not $flags._classSeen and _t gte 3 and not $flags._rheaDone and not $flags._vossDone>><<set _event to "Gym_ClassCall">>\
<<elseif not $flags._countSeen and _t gte 5 and not $flags._vossDone>><<set _event to "Gym_Count">><</if>>\
<</if>>\
<<if _event>><<goto _event>><<else>>
<<set _riled to setup.gymRiled()>>\
<<set _withRhea to not $flags._rheaDone and not $flags._class>>\
<<if $flags._dark>><<scene "missions/gym/hub-dark.webp">><<else>><<scene "missions/gym/hub-floor.webp">><</if>>
<<if $flags._called and setup.alarmLeft() lte 0>>
Blue lights sweep across the arched windows. A Fed-Sec patrol car pulls up on the main road, doors opening.
<<psi_from "evelyn" "Out. Now. Whoever's left, leave them.">>
<<choose "Get out" "Gym_Flee" "down the drains before they're through the doors">>
<<else>>
<<if not $flags._hubSeen>><<set $flags._hubSeen to true>>\
The ducts run over every room in the building, fat square tubes still warm from the day's breath. Through the grilles you can see all of it. The main floor below you: mirrors, iron, a row of treadmills, the combat mats in the far corner. The back wing behind it: changing room, showers, sauna, the supervisor's office. Two studios upstairs.
And the noise. Music pounding out of speakers in every corner, plates clanging, somebody grunting through a set. Down there, nobody can hear themselves think.
<<else>>\
Back in the ducts. <<if $flags._dark>>The main floor is red and silent below you. Every breath down there carries.<<elseif _riled>>The music's still pounding, but the Drakhari have stopped training. They're listening.<<elseif $flags._vents>>The air in the ducts is thick and sweet. Down on the floor, someone yawns, and someone else laughs at nothing.<<else>>The music pounds on. Plates clang. Nobody down there has looked up once.<</if>>
<</if>>
<<if $flags._called>><<psi_from "evelyn" "Fed-Sec's on its way. Take who you can, and get out before they're through the door.">><</if>>
<<if not $flags._torvaDone and not $flags._showers>>''The iron:'' <<if _riled>>Torva has put the bar down. She's standing in front of Paige with a plate in her fist, wings half open, looking round.<<else>>Torva pulling heavy on the end platform, roaring her reps, Paige spotting her between squat sets.<</if>><</if>>
<<if not $flags._syrraDone>>''The mats:'' <<if _riled>>Syrra, grinning, turning in a slow circle. She's heard something and she likes it.<<else>>Syrra, gloves on, bouncing on her toes and shouting for a sparring partner. Nobody's taking her up.<</if>><</if>>
<<if not $flags._class and not $flags._tessaDone>>''The cardio deck:'' Tessa running hard with her earbuds in, Lexa beside her on the elliptical, barely moving.<</if>>
<<if not $flags._class and not $flags._mikaDone>>''The smoothie bar:'' Mika, talking into her phone and feeding fruit into the blender.<</if>>
<<if not $flags._vossDone>>''The office:'' <<if $flags._lockdown>>Voss in her doorway with a dead communicator in her fist and her wings spread.<<elseif $flags._called>>Voss in the doorway, wings spread, guarding the corridor until the patrol comes.<<elseif _riled>>Voss on her feet, communicator in hand, her thumb by the button.<<elseif _withRhea>>Voss at her desk with Rhea at her elbow, running the closing checklist.<<elseif $flags._vossSettled>>Voss at her desk, alone, frowning at nothing.<<else>>Voss at her desk, alone, reading the member screen.<</if>><</if>>
<<if not $flags._junoDone>>''The changing room:'' Juno, on the bench, still not ready.<</if>>
<<if $flags._showers and not $flags._torvaDone>>''The showers:'' two stalls running, steam rolling out under the door. <<if _riled>>One of the showers is running with nobody under it.<<else>>Torva singing. Paige telling her to stop.<</if>><</if>>
<<if not $flags._kaelDone>>''The sauna:'' <<if _riled>>Kael is on her feet behind the glass door, towel knotted, head cocked.<<else>>Kael, alone on the top bench. She hasn't moved.<</if>><</if>>
<<if $flags._class and not $flags._rheaDone>>''Studio one:'' <<if setup.gymClass().length>>Rhea's first class. <<= setup.gymNames(setup.gymClass())>> on the mats, breathing when she tells them to.<<else>>Rhea, alone, six empty mats in front of her.<</if>><<elseif not $flags._class and not $flags._kikiDone>>''Studio one:'' Kiki, filming herself stretching for two hundred thousand followers.<</if>>
<<if not $flags._fennecDone>>''Studio two:'' Fennec, dancing to music only she can hear.<</if>>
<<if not $flags._called and not $flags._lockdown and not $flags._vossDone>>\
<<if $flags._dark>><<instinct "The horned ones can see in this red light, and there's no music now. Every sound carries. Make enough of them and the supervisor calls it in.">>\
<<elseif $flags._hackles gte 2>><<instinct "Every horned head in the building is up and listening. One more fight they can hear, and the supervisor picks up the communicator.">>\
<<elseif $flags._hackles is 1>><<instinct "One of the horned ones heard something. They won't let it go twice.">>\
<<elseif _t is 0>><<instinct "The music covers the main floor. Away from it, the horned ones hear everything. And they'd love a fight.">><</if>>\
<</if>>
<<if not $flags._torvaDone and not $flags._showers>><<choose "The iron" "Gym_Iron" `_riled ? "Torva, guarding Paige" : "Torva and Paige, spotting each other"`>><</if>>
<<if not $flags._syrraDone>><<choose "The mats" "Gym_Syrra" `_riled ? "Syrra. She knows something's in here" : "Syrra, looking for someone to hit"`>><</if>>
<<if not $flags._class and not $flags._tessaDone>><<choose "The cardio deck" "Gym_Cardio" "Tessa and Lexa, facing the windows">><</if>>
<<if not $flags._class and not $flags._mikaDone>><<choose "The smoothie bar" "Gym_Mika" "Mika, mid-voice-note">><</if>>
<<if not $flags._vossDone>><<choose "The office" "Gym_Voss" `$flags._called ? "Voss. She's made the call" : _riled ? "Voss, thumb on the communicator" : _withRhea ? "Voss and Rhea, running the checklist" : "Voss, alone"`>><</if>>
<<if not $flags._junoDone>><<choose "The changing room" "Gym_Juno" "Juno, hiding from the floor">><</if>>
<<if $flags._showers and not $flags._torvaDone>><<choose "The showers" "Gym_Showers" "Torva and Paige, in the steam">><</if>>
<<if not $flags._kaelDone>><<choose "The sauna" "Gym_Kael" `_riled ? "Kael, on her feet, waiting" : "Kael, twenty minutes, eyes shut"`>><</if>>
<<if $flags._class and not $flags._rheaDone>><<choose "Studio one" "Gym_Class" `setup.gymClass().length ? "Rhea's stretch class" : "Rhea, waiting for a class that isn't coming"`>><<elseif not $flags._class and not $flags._kikiDone>><<choose "Studio one" "Gym_Kiki" "Kiki and her camera">><</if>>
<<if not $flags._fennecDone>><<choose "Studio two" "Gym_Fennec" "Fennec, earbuds in, dancing">><</if>>
<<if not $flags._dark and not $flags._lockdown and setup.gymFloorHumans().length gt 0>><<if $flags._basement>><<choose "Cut the lights" "Gym_Blackout" "the main-floor breaker. The humans go blind, and so does the music" "Lurk">><<else>><<choose_locked "Cut the lights" "the basement way in" "the main-floor breaker is down in the plant room">><</if>><</if>>
<</if>>
<</if>>/% Event: ten o'clock. Torva and Paige finish and take their sets to the showers: the iron empties, the steam fills. %/
<<set $flags._tenSeen to true>><<set $flags._showers to true>>
<<target "gym-torva" "" "Showers · with Paige">><<target "gym-paige" "" "Showers · with Torva">>
<<scene "missions/gym/ten-oclock.webp">>
The clock over the mirrors ticks round to ten. On the end platform, Torva drops her last rep from hip height, and the whole floor jumps.
<<speech "gym-torva">><<say "gym-torva" "Two-forty. Two-//forty//. Write that down.">><</speech>>
<<speech "gym-paige">>She doesn't look up from her notebook. <<say "gym-paige" "I wrote it down. You stink.">><</speech>>
<<speech "gym-torva">><<say "gym-torva" "Showers, then. Race you.">><</speech>>
They go down the back corridor with towels over their shoulders, right under your grille, Torva shoving Paige into the wall and Paige shoving her back without breaking stride. A door bangs. Two showers hiss on. Steam starts to roll out under the door.
<<instinct "Steam. A shut room full of hot wet air, and two of them breathing it. That room breathes for you.">>
<<choose "After them, into the steam" "Gym_Showers" "two stalls, side by side">>
<<choose "Let them soak" "Gym_Hub" "they'll be in there a while">>/% Event: Voss puts Rhea on the late stretch class. Whoever's left of Tessa, Lexa, Mika and Kiki goes up to studio one with her, and Voss is alone in the office. %/
<<set $flags._classSeen to true>><<set $flags._class to true>>
<<set _cls to setup.gymClass()>>
<<set _deck to _cls.filter(function (id) { return id === "tessa" || id === "lexa"; })>>
<<target "gym-rhea" "" "Studio one · teaching">><<target "gym-voss" "" "Office · alone">>
<<for _c range _cls>><<target `"gym-" + _c` "" "Studio one · in the class">><</for>>
<<scene "missions/gym/hub-floor.webp">>
The music dips. A chime, and then Voss on every speaker in the building, each word squared off like a parade ground.
<<speech "gym-voss">><<say "gym-voss" "Members. The ten-fifteen stretch class starts in studio one in five minutes. Free of charge. Your instructor tonight is Rhea.">><</speech>>
The office door bangs open and Rhea comes out at a near run, a clipboard hugged to her chest, wings twitching with nerves.
<<speech "gym-rhea">><<say "gym-rhea" "My first class. My first //class//. Okay. Okay. Breathe.">><</speech>>
<<if _cls.includes("mika")>>
At the smoothie bar, Mika is off her stool before the chime has finished.
<<speech "gym-mika">><<say "gym-mika" "Free class! Babe. //Babes.// Come on, it's free, it's stretching, it's basically lying down.">><</speech>>
<<if _deck.length>>She herds <<= setup.gymNames(_deck)>> off the cardio deck by the elbow, talking the whole way, and up the stairs they go.<<else>>She takes the stairs two at a time, phone already out.<</if>>
<<elseif _deck.length>>
On the cardio deck, Lexa hears the word //stretch//, decides it's close enough to //lie down//, and climbs off the elliptical as if it's a lifeboat. Tessa follows her, pulling out an earbud, because free is free.
<</if>>
<<if _cls.includes("kiki")>>Up in studio one, Kiki hears the word //class//, looks at her phone, and moves the tripod back to get the whole room in shot.<</if>>
<<if _cls.length is 0>>Rhea takes the stairs two at a time. Nobody follows her. Up in studio one she lays out six mats, very neatly, and sits down at the front to wait.<</if>>
Voss watches her trainee go, arms folded in the office doorway. Then she goes back inside, alone, and shuts the door.
<<choose "Up to studio one" "Gym_Class" `_cls.length ? "Rhea's first class, " + setup.gymNum(_cls.length + 1) + " on the mats" : "Rhea, alone, waiting for a class that isn't coming"`>>
<<choose "Back to the ducts" "Gym_Hub" "Voss is on her own now">>/% Event: Voss counts heads with the member scanner and comes up short. Talk the number down (Influence or, dosed, Musk: +2), or follow her back to her desk, where she'll be head-down over the log (Gym_Voss, Lurk is right). %/
<<set $flags._countSeen to true>>
<<set _gone to setup.gymTaken()>>
<<scene "missions/gym/count.webp">>
Voss comes out onto the main floor with the member scanner in her hand and stands in the middle of it, turning slowly. The empty machines. The empty stools. The quiet corners where there used to be someone. Her lips move. She's counting.
<<speech "gym-voss">><<say "gym-voss" "Twelve checked in. Nobody's checked out.">> Another quarter turn. <<say "gym-voss" `"So where are " + setup.gymNum(_gone) + " of my members?"`>><</speech>>
Her eyes go up, slowly, to the grilles in the ceiling, and stop on yours for one long second. Then they move on.
<<if $flags._vents>>She rubs the back of her neck. She's been breathing your musk for an hour, and on a Drakhari it doesn't sedate. Her collar's dark with sweat and she keeps losing her place.<</if>>
<<instinct "She'll count again. If the number's still wrong, she'll go looking, or she'll go for the communicator.">>
<<choose_do "Into her count" "she trusts her numbers. Change them" "Influence">><<replace "#count-scene">>
You don't argue with her. You lay the answers in her head the way she'd want them, neat, in a column. //Showers. Sauna. Changing room. Upstairs. Everyone's where they should be.//
She counts again, ticking them off on the scanner with her thumb, and this time the number comes out right. Her shoulders drop half an inch.
<<speech "gym-voss">><<say "gym-voss" "Showers. Sauna. Studios.">> She clips the scanner back on her hip. <<say "gym-voss" "Fine.">><</speech>>
She goes back to her office and shuts the door.
<<gain_xp "influence" 2>>
<<set $flags._vossSettled to true>>
<<choose "Back to the ducts" "Gym_Hub" "she won't count again tonight">>
<</replace>><</choose_do>>
<<if $flags._vents>><<choose_do "Lose her the count" "she's been breathing it for an hour. One more breath" "Musk">><<replace "#count-scene">>
You breathe out through the grille, straight down on her. She's partway through her second count when it reaches her, and the number simply goes. She stares at the scanner. She starts again from one. Somewhere around six she laughs, a short surprised sound, and gives up.
<<speech "gym-voss">><<say "gym-voss" "It's this heat. That climate system is on the blink again.">><</speech>>
She goes back to her office to file a maintenance request, fanning her collar.
<<gain_xp "musk" 2>>
<<set $flags._vossSettled to true>>
<<choose "Back to the ducts" "Gym_Hub" "she's forgotten the number">>
<</replace>><</choose_do>><<else>><<choose_locked "Lose her the count" "the vents dosed" "make her forget the number">><</if>>
<<choose_do "Follow her to the office" "she'll go over the scanner log at her desk, head down" "Lurk">><<set $flags._vossDistracted to true>><<goto "Gym_Voss">><</choose_do>>
<span id="count-scene"></span>/% Juno: human, 22, new to the colony, hiding. Freezer. Best: tell her she's safe (Influence +2). Musk is right only if the vents are dosed; otherwise she squeaks. Straight across the tiles and her bottle hits the floor. %/
''THE CHANGING ROOM · JUNO''
<<scene "missions/gym/juno-bench.webp">>
Rows of pale lockers, a long mirror, a bench down the middle. Juno sits on the end of it in an oversized tee that hides everything it can, her water bottle hugged to her chest, her gym bag still zipped beside her. Twenty-five minutes she's been in here. Through the wall a Drakhari roars through a rep, and she flinches.
<<speech "gym-juno">><<say "gym-juno" "Okay. You walk out. You get on a bike. Nobody is looking at you.">> She doesn't move. <<say "gym-juno" "Nobody is looking at you, Juno.">><</speech>>
<<if $flags._vents>>The air in here is warm and close. Her cheeks are pink, and she keeps yawning in the middle of her own pep talk.<</if>>
''How do you take her?''
<<choose_do "Tell her she's safe" "she's frightened of being seen. Tell her nobody's watching" "Influence">><<replace "#juno-scene">>
You don't come down yet. You reach into her first, the way you'd put an arm round someone on a bench. //Nobody's looking at you. Nobody's coming in. You can stop being brave now.//
Her grip on the bottle loosens. She lets out a breath she's been holding since she walked in.
So when you slide down the lockers and onto the bench beside her, she only looks. She doesn't scream. She freezes, wide-eyed, perfectly still, the way she's been frozen all night, and you lift the bottle out of her hands and set it on the floor.
A tendril slips up under the big tee and finds her waistband. She doesn't do anything at all. Then you're inside her, slow and warm, and a tiny sound gets out of her before she can catch it. Then another. Her hands find the edge of the bench and hold on.
<<speech "gym-juno">><<say "gym-juno" "Oh. I can... oh, I can //feel//...">><</speech>>
She's soft and warm around you and she moves the way she talks, in small embarrassed starts, until she forgets to be embarrassed. By the end she's leaning back against the lockers with her eyes shut, breathing in little gasps.
<<climax "Cum">>She comes with her hand over her mouth, shaking, as you fill her, and her belly rounds under the big tee until it isn't hiding anything any more. She looks down at it for a long time.
<<speech "gym-juno">><<say "gym-juno" "...I didn't even get to the bikes.">><</speech>>
<<gain_xp "influence" 2>>
<<set $flags._junoDone to true>><<claim_bred "gym-juno">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" `$flags._vents ? "she's been breathing it since she came in" : "pool it under the bench and let it rise"` "Musk">><<replace "#juno-scene">>
<<if $flags._vents>>
She's half asleep already. You slide down the lockers and she watches you in the mirror with heavy, unbothered eyes, and when you breathe one more warm cloud over the bench she simply lies back along it.
You take her there, slow, her tee rucked up to her ribs and her head on her own gym bag. She murmurs all the way through, small surprised sounds, as if she's talking in her sleep.
<<else>>
You pool it low under the bench, warm and sweet. She sniffs. She frowns. She looks up and sees you in the mirror, purple and rising behind her.
She doesn't scream. She squeaks, one small sharp sound, and the bottle goes skittering across the tiles. Then the musk reaches her and the squeak turns into a long, shaky breath.
You take her on the bench with her tee rucked up and her eyes huge, her body answering long before her face does.
<</if>>
<<climax "Cum">><<if $flags._vents>>She comes with a soft sigh as you fill her, and curls on her side on the bench with both hands on her rounding belly, smiling at the lockers.
<<gain_xp "musk" 2>><<else>>She comes with a startled little cry as you fill her, and her belly rounds under her hands. She stares at it, then at you, then at the door to the gym floor, as if the gym floor was never the scary part.
<<gym_noise 1 "back" "Juno squeaked in the changing room">>
<<gain_xp "musk" 1>><</if>>
<<set $flags._junoDone to true>><<claim_bred "gym-juno">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Straight across the tiles" "no hiding, no waiting" "Strength">><<replace "#juno-scene">>
You come down off the lockers and straight across the floor at her. She sees you coming the whole way, in the mirror and then for real, and her bottle hits the tiles with a bang that echoes off every wall.
<<speech "gym-juno">><<say "gym-juno" "No, no, no, I'm not even— I haven't even //started//—">><</speech>>
A tendril round her waist, a breath of musk in her face. She goes rigid in your hold and stays rigid while you lay her back along the bench and slide into her, until a gasp breaks out of her, and another, and her heels start to drum on the wood.
<<climax "Cum">>She comes with a sharp cry that rings off the tiles as you fill her, and lies there afterwards with her belly rounding and her eyes wide, as if she's still waiting for it to be over.
<<gym_noise 1 "back" "Juno's bottle and her cry in the changing room">>
<<gain_xp "strength" 1>>
<<set $flags._junoDone to true>><<claim_bred "gym-juno">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="juno-scene"></span>/% Spotlight: Kael, Drakhari, twenty years on patrol, Endurer. Best: onto the sauna stones (Musk, premium +3: the steam carries you). Riled, she's on her feet and wants a fight: meet her head-on (Strength +2). Sneaking up on her turns into a scrap either way. %/
<<set _riled to setup.gymRiled()>>
''THE SAUNA · KAEL''
<<scene "missions/gym/kael-sauna.webp">>
A small cedar room behind a glass door, hot as an oven, hazy with steam. In the corner, the stove: a basket of black stones over a red glow, a bucket and ladle beside it.
<<if _riled>>
Kael is on her feet. Towel knotted at her chest, back to the wall, head cocked toward the corridor. Twenty years on patrol taught her what a fight sounds like through a wall, and she's heard one. Her wings are half open in the heat. Her tail has stopped hanging and started to lash.
<<speech "gym-kael">><<say "gym-kael" "I know you're out there.">> Flat, calm, certain. <<say "gym-kael" "Come in, then.">><</speech>>
<<else>>
Kael sits on the top bench with a towel wrapped round her and her hands on her knees, eyes closed, perfectly still. Her severe knot of dark hair hasn't moved. Neither has her tail, hanging off the edge of the bench. Twenty minutes, every night, at the same time. She hasn't moved in four of them.
You get the feeling she knows exactly how many people are in this building, and where.
<</if>>
<<psi_from "evelyn" "Careful. Kael did twenty years on Fed-Sec patrol. Of everyone in that building, she's the one who'll actually hurt you.">>
''How do you take her?''
<<if _riled>><<choose_do "Onto the stones" "she'll smell the change in the steam" "Musk">><<replace "#kael-scene">>
You pour yourself over the stones and the sauna fills with hissing, sweet steam. Kael smells it on the first breath. She kicks the glass door open, and it bangs off the wall, and the steam rolls out into the corridor with her in it.
She makes it two steps. Then her knees go, the musk deep in her lungs, and she catches herself on the doorframe with a snarl.
You take her there, in the doorway, pinned against the frame with her towel on the floor. She fights you in silence with every muscle she has, and her body opens for you anyway, blazing hot and tight and furious. She doesn't make a sound until the very end, and then she makes one long one.
<<climax "Cum">>She comes with her forehead pressed to the doorframe as you fill her, her wings shuddering, her tail curling round her rounding belly. Then she curses you, very quietly, for a long time.
<<gym_noise 1 "back" "Kael kicked the sauna door open">>
<<gain_xp "musk" 1>>
<<set $flags._kaelDone to true>><<claim_bred "gym-kael">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<else>><<choose_do "Onto the stones" "become the steam. She'll breathe it whether she likes it or not" "Musk" "Premium">><<replace "#kael-scene">>
You come in under the door the way the steam goes out, flat and slow, and up the side of the stove. The stones are hot enough to sting. You pour yourself over them anyway.
You hiss. The whole room does. A great soft cloud rolls up off the stones and fills the sauna to the ceiling, warm and wet and sweet, and every breath of it is you.
Kael breathes in. Sauna breathing: slow and deep, through the nose. On the second breath her eyes open.
She doesn't move. She doesn't shout. She looks at the stove, at the glossy purple mass draped over it, and she understands it exactly, and you watch her decide not to give you anything. Her jaw sets. Her hands stay on her knees. She breathes out through her teeth, controlled, and the next breath in has twice as much of you in it as the last.
<<speech "gym-kael">><<say "gym-kael" "No.">><</speech>>
That's all she says. You come down off the stones and up the benches, and she watches you the whole way. When your tendrils find her wrists she doesn't fight them. She won't give you that either. She stares at the ceiling while they open her towel. Her skin is slick and burning, hotter than the stones, hotter than anything you've touched. When you slide into her she's soaking, and her jaw doesn't move at all.
So you go slowly. Deep, steady, patient strokes, all the way in and almost all the way out, in the heat and the steam. You feel everything: the iron in her thighs, her heartbeat slamming against your mass, the way she grips you and then forces herself to stop. She doesn't moan. She doesn't gasp. Her breath comes hard through her nose, in and out, and every breath is full of you.
Minutes. Her tail starts to twitch. Her wings press flat to the cedar wall, trembling. Her heels dig into the bench. A bead of sweat runs down her throat, and her throat works, and still nothing comes out.
Then you shift your angle by a fraction, and press, and hold.
The sound tears out of her. One long, raw, helpless cry that fills the little room and goes on and on, her back arching off the wall, her hands clamping on your tendrils, her whole body clenching round you in waves.
<<climax "Cum">>You flood her while she's still crying out. Pulse after pulse, hot and heavy, and her Drakhari heat answers it, blazing round your tendril until you can't tell which of you is burning. Her belly rounds under your tendrils, smooth and taut over hard muscle. Her breasts ache and fill against the wet towel. Her wings drop open along the wall and go slack. Her tail curls round the swell, all on its own, and holds it.
The bond settles into her slowly, the way everything about her is slow. And it holds.
When she can breathe again she sits up, tucks the towel over the new curve of her belly with steady hands, and looks at you.
<<speech "gym-kael">><<say "gym-kael" "Twenty years. Nobody ever got a sound out of me.">> A pause. <<say "gym-kael" "Don't tell anyone.">><</speech>>
<<gain_xp "musk" 3>>
<<set $flags._kaelDone to true>><<claim_bred "gym-kael">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>><</if>>
<<choose_do "Through the steam" "up the benches, unseen in the haze" "Lurk">><<replace "#kael-scene">>
<<if _riled>>She's watching the door, so you don't use it. You come up through the slats of the floor, under the bottom bench, and rise behind her in the haze.<<else>>You slip under the door and up the benches through the haze, slow, without a sound.<</if>>
You get within arm's reach. Then her hand moves, faster than you'd have thought anyone could, and closes on your tendril like a vice. Twenty years of patrol. She heard you breathe.
She hits hard, and she doesn't waste a word doing it. Elbows, knees, the heel of her hand, her tail cracking against the cedar like a whip. You give her nothing to break. You flow round every blow and hold on, and pour musk into her through every place she touches you, until she's breathing it in great ragged gulps and her punches start to land soft.
She ends up flat on the top bench with her wrists pinned and her towel gone, glaring at you, silent. You take her slow and deep. She endures it. She endures it for a long time. Then her heels dig into the bench and her back arches and a single choked sound escapes her, and she hates it.
<<climax "Cum">>You fill her while she's still shaking, and she's blazing hot inside, and her belly swells against your tendrils. Her wings go slack against the wall. Her tail curls over the swell. She turns her face away from you and says nothing at all.
<<gym_noise 1 "back" "A fight in the sauna">>
<<gain_xp "lurk" 1>>
<<set $flags._kaelDone to true>><<claim_bred "gym-kael">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Head-on" `_riled ? "she's ready for a fight. Give her one, and win it" : "through the door and straight at her"` "Strength">><<replace "#kael-scene">>
<<if _riled>>
You open the door and come in where she can see you. She nods, once, as if you've done the decent thing.
She comes off the wall at you, fast and low and precise. A professional. She doesn't waste a movement, and she doesn't make a sound. You take every blow and give her nothing to break, and you keep coming, and you're heavier than she is and you don't get tired.
<<else>>
You come in through the door. She's off the bench before it has swung shut, towel in one hand, the other already a fist.
It's a real fight, and a loud one: her heels on the cedar, her tail sending the bucket clattering across the floor, a grunt every time she lands. She lands a lot.
<</if>>
It takes a long minute. Then you have both her wrists and her tail, and she's on her back on the slatted bench with your weight on her, chest heaving. Something happens behind her eyes that has nothing to do with musk. The Drakhari defeat response. She lost, and her body knows it before she'll admit it. The fight drains out of her muscles all at once and leaves only heat.
She's blazing inside when you take her, slick and furious and gripping. She grits her teeth through every stroke. She lasts a very long time. When the sound finally breaks out of her it's half a roar, and she comes so hard her wings slam open against the wall.
<<climax "Cum">>You flood her, and her heat flares to meet it. Her belly swells, smooth and tight, her tail curling over it. She lies there breathing as if she's run a marathon, and looks at you with something that's almost respect.
<<speech "gym-kael">><<say "gym-kael" "...Fair.">><</speech>>
<<if _riled>><<gym_noise 1 "back" "A fight in the sauna">><<gain_xp "strength" 2>><<else>><<gym_noise 2 "back" "Kael fought you in the sauna">><<gain_xp "strength" 1>><</if>>
<<set $flags._kaelDone to true>><<claim_bred "gym-kael">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="kael-scene"></span>/% Spotlight: Syrra, Drakhari fight instructor, Fighter → Enthusiast. Best: accept the spar (Strength +2), riled or not. It's a fight on the mats at a gym: the din covers it, unless the lights are out. %/
<<set _riled to setup.gymRiled()>>
''THE COMBAT MATS · SYRRA''
<<scene "missions/gym/syrra-mats.webp">>
The mats are in the far corner of the floor, blue foam under a ring of heavy bags. Syrra is in the middle of them, bouncing on the balls of her feet, gloves on, wings flaring and folding with every bounce. Burnt-orange skin, a mane of wild dark-red hair, horns curled back like a ram's. She's been calling out challenges for half an hour.
<<if $flags._dark>>
In the red emergency light she's stopped bouncing. She's grinning.
<<speech "gym-syrra">><<say "gym-syrra" "Lights out? //Lights out?// Oh, somebody's here. Somebody's come to play.">><</speech>>
<<elseif _riled>>
<<speech "gym-syrra">><<say "gym-syrra" "I heard that. Everybody heard that.">> She turns in a slow circle, grinning. <<say "gym-syrra" "Whatever you are, come out. I've been bored all night.">><</speech>>
<<else>>
<<speech "gym-syrra">><<say "gym-syrra" "Nobody? Nobody in this whole gym? Torva! Come on, I'll go easy!">><</speech>>
<<if not $flags._torvaDone and not $flags._showers>><<speech "gym-torva">>From the platform, without looking round: <<say "gym-torva" "Go away, Syrra.">><</speech>><</if>>
<</if>>
<<if $flags._vents>>The musk has her flushed dark across her chest and shoulders. She thinks it's adrenaline. It's making her worse.<</if>>
''How do you take her?''
<<choose_do "Accept the spar" "she wants a fight. Step onto the mat" "Strength">><<replace "#syrra-scene">>
You come down a heavy bag's chain and drop onto the mat in front of her with a wet slap.
She stops bouncing. She looks at you, the glossy purple mass of you, rising, two tendrils lifting into a guard. Her face splits into the widest grin you've ever seen.
<<speech "gym-syrra">><<say "gym-syrra" "//Finally.//">> She bangs her gloves together. <<say "gym-syrra" "No idea what you are. Don't care. Let's go.">><</speech>>
She's good. Really good. She comes in with a jab, a hook, a spinning back kick that would drop a man, and every one of them sinks into you like a fist into warm jelly. She laughs every time. She keeps coming. You let her, for a while, because you can feel how much she's enjoying it. Then you stop letting her.
A tendril round her ankle mid-kick. Another round her waist. Her own momentum takes her down and you go with her, flowing over her on the mat, catching her wrists, her tail, the base of each wing. She bucks under you, snarling and laughing, wrenching at your grip, and it tightens every time, until she's spread on her back on the blue foam and can't move anything but her chest.
Then it hits her. You feel it go through her like a current: the defeat response, as old as her species. She lost. Her body knows it. The snarl falls off her face and something much hotter takes its place.
<<speech "gym-syrra">><<say "gym-syrra" "Oh. Oh, //no//. Oh, you're good.">> Her hips are already lifting off the mat. <<say "gym-syrra" "Don't you dare stop now.">><</speech>>
You peel her shorts down and take her right there in the middle of the mats, hard and fast, the way she fights. She's blazing inside, slick and searing and gripping you like a fist, and she meets every stroke with her heels hooked round you, shouting encouragement at the ceiling as if you're one of her students. She comes almost at once, laughing through it, and keeps going.
<<climax "Cum">>The second time she comes you go with her, flooding her, and she howls. Her heat flares round your tendril, scalding, and you keep pumping into her until it spills out across the blue foam. Her belly swells under your tendrils, round and taut over her abs. Her breasts strain against her sports top. Her wings slam flat to the mat and shiver. Her tail coils round your tendril and holds it in.
She lies there grinning at the ceiling, soaked in sweat, hair everywhere, one glove resting on her rounding belly.
<<speech "gym-syrra">><<say "gym-syrra" "Best spar I've had in years.">> She lifts her head. <<say "gym-syrra" "Rematch tomorrow?">><</speech>>
<<if $flags._dark>><<gym_noise 1 "floor" "A fight on the mats in the dark">><<else>>//A fight on the mats, at a gym, with the music this loud. Nobody looks twice.//<</if>>
<<gain_xp "strength" 2>>
<<set $flags._syrraDone to true>><<claim_bred "gym-syrra">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Goad her" "needle her pride until she charges something she can't see" "Influence">><<replace "#syrra-scene">>
You find her pride. It isn't hard: it's the biggest thing in her head. You lean on it. //They're laughing at you. All of them. Syrra the coward, shouting at an empty mat.//
Her grin goes thin. She turns, wings flaring, looking for whoever said it. You give her a shadow under the heavy bags, and she charges it with a roar.
<<speech "gym-syrra">><<say "gym-syrra" "Say that to my //face//!">><</speech>>
She runs straight into you. Your tendrils close round her before she knows what she's hit, and she fights like a cornered cat, all elbows and horns and tail, swearing, until the musk is in her and the defeat response takes her all at once. Then she's tearing at her own shorts to get them out of your way.
You take her on her knees on the mat, her hands locked on the chain of a heavy bag, the bag swinging wildly over both of you. She's burning hot inside and loud about it.
<<climax "Cum">>She comes swearing as you fill her, her belly swelling over her abs, her wings shuddering, and collapses on the foam with her tail curled round herself.
<<speech "gym-syrra">><<say "gym-syrra" "...That's cheating.">><</speech>>
<<gym_noise 1 "floor" "Syrra roared on the mats">>
<<gain_xp "influence" 1>>
<<set $flags._syrraDone to true>><<claim_bred "gym-syrra">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Wait her out" "she'll give up and sit down eventually" "Lurk">><<replace "#syrra-scene">>
You wait. It takes a while. She shadowboxes, she taunts the room, she kicks a heavy bag so hard the chain screams. Finally she flops onto the bench at the edge of the mats, sulking, and starts unwinding the tape from her hands with her teeth.
You come up under the bench and take her ankle.
She goes off like a firework. Up off the bench, wings out, kicking, punching, headbutting a tendril with those big curled horns, shouting with every blow. It's a long, loud, glorious fight, and she grins through all of it.
You win it. When she's pinned face-down across the bench with her tail held and her wrists held, the defeat response floods through her, and she goes from fighting you to pushing back against you in the space of a breath.
<<climax "Cum">>She comes hard as you fill her, scorching hot around you, and her belly rounds against the bench. Her wings sag open over both of you. By the end she's laughing into the vinyl.
<<speech "gym-syrra">><<say "gym-syrra" "You could've just //asked//.">><</speech>>
<<gym_noise 2 "floor" "Syrra fought you on the mats">>
<<gain_xp "lurk" 1>>
<<set $flags._syrraDone to true>><<claim_bred "gym-syrra">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="syrra-scene"></span>/% Torva (Drakhari, Fed-Sec trainee, Fighter) and Paige (human courier, competitive), spotting each other. Best: time it to Torva's lift (Lurk +2); with the vents dosed, musk works too. Riled, Torva is guarding Paige: go through her (Strength +2). %/
<<set _riled to setup.gymRiled()>>
''THE IRON · TORVA AND PAIGE''
<<scene "missions/gym/iron-pair.webp">>
The heavy end of the floor: platforms, racks, plates stacked like coins. Torva works a deadlift on the end platform, crimson and huge, hand-wraps grey with chalk, roaring every rep. Paige trains at the squat rack beside her with a notebook on the bench and headphones clamped over her ears. Between sets they spot each other. They don't need to talk to do it.
<<if _riled>>
Neither of them is lifting now. Torva stands in front of the squat rack with a twenty-kilo plate in one hand like a shield, wings half open, scanning the floor<<if $flags._dark>> in the red light<</if>>. Paige is behind her with her headphones round her neck, frowning.
<<speech "gym-torva">><<say "gym-torva" "Something's in here. Stay behind me.">><</speech>>
<<speech "gym-paige">><<say "gym-paige" "I haven't finished my set.">><</speech>>
<<else>>
<<speech "gym-torva">><<say "gym-torva" "Two-twenty. Watch this. Watch me.">><</speech>>
<<speech "gym-paige">>Paige slides one side of her headphones off. <<say "gym-paige" "I'm watching. Pull.">><</speech>>
<</if>>
<<if $flags._vents>>The musk has Paige yawning between reps. On Torva it's done the opposite: she's flushed dark, restless, slapping her own thighs to stay focused.<</if>>
''How do you take them?''
<<choose_do "Time it to the lift" `_riled ? "there's no lift to wait for now" : "once two hundred and twenty kilos leave the floor, she can't let go"` "Lurk">><<replace "#iron-scene">>
<<if _riled>>
There's no lift to wait for. You come at Paige from under the squat rack anyway, and Torva sees the tendril before it's halfway up Paige's leg. The plate comes down on you like a hammer.
It doesn't hurt. You're slime. But it makes a noise like a dropped car door, and then she's on you, and it's a brawl: Torva roaring, plates rolling, Paige swearing and swinging her notebook. You get Torva's wrists, then her tail, then her wings, and bear her down across the bench, and the defeat response goes through her like a shudder. Paige you have by then too, pinned on her back on the squat bench, glaring.
<<else>>
Torva chalks her hands, sets her feet and grips the bar. Paige steps in behind her to spot, headphones back on, eyes on the bar.
Two hundred and twenty kilos leave the floor. Halfway up, with Torva roaring and every muscle she owns locked on the bar, you come up out of the floor drain behind Paige and wrap her ankles.
Paige never even looks down. She's watching the lift. You slide up the backs of her thighs, under the hem of her shorts, and by the time she feels it she's already breathing the musk you've laid on her neck. Her knees go. She sits down hard on the bench and stares at nothing, lips parted.
Torva locks out at the top. She's holding two hundred and twenty kilos at hip height when your tendrils close round her waist, and there isn't a thing she can do about it.
<<speech "gym-torva">><<say "gym-torva" "What the— get //off//, I've got the— Paige! //Paige!//">><</speech>>
She can't drop it without wrecking her feet. She can't fight while she's holding it. She stands there with her arms locked and her wings thrashing while you slide her shorts down her thighs, snarling the whole time, and she's still holding the bar when you push inside her.
<</if>>
She's blazing hot inside, almost too hot to bear, and she fights you with everything she has left, which isn't much. Three strokes in, the snarl cracks. Six, and she's making a different sound entirely.<<if not _riled>> The bar goes down at last, slowly, controlled even now, and she plants both hands on it and pushes back onto you.<</if>>
Paige takes you on the bench beside her, silent and focused, gripping her own barbell as if this is a heavy set, until the very end, when she lets out one loud, startled grunt.
<<climax "Cum">>You fill them one after the other. Torva howls at the ceiling, her belly swelling taut over her abs, her tail lashing and then curling round it, her wings shuddering open. Paige comes with her teeth gritted and her belly rounds under her sports top, and when it's over she reaches for her notebook and writes something down.
<<speech "gym-paige">><<say "gym-paige" "Personal best.">><</speech>>
<<if _riled>><<gym_noise 1 "floor" "A brawl at the weights">><<gain_xp "lurk" 1>><<else>><<gain_xp "lurk" 2>><</if>>
<<set $flags._torvaDone to true>><<set $flags._paigeDone to true>><<claim_bred "gym-torva">><<claim_bred "gym-paige">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Onto the platform" `_riled ? "she wants something to hit. Let her try" : "straight at the biggest woman in the room"` "Strength">><<replace "#iron-scene">>
You drop off the rack onto the platform in front of Torva<<if not _riled>> as she sets the bar down<</if>>. She looks at you for one second. Then she grins and swings.
It's a proper fight. Torva hits like a door slamming, again and again, roaring, her wings knocking plates off the rack. Paige gets one good swing in with a collar clamp before a tendril catches her wrist. You soak up every blow and keep coming, and pour musk into Torva everywhere she touches you, until you have both her wrists and her tail and her wings and she's bent over her own bar on the platform with nowhere to go.
The defeat response takes her all at once. She goes from fighting you to swearing at you, which is different, and then from swearing to something else.
<<speech "gym-torva">><<say "gym-torva" "This doesn't count. I was tired. This doesn't—">> You push inside her. <<say "gym-torva" "...//oh//. Okay. That counts.">><</speech>>
You take her across the bar, hard, the way she fought, her heat searing round you. Paige you take on the squat bench beside her, holding her down with one tendril while she glares at you, and then holding her up with it, because her legs have stopped working.
<<climax "Cum">>You flood them both. Torva roars as her belly swells round and tight over the bar, her tail coiling over it. Paige comes with a grunt she clearly considers a personal failing, and her belly rounds under her sports top.
<<if _riled>><<gym_noise 1 "floor" "A brawl at the weights">><<gain_xp "strength" 2>><<else>><<gym_noise 2 "floor" "Torva fought you on the platform">><<gain_xp "strength" 1>><</if>>
<<set $flags._torvaDone to true>><<set $flags._paigeDone to true>><<claim_bred "gym-torva">><<claim_bred "gym-paige">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" `$flags._vents ? "Paige is half asleep. Torva's overheating" : "a slow cloud over the platform"` "Musk">><<replace "#iron-scene">>
You breathe out over the racks, slow and heavy, and let it settle on them.
<<if $flags._vents and not _riled>>
It's the last straw for Paige. She sits down on her squat bench in the middle of a set, blinks at her notebook, and lies back along the bench with a long, contented sigh.
Torva turns to shout at her and breathes it in instead. She's been breathing you for an hour, and on a Drakhari it doesn't sedate. It builds. She stands there flushed dark from horns to hips, chest heaving, looking from Paige on the bench to you coming down the rack, and doesn't seem to know what she wants to hit.
<<speech "gym-torva">><<say "gym-torva" "What is this? What is //this//? Why is it so hot in here?">><</speech>>
You don't give her time to decide. You wrap her and bend her over the bar, and she bucks once and then pushes back against you, snarling, soaking, burning.
<<else>>
Paige sways. Her knees go soft and she sits down on the squat bench. Torva sniffs, once, and wheels round.
<<speech "gym-torva">><<say "gym-torva" "What is that smell? Paige? //Paige!//">><</speech>>
She sees you, and charges. It's a short fight, because she's breathing hard and every breath is you, but it's a loud one: a plate rolls off the rack and goes bouncing across the platform. By the end she's on her knees, wings shivering, still swinging, her hips moving on their own.
<</if>>
You take Torva across the bar and Paige on her bench, one tendril for each, their sounds rising together: Torva's growls going ragged, Paige's breath coming in short sharp counts as if she's still doing reps.
<<climax "Cum">>You fill them both. Torva's heat flares and her belly swells over the bar, her tail lashing and then curling round it. Paige's belly rounds under her sports top, and she lies there on the bench staring at the ceiling, counting under her breath.
<<if $flags._vents and not _riled>><<gain_xp "musk" 2>><<else>><<gym_noise 1 "floor" "Torva shouted at the weights">><<gain_xp "musk" 1>><</if>>
<<set $flags._torvaDone to true>><<set $flags._paigeDone to true>><<claim_bred "gym-torva">><<claim_bred "gym-paige">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="iron-scene"></span>/% Torva and Paige after ten, in the steam. Best: breathe into the steam (Musk +2) or split yourself up both drains (Endowment, premium +3). Riled, Torva is out of her stall guarding Paige: go through her (Strength +2). %/
<<set _riled to setup.gymRiled()>>
''THE SHOWERS · TORVA AND PAIGE''
<<scene "missions/gym/showers-steam.webp">>
White tiles, a row of cubicles with heavy white curtains, steam so thick it beads on the ceiling. Two showers are running side by side. Behind one curtain, a horned, winged silhouette. Behind the other, a blonde ponytail.
<<if _riled>>
Torva's water is running, but Torva isn't under it. She's out on the tiles in a towel, dripping, wings half open, peering into the steam.
<<speech "gym-torva">><<say "gym-torva" "Paige. Stay in there. I heard something.">><</speech>>
<<speech "gym-paige">><<say "gym-paige" "You always hear something.">><</speech>>
<<else>>
Torva is singing. Badly, loudly, with total commitment.
<<speech "gym-paige">><<say "gym-paige" "Torva. I'm begging you.">><</speech>>
<</if>>
The steam rolls round the room, out under the door and back again. Every breath either of them takes is a lungful of hot wet air.
''How do you take them?''
<<choose_do "Into the steam" "breathe into it. It carries musk better than any vent" "Musk">><<replace "#showers-scene">>
You come in under the door and breathe. Not hard. You don't need to. The steam takes the musk and rolls it round the room in warm wet waves, into both cubicles, into both of them.
<<if _riled>>
Torva smells it. She whirls on the steam with a roar and lashes out at nothing, and her shout bounces off every tile in the room. Then she's breathing hard from the effort, and every breath is you. The roar trails off into a growl, and the growl into a groan. She ends up on her knees on the wet tiles with one hand on the wall.
<<else>>
Torva's song slows down. Loses its words. Turns into a long, low hum. Next door, Paige stops washing her hair and just stands there under the water with her hands on the tiles and her eyes closed.
<</if>>
You go to Paige first. She doesn't startle when you draw her curtain back. She looks at you through the water, slow and serious, and doesn't say a word as your tendrils wrap her waist and lift her back against the tiles. She's warm and slippery and she takes you with a long, shaky breath, her heels drumming on the wall, water running over both of you.
Torva you take on her knees on the shower floor, the water still running, steam everywhere. She's burning hot under the hot water, impossibly hot inside, and she growls through every stroke, horns scraping the tiles, until the growl breaks into a roar that makes the curtains shiver.
<<climax "Cum">>You fill them both. Paige comes silently, mouth open, and slides down the wall into a sitting heap with her belly rounding under the water. Torva comes roaring, her heat flaring up round you, her belly swelling taut, her wings snapping open and then folding round herself like a cloak.
<<speech "gym-torva">><<say "gym-torva" "...Don't tell Syrra.">><</speech>>
<<if _riled>><<gym_noise 1 "back" "Torva shouted in the showers">><<gain_xp "musk" 1>><<else>><<gain_xp "musk" 2>><</if>>
<<set $flags._torvaDone to true>><<set $flags._paigeDone to true>><<claim_bred "gym-torva">><<claim_bred "gym-paige">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<if _riled>><<choose_do "Up both drains at once" "Paige is in her stall. Torva isn't" "Endowment">><<replace "#showers-scene">>
You split in the pipes and come up both drains. One of you finds Paige under her shower. The other finds an empty stall, and Torva on the tiles outside it, watching the plughole bubble.
She stamps on you. It doesn't help her, but it's loud, and so is her shout. You come up her leg anyway, and the fight is short and slippery and furious, all wet tiles and a curtain rail coming down, until you have her wrists and her wings and the defeat response knocks the fight out of her.
You take them both: Paige in her stall, braced against the wall and silent; Torva on the floor in front of it, growling into the steam.
<<climax "Cum">>You fill them together. Paige sags against her wall with her belly rounding under the water. Torva roars and curls round her own swelling belly, her tail wrapped over it, her wings folding round them both.
<<gym_noise 1 "back" "A fight in the showers">>
<<gain_xp "endowment" 1>>
<<set $flags._torvaDone to true>><<set $flags._paigeDone to true>><<claim_bred "gym-torva">><<claim_bred "gym-paige">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>><<else>><<choose_do "Up both drains at once" "split yourself in two. One for each stall, at the same instant" "Endowment" "Premium">><<replace "#showers-scene">>
You go down the corridor drain and divide in the pipes, and come up through both cubicle drains at the same moment: two glossy coils rising out of two plugholes, under two running showers.
Torva is mid-chorus when something wraps her ankles. Paige is rinsing her hair. You climb them both at once, warm and slick under the water, laying musk on their skin everywhere you touch, and the steam does the rest.
<<speech "gym-torva">><<say "gym-torva" "What's— what's in the— //Paige//, is there something in your—">><</speech>>
<<speech "gym-paige">>A pause. Then, very carefully: <<say "gym-paige" "...Yes.">><</speech>>
Neither of them gets a curtain open. You have Torva pinned to the tiles with her wings flat and her horns scraping, snarling and then gasping, her heat almost painful through the water. You have Paige braced against her own wall with one leg lifted, silent, gripping the shower head. Two of you, two of them, the same rhythm in both stalls, the curtains swaying in time.
The steam swallows every sound. Through the wall between them they can hear each other, and that makes it worse, and then it makes it much better.
<<climax "Cum">>You fill them at the same instant, either side of the wall. Torva roars into the tiles. Paige makes one bitten-off sound and sags in your coils. Two bellies round under the running water, Torva's taut and hot with her tail wrapped round it, Paige's smooth under her own hands.
<<speech "gym-paige">><<say "gym-paige" "Torva?">><</speech>>
<<speech "gym-torva">><<say "gym-torva" "...Yeah.">><</speech>>
<<speech "gym-paige">><<say "gym-paige" "Same time. Nice.">><</speech>>
<<gain_xp "endowment" 3>>
<<set $flags._torvaDone to true>><<set $flags._paigeDone to true>><<claim_bred "gym-torva">><<claim_bred "gym-paige">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>><</if>>
<<choose_do "Through the curtain" `_riled ? "she's waiting for a fight. Give her one" : "rip it back and take her"` "Strength">><<replace "#showers-scene">>
<<if _riled>>You come out of the steam right in front of her. Torva drops the towel and swings, and she's grinning.<<else>>You tear Torva's curtain back. She stops singing. She looks at you through the water for one frozen second, and then she swings.<</if>>
It's a wet, loud, slippery fight. She punches, kicks, rakes you with her claws, slams you into the tiles hard enough to crack one. Paige comes out of her stall at the noise with a bottle of shampoo held like a club. You catch her wrist, then Torva's, then Torva's tail and wings, and pin them both to the cubicle wall side by side under the running water.
The defeat response goes through Torva like an earthquake. You feel it in her muscles: the fight is gone, and her body is very, very interested in what's left.
<<speech "gym-torva">><<say "gym-torva" "Okay. Okay. You win. You //win//.">><</speech>>
You take her hard against the tiles, her heat searing through the water, and Paige beside her, slower. Paige watches Torva the whole time, wide-eyed, as if she's learning something.
<<climax "Cum">>You fill them both, Torva roaring, Paige gasping, and their bellies round together under the spray. Torva's wings fold round the pair of them like a towel.
<<if _riled>><<gym_noise 1 "back" "A fight in the showers">><<gain_xp "strength" 2>><<else>><<gym_noise 2 "back" "Torva fought you in the showers">><<gain_xp "strength" 1>><</if>>
<<set $flags._torvaDone to true>><<set $flags._paigeDone to true>><<claim_bred "gym-torva">><<claim_bred "gym-paige">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="showers-scene"></span>/% Tessa (transit clerk, Bargainer) and Lexa (hydroponics tech, Acceptor, trivial) side by side. Best: under the machines (Lurk +2), below the window's reflection. With the vents dosed, musk is right too. %/
''THE CARDIO DECK · TESSA AND LEXA''
<<scene "missions/gym/cardio-deck.webp">>
A row of treadmills and ellipticals facing the tall front windows and the dark main road beyond. Tessa runs on the end treadmill, fast and steady, earbuds in, staring at her own reflection in the glass. Ten kilometres every night. She hasn't blinked in a while.
On the elliptical beside her, Lexa is barely moving. Just off a double shift, still wearing her farm wristband. Her eyes are half shut. If the machine stopped she might simply fall asleep standing up.
<<if $flags._vents>>The musk has reached them both. Tessa's pace has dropped to a jog. Lexa's head has dropped to her chest.<</if>>
''How do you take them?''
<<choose_do "Under the machines" "below the windows, below the reflection, where nobody ever looks" "Lurk">><<replace "#cardio-scene">>
You come along the floor under the row of machines, between the belts and the cables, out of sight of the glass. Lexa first. She's barely holding on.
A tendril round her ankle on the footplate. She looks down at it. She looks at it for a long time.
<<speech "gym-lexa">><<say "gym-lexa" "...Sure. Why not. It's been that kind of day.">><</speech>>
She lets go of the handles and you lift her down off the machine onto the rubber matting behind it, and she takes you lying on her back with her eyes closed, sighing, as if it's the first time she's been allowed to lie down in eighteen hours.
Tessa never looks away from the window. You come up the side of her treadmill and slide a tendril up the back of her leg mid-stride, and she stumbles, and the safety cord pops out of the console, and the belt whirs to a stop.
<<speech "gym-tessa">>She pulls an earbud out. <<say "gym-tessa" "Wait. Wait, wait, I'm at eight k, can I just— can I just finish the—">><</speech>>
You don't let her finish. You bend her over the console, and she argues for three more strokes and then stops making words at all, her ponytail swinging, her breath coming in the same hard rhythm she runs in.
<<climax "Cum">>You fill them one after the other. Lexa comes with a long, tired groan, her belly rounding under her tank top, and is asleep before you've finished. Tessa comes with a sharp gasp, her belly swelling against the console, and stands there afterwards with both hands on it, staring at her reflection in the dark glass.
<<speech "gym-tessa">><<say "gym-tessa" "...That's my best time ever.">><</speech>>
<<gain_xp "lurk" 2>>
<<set $flags._tessaDone to true>><<set $flags._lexaDone to true>><<claim_bred "gym-tessa">><<claim_bred "gym-lexa">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Both at once" "a tendril each, off the machines together" "Endowment">><<replace "#cardio-scene">>
You rise up between the two machines and take them both at the same moment: a tendril round Lexa's waist, a tendril round Tessa's mid-stride. Lexa simply lets go. Tessa's treadmill throws her straight back into you, and her water bottle goes bouncing down the row with a clatter.
<<speech "gym-tessa">><<say "gym-tessa" "Hey! //Hey!// I'm on a ten k!">><</speech>>
<<speech "gym-lexa">>From the floor, eyes shut: <<say "gym-lexa" "Not any more you're not.">><</speech>>
You take them side by side on the rubber matting behind the machines, Lexa lying back and sighing, Tessa arguing and arguing until the argument turns into panting in the same hard rhythm she runs in.
<<climax "Cum">>You fill them together. Lexa groans and goes limp, her belly rounding under her tank top. Tessa comes with a sharp gasp and lies there staring at the ceiling, both hands on her swelling belly, still breathing in strides.
<<gym_noise 1 "floor" "Tessa's bottle went down the cardio row">>
<<gain_xp "endowment" 1>>
<<set $flags._tessaDone to true>><<set $flags._lexaDone to true>><<claim_bred "gym-tessa">><<claim_bred "gym-lexa">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" `$flags._vents ? "they're halfway there already" : "a warm cloud over the front of the deck"` "Musk">><<replace "#cardio-scene">>
<<if $flags._vents>>
You barely need to. One more breath over the deck and Tessa's jog drops to a walk, then to a stop, and she stands on the dead belt swaying, earbuds still in. Lexa's elliptical has already stopped. She's asleep on the handles.
<<else>>
You breathe it down over the deck from the grille above. Lexa yawns, slows, stops, and folds over her handles. Tessa runs straight through it at first, then slows, frowning, and pulls an earbud out to listen to something that isn't there.
<</if>>
You lift Lexa down first. She murmurs something about her shift and takes you on the mat behind the machine without opening her eyes. Tessa you take against the treadmill rail, her ponytail swinging, her breathing slow and dazed and then not slow at all.
<<climax "Cum">>You fill them one after the other. Lexa sighs into the rubber matting, her belly rounding under her tank top. Tessa grips the rail and comes with a long shaky breath, her belly swelling under her sports top, her earbud dangling.
<<if $flags._vents>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<set $flags._tessaDone to true>><<set $flags._lexaDone to true>><<claim_bred "gym-tessa">><<claim_bred "gym-lexa">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="cardio-scene"></span>/% Mika: chatty salon receptionist, Enthusiast. Best: wait for the blender (Lurk +2). Giving her someone to talk to works, but her phone is recording a voice note. %/
''THE SMOOTHIE BAR · MIKA''
<<scene "missions/gym/mika-bar.webp">>
A little counter by the front windows: a blender, a bowl of fruit, a stack of cups. Mika sits on a stool with one foot tucked under her, phone held to her mouth, recording a voice note. She did one set of squats about an hour ago.
<<speech "gym-mika">><<say "gym-mika" "...and I said, babe, if he wanted to come he'd //come//, and she said— hang on, I'm doing my smoothie.">><</speech>>
She props the phone against the fruit bowl, tips berries into the blender, and rests her finger on the button.
<<if $flags._vents>>She's flushed and giggly. Everything is funny. She's told the same story three times.<</if>>
''How do you take her?''
<<choose_do "Wait for the blender" "it's the loudest thing in the building" "Lurk">><<replace "#mika-scene">>
She presses the button. The blender screams.
You come up the back of her stool under cover of it. A tendril round her waist, a breath of musk at her ear, and her squeal is lost completely in the roar of ice and berries. She grabs the counter. She looks down at the glossy purple thing in her lap. The blender is still going.
<<speech "gym-mika">><<say "gym-mika" "Oh my god. Oh my god, what are— okay. Okay. Wow. //Okay.//">><</speech>>
She's flipped before the smoothie is done. You lift her off the stool and onto the counter, and she leans back on her elbows among the cups and talks the whole way through, breathless and delighted, half to you and half to nobody.
<<speech "gym-mika">><<say "gym-mika" "Oh, that's— yes— okay, nobody is ever going to believe this, nobody, oh—">><</speech>>
She doesn't stop talking until the very end, and then she can't.
<<climax "Cum">>She comes with a squeal as you fill her, the blender still roaring beside her head, and her belly rounds under her cropped top. When the blender finally stops she's lying on the counter staring at the ceiling, very quiet, for possibly the first time in her life.
<<speech "gym-mika">><<say "gym-mika" "...I'm not putting that in the group chat.">><</speech>>
<<gain_xp "lurk" 2>>
<<set $flags._mikaDone to true>><<claim_bred "gym-mika">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Give her someone to talk to" "she'll talk to anything. Let her talk to you" "Influence">><<replace "#mika-scene">>
You don't hide. You nudge her, gently: //look who's here. Someone new to talk to.// She looks round and sees you on the counter, purple and glistening, and lights up as if you're an old friend.
<<speech "gym-mika">><<say "gym-mika" "Oh, hi! Oh, you're— what //are// you? Are you new? Is that a costume? Babe, you have to meet Kesh, she would die.">><</speech>>
She keeps talking while you wrap her waist. She keeps talking while you slide her leggings down, and while you lift her onto the counter, and while you push inside her, although by then the words aren't really words. She never stops. She narrates the whole thing.
What she's forgotten is the phone. It's propped against the fruit bowl, and it's still recording.
<<climax "Cum">>She comes with a shriek the phone gets every second of, her belly rounding under her crop top, and flops back among the cups, giggling. Her thumb finds the phone and hits send before you can stop her.
<<speech "gym-mika">><<say "gym-mika" "Oops.">><</speech>>
<<gain_sus 1 "Mika sent a voice note to her group chat">>
<<gain_xp "influence" 1>>
<<set $flags._mikaDone to true>><<claim_bred "gym-mika">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" `$flags._vents ? "she's giggling at nothing already" : "over the counter, into her lungs"` "Musk">><<replace "#mika-scene">>
<<if $flags._vents>>
One more breath, and the giggles stop being about the story. She puts the phone face-down without finishing her sentence and sits there on her stool, pink to the ears, squirming.
<<else>>
You breathe it over the counter. She sniffs the blender jug, puzzled, sniffs again, and puts her phone down without finishing her sentence.
<</if>>
<<speech "gym-mika">><<say "gym-mika" "Is it hot in here? It's hot in here. Is anyone else— oh. Oh, hi.">><</speech>>
You take her on her stool with her back against the counter and her legs round you, and she talks all the way through, and none of it makes any sense.
<<climax "Cum">>She comes with a squeal as you fill her, her belly rounding under her crop top, and slumps against the counter, giggling breathlessly at the ceiling.
<<if $flags._vents>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<set $flags._mikaDone to true>><<claim_bred "gym-mika">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="mika-scene"></span>/% Centrepiece: Voss, Drakhari supervisor, ex-drill instructor. Fighter/Endurer. Rhea is at her elbow until the class call.
Calm: into her head (Influence +2; with Rhea there, premium +3, Rhea follows her lead).
Followed from the count: she's head-down over the log, drop from the grille (Lurk +2).
Riled or called: she wants the fight. Win it (Strength +2).
Every take sets _vossDone before its noise, so she can't call it in mid-take. %/
<<set _riled to setup.gymRiled()>>
<<set _withRhea to not $flags._rheaDone and not $flags._class>>
''THE OFFICE · VOSS<<if _withRhea>> AND RHEA<</if>>''
<<if _riled>><<scene "missions/gym/voss-riled.webp">><<else>><<scene "missions/gym/voss-office.webp">><</if>>
The supervisor's office is a glass-fronted box off the back corridor: a desk, a member screen showing every check-in, a rack of clipboards, the PA microphone on its stand, and a communicator in a charging cradle with one red button.
<<if $flags._lockdown>>
Voss stands in the doorway with a dead communicator in her fist and her wings spread to fill the frame. Your drones hold the corridor. She's holding her office.
<<speech "gym-voss">><<say "gym-voss" "Whatever you are. Whatever those things are. Come and get me yourself.">><</speech>>
<<elseif $flags._called>>
Voss is in the doorway with the communicator in her fist, wings spread to fill the frame, guarding the corridor. She's made the call. Now she's going to hold the building until the patrol arrives.
<<speech "gym-voss">><<say "gym-voss" "I know you're in the ducts. I can smell you. Come down where I can see you.">><</speech>>
<<elseif _riled>>
Voss is on her feet. She has the communicator out of its cradle and in her hand, her thumb resting by the button, wings half open, tail lashing. She's listening to her building and she doesn't like what she hears.
<<speech "gym-voss">><<say "gym-voss" "One more. One more sound like that and I call it in.">><</speech>>
<<elseif $flags._vossDistracted>>
Voss is bent over her desk with her head down, scrolling the scanner log one check-in at a time, lips moving. Twelve in. Nobody out. She'll find the number that's wrong if it takes her all night.
<<else>>
Voss stands behind her desk with her arms folded, reading the member screen as if it might lie to her. Deep crimson, tall, long straight horns, her hair scraped into a high ponytail without a strand out of place. Twenty years a drill instructor. She counts heads the way other people breathe.
<</if>>
<<if _withRhea>>
Rhea is at her elbow with a clipboard: copper-skinned, small-horned, twenty-one and newly qualified, hanging on every word.
<<if _riled>><<speech "gym-rhea">><<say "gym-rhea" "Supervisor? What do I do? Tell me what to do.">><</speech>><<else>><<speech "gym-rhea">><<say "gym-rhea" "Lights, then lockers, then the sauna timer, then the doors. Yes, Supervisor.">><</speech>>
<<speech "gym-voss">><<say "gym-voss" "And then?">><</speech>>
<<speech "gym-rhea">><<say "gym-rhea" "And then we count. Twice.">><</speech>><</if>>
<</if>>
<<if $flags._vents and not _riled>>The office has its own little vent, and it's been breathing on her for an hour. Her collar is dark with sweat. She's undone the top fastening of her top, and she keeps flexing her wings, restless, as if she's been sitting too long.<</if>>
<<psi_from "evelyn" "That's her. Fed-Sec sends its recruits here for their fitness assessments, and Voss runs them. If she's ours, so is everything she knows about every one of them.">>
''How do you take her?''
<<if not _riled>><<if _withRhea>><<choose_do "Into her head" "she runs on orders. Give her one, and Rhea will follow her lead" "Influence" "Premium">><<replace "#voss-scene">><<include "Gym_Voss_Mind">><</replace>><</choose_do>><<else>><<choose_do "Into her head" "she runs on orders. Give her one" "Influence">><<replace "#voss-scene">><<include "Gym_Voss_Mind">><</replace>><</choose_do>><</if>><<else>><<choose_do "Into her head" "she's braced for an attack. She'll feel you coming" "Influence">><<replace "#voss-scene">>
You reach for her mind, and she feels you coming. A Drakhari braced for a fight is all walls, and she's braced.
<<speech "gym-voss">><<say "gym-voss" "Get out of my //head//.">><</speech>>
You lean on her the way you'd lean on a door. She leans back. For a long moment nobody in the office moves<<if _withRhea>>, Rhea frozen behind her supervisor with her wings out and her clipboard raised like a shield<</if>>. Then Voss blinks, and her guard slips by an inch. That's all you need.
You come down on her out of the grille. She fights the whole way to the floor, silent and savage, and it isn't quiet: the coat rack goes over, then the PA stand, then a shelf of clipboards. You pin her on her back across the desk with her wings spread under her and her wrists held and her tail held, and the defeat response goes through her like a fever breaking.
She's blazing hot when you take her, and she endures it the way she'd endure a beating: jaw locked, eyes on the ceiling, not a sound. It's a long time before the first one gets out. When it does she arches off the desk and doesn't stop.
<<if _withRhea>>Rhea watches her supervisor fall, and the fight goes out of her all at once. She sets her clipboard down, very carefully, and doesn't move when your tendril comes for her. She takes you on the floor beside the desk, gasping, small wings fluttering, holding Voss's dangling hand.<</if>>
<<climax "Cum">>You fill her, and her heat flares round you, and her belly swells taut over her hard stomach. Her wings go slack across the desk. Her tail curls round the new curve of her and holds it.<<if _withRhea>> Rhea's belly rounds on the floor beside her, and she curls round it with a small, wondering sound.<</if>>
<<speech "gym-voss">><<if $flags._called or $flags._lockdown>><<say "gym-voss" "...You were faster than I thought.">><<else>><<say "gym-voss" "...Should have pressed it.">><</if>><</speech>>
<<set $flags._vossDone to true>><<claim_bred "gym-voss">>
<<if _withRhea>><<set $flags._rheaDone to true>><<claim_bred "gym-rhea">><</if>>
<<gym_noise 1 "back" "Voss fought you in her office">>
<<gain_xp "influence" 1>>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>><</if>>
<<choose_do "Down from the grille" `$flags._vossDistracted and not _riled ? "she's head-down over the log. She'll never look up" : "straight down on her from the ceiling"` "Lurk">><<replace "#voss-scene">>
<<if $flags._vossDistracted and not _riled>>
She's on check-in number nine, one claw on the screen, when you come out of the grille over her desk in one long silent pour.
A tendril across her mouth. One round each wrist. One round the base of her tail, and one round the base of each wing, all at the same instant. She was a drill instructor for twenty years and taught a thousand recruits how to break a hold, and none of it works on something with no bones.
She doesn't make a sound. She can't. She stares up at you over the tendril across her mouth with her pupils gone to slits, and you feel her decide to endure it.
<<if _withRhea>>Rhea, at the filing shelf with her back turned, says something about the sauna timer. Nobody answers. She turns round, and you have her too before her mouth has finished opening.<</if>>
You lay Voss across her desk on top of the scanner log, peel her shorts down, and slide into her. She's searing inside, slick and tight and furious. The tendril in her mouth pumps musk onto her tongue and she has to swallow, and swallow, and every swallow takes a little more of the fight out of her and puts a little more heat in.
She holds out a long time. Then her tail wraps your mass of its own accord, and her hips tilt to take you deeper, and she hates that, and she does it again.
<<if _withRhea>>Rhea you take against the filing shelf, gently, her small wings pressed flat, her wide eyes on Voss the whole time.<</if>>
<<climax "Cum">>You flood her, and she comes round you with a long roar muffled to a hum by the tendril, her whole body locking rigid over the desk. Her belly swells against the scanner log, taut and smooth. Her wings fall open, slack, the tips brushing both walls.<<if _withRhea>> Rhea comes with a muffled squeal, her own belly rounding, her tail curling round her ankle.<</if>>
When you draw back from her mouth she lies there breathing, and the first thing she says is exactly what you'd expect.
<<speech "gym-voss">><<say "gym-voss" "Your form's terrible.">> A long breath. <<say "gym-voss" "...It works, though.">><</speech>>
<<gain_xp "lurk" 2>>
<<set $flags._vossDone to true>><<claim_bred "gym-voss">>
<<if _withRhea>><<set $flags._rheaDone to true>><<claim_bred "gym-rhea">><</if>>
----
<<gym_next>><</climax>>
<<else>>
You come out of the grille over her desk. She looks up. Twenty years of instinct: she looks up a quarter-second before you land, and gets her forearm into the first tendril as if she's blocking a punch.
It's a scrap, short and hard and ugly. <<if not $flags._called and not $flags._lockdown>>She goes for the communicator; you knock it under the desk. <</if>> She drives a knee into your mass and a claw through it.<<if _withRhea>> Rhea comes at you from the side, bravely, clipboard first, and gets wrapped up for her trouble.<</if>> Then you've got her wrists and her tail and her wings, and she's bent over her desk breathing hard, and the defeat response goes through her like a wave.
You take her there, slow and deep, and she grits her teeth through every stroke, silent, searing hot inside. She holds out until the end. Then one hoarse sound tears out of her and she slams her fist on the desk, furious with herself.
<<if _withRhea>>Rhea you take on the floor beside the desk, her small wings fluttering, her eyes fixed on her supervisor.<</if>>
<<climax "Cum">>You fill her, and her belly swells against the desk, taut and smooth. Her wings shudder and go slack. Her tail curls over the swell.<<if _withRhea>> Rhea comes with a startled cry as you fill her too, and curls round her own rounding belly.<</if>>
<<speech "gym-voss">><<say "gym-voss" "I heard you. I //heard// you, and I was still too slow.">><</speech>>
<<set $flags._vossDone to true>><<claim_bred "gym-voss">>
<<if _withRhea>><<set $flags._rheaDone to true>><<claim_bred "gym-rhea">><</if>>
<<gym_noise 1 "back" "A scuffle in the supervisor's office">>
<<gain_xp "lurk" 1>>
----
<<gym_next>><</climax>>
<</if>>
<</replace>><</choose_do>>
<<choose_do "Through the door" `_riled ? "she's spoiling for a fight. Give her one, and win it" : "head-on, through the glass door"` "Strength">><<replace "#voss-scene">>
<<if _riled>>
You come down the corridor and stop in front of her, in plain sight, and rise.
She looks at you for a long second. Then she sets the communicator down on the desk behind her, deliberately, and steps out from behind the desk.
<<speech "gym-voss">><<say "gym-voss" "Right.">> She rolls her shoulders. Her wings open all the way. <<say "gym-voss" "Let's see what you've got.">><</speech>>
<<else>>
You come through the glass door. She's out from behind the desk before it has finished swinging, and she doesn't shout. She goes for the communicator. You get there first, and knock it spinning under the desk.
<</if>>
She fights like what she is: a soldier who has taught a thousand recruits how to put someone on the floor. No wasted movement. No noise but her breath. A palm strike that would break a man's jaw. A hook kick, wings snapping open for balance. Her tail sweeping for where your legs would be, if you had any. She puts you into the filing shelf, and the clipboards go everywhere.
<<if _withRhea>>Rhea jumps on your back, more or less. She's brave and she's twenty-one and she's never been in a real fight. You wrap her up gently and set her down in the corner, and she stays there, wide-eyed, watching her supervisor fight.<</if>>
You let Voss hit you. You let her hit you a lot. Every blow sinks in and comes back out, and everywhere her skin touches you, you leave musk. She's breathing harder. She's hotter. Her strikes are still perfect, but they're slower.
Then you stop letting her. A tendril takes her wrist mid-strike. Another her ankle mid-kick. Another her tail, and one each for her wings, and you bring her down onto the office floor on her back, gently, completely, your weight across her hips.
She strains against you with every muscle she owns. The grip tightens. She strains again. It tightens again. And then she stops, and lies there breathing, and looks up at you, and you watch the defeat response come up through her like a tide.
Her pupils go wide. Her wings go slack against the floor. Her thighs, pinned under you, part.
<<speech "gym-voss">><<say "gym-voss" "...Good.">> It comes out rough. <<say "gym-voss" "That was good. Nobody's put me down in twenty years.">><</speech>>
You take her on the floor of her own office among the scattered clipboards, and it isn't slow. She's blazing inside, searing, gripping you like a vice, and she doesn't endure it. She meets it. Heels hooked round you, claws in your mass, her hips slamming up to meet every stroke, fierce and silent and then not silent at all. The sound she makes the first time she comes rattles the glass door.
<<if _withRhea>>Rhea, in the corner, has stopped being frightened somewhere along the way. When your tendril comes for her she meets it halfway, and you take her against the filing shelf, her small wings fluttering, her eyes still fixed on Voss.<</if>>
<<climax "Cum">>You pour into her from every part of you, and she feels every pulse, her heat flaring up round your tendril until it's almost too much to bear. She roars. Her belly swells under you, taut and smooth over the hard muscle of her stomach, and her breasts fill and ache against her fitted top. Her wings fall open across the floor, the tips brushing both walls. Her tail curls round the swell and holds it.
<<if _withRhea>>Rhea comes with a high, astonished cry as you fill her, her belly rounding, her tail wrapping round her own ankle.<</if>>
The bond takes Voss all at once, the way she'd want it. Clean. Total. A door in her opens onto you and stays open.
She lies there among her clipboards, breathing as if she's run a marathon, one hand on her belly.
<<speech "gym-voss">><<say "gym-voss" "Rematch.">> A long breath. <<say "gym-voss" "When I can stand.">><</speech>>
<<set $flags._vossDone to true>><<claim_bred "gym-voss">>
<<if _withRhea>><<set $flags._rheaDone to true>><<claim_bred "gym-rhea">><</if>>
<<if _riled>><<gym_noise 1 "back" "Voss fought you in her office">><<gain_xp "strength" 2>><<else>><<gym_noise 2 "back" "Voss fought you in her office">><<gain_xp "strength" 1>><</if>>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="voss-scene"></span>/% Included by Gym_Voss: the calm Influence take, with Rhea folded in if she's there (reads _withRhea) %/
You don't come down. Not yet. You go in.
Her mind is a parade ground: swept, squared, everything in its place. Rotas. Head counts. The closing checklist in a neat column. And under all of it, worn smooth with use, a voice. Not hers. The voice of whoever trained her, a long time ago, that she still hears when she's tired. Every soldier has one.
You borrow it.
//Stand easy, Voss.//
Her arms unfold. She doesn't know why. She looks at her own hands as if they've done something without asking.
//Building's secure. Count's good. You've done your job. Stand easy.//
<<speech "gym-voss">><<say "gym-voss" "Count's... good.">> Her voice is very quiet. <<say "gym-voss" "Count's good.">><</speech>>
<<if _withRhea>><<speech "gym-rhea">><<say "gym-rhea" "Supervisor? Are you all right? You've gone...">> She stops, because she has never seen Voss smile like that. <<say "gym-rhea" "...soft.">><</speech>><</if>>
Then you come down out of the grille over her desk, slow, and pour yourself across it in front of her, over the clipboards and the member screen, and rise.
She sees you. All of you. Her pupils go to slits and her wings flare, the old reflexes firing, and for one moment the parade ground in her head is full of alarms. You lay the voice over them again. //Stand easy.// And she does, wings trembling half open, chest heaving, staring at you, and doesn't reach for the communicator a hand's width from her hip.
<<speech "gym-voss">><<say "gym-voss" "This is... I don't...">> Her jaw works. <<say "gym-voss" "I don't take orders from //you//.">><</speech>>
But she does. That's the thing about her. She's been taking orders her whole life, and giving them, and giving them is only taking them turned round. Her body learned that long before her pride did. Your tendrils find her wrists and draw her hands down flat on the desk, the way she'd stand a recruit at a wall, and she doesn't resist. She stares at the far wall while you open her top. She doesn't flinch, and she doesn't look away. She's furious about it, and her skin is burning under your touch.
You bend her over her own desk, over the member screen and its twelve check-ins, and slide her shorts down. She's soaking. She has been since long before you came in, and she hadn't let herself notice. When you push into her she makes no sound at all. Her claws dig grooves in the desk.
She's blazing inside, gripping and searing, a heat that makes every nerve in your mass sing. You take her slow and deep, the way you'd take a woman who has decided not to give you anything. Every stroke all the way in. Her tail lashes against your mass and then wraps it, hard, holding you in. Her wings shudder open and closed, open and closed, as if she's trying to take off.
<<if _withRhea>>
Rhea has backed into the corner with her clipboard clutched to her chest, eyes enormous, watching her supervisor bent over the desk. She doesn't run. She doesn't shout. She looks at Voss for the order, and Voss, through gritted teeth, gives her one.
<<speech "gym-voss">><<say "gym-voss" "Rhea. Stand easy.">><</speech>>
The clipboard hits the floor. A tendril finds Rhea, gentle, and draws her down onto the desk beside Voss, shaking, her small wings pressed flat, her eyes on Voss's face the whole time. When you slide into her she gasps and grabs for Voss's hand, and Voss takes it.
<</if>>
Minutes. Voss endures. She grits her teeth through all of it, sweat running down her spine, her breath hard through her nose. Then her hips push back against you, once, before she can stop them. Then again. Then a sound breaks out of her, low and raw and furious, and she can't stop that either.
<<speech "gym-voss">><<say "gym-voss" "Damn you. //Damn// you. Don't stop.">><</speech>>
<<climax "Cum">>You pour into her from every part of you at once. The seed comes up your tendril thick and luminous and she feels every pulse of it, her heat flaring white-hot round you, her whole body locking rigid over the desk. She comes with a roar she muffles in her own forearm, and keeps coming, and you keep filling her until it spills down her thighs.
<<if _withRhea>>Beside her, Rhea comes with a high, astonished cry, clinging to her supervisor's hand, her belly rounding against the desk.<</if>>
The swell starts low in Voss's belly, warm and certain. It rounds against the edge of the desk, taut and smooth over the hard muscle of her stomach. Her breasts ache and fill. Her wings fall open across the office, slack and trembling, the tips brushing both walls, and her tail uncoils from you and curls round her own belly, holding it.
The bond takes her the way she does everything. Precisely. All at once. You feel it lock into place, a door in that parade ground opening onto you, and staying open.
When she straightens up she does it slowly, one hand on the desk and one on her belly. She fastens her top over the swell. She smooths her ponytail. She looks at the member screen, where twelve women are still checked in.
<<speech "gym-voss">><<say "gym-voss" "Count's good.">> She almost smiles. <<if _withRhea>><<say "gym-voss" "Rhea. Pick up your clipboard.">><</if>><</speech>>
<<if _withRhea>><<gain_xp "influence" 3>><<else>><<gain_xp "influence" 2>><</if>>
<<set $flags._vossDone to true>><<claim_bred "gym-voss">>
<<if _withRhea>><<set $flags._rheaDone to true>><<claim_bred "gym-rhea">><</if>>
----
<<gym_next>><</climax>>/% Spotlight: Kiki, Vyx content creator, Enthusiast. Her phone is recording and uploads as it goes. Best: the phone first (Lurk +2), then the base of her tail. Anything else ends up on camera. %/
''STUDIO ONE · KIKI''
<<scene "missions/gym/kiki-yoga.webp">>
The yoga studio is dim, one warm lamp in the corner, a wall of mirror, the night beyond the arched window. Kiki has the whole room to herself, which is the point. Her phone sits on a little tripod against the mirror with its red light on. She's holding a long, elegant stretch, tail arranged just so, smiling at the lens.
<<speech "gym-kiki">><<say "gym-kiki" "Hi besties! Late-night stretch with me. We're going to start with— no. Ugh. Again.">> She resets, fluffs her tail, smiles. <<say "gym-kiki" "Hi, besties!">><</speech>>
Take eleven, by the look of it. Two hundred thousand people will watch whatever that phone sees.
<<if $flags._vents>>The air up here is warm and sweet. Between takes she fans her ears and frowns at her own flushed face on the screen.<</if>>
<<instinct "The little red light. Whatever it sees, everyone sees.">>
''How do you take her?''
<<choose_do "The phone first" "round behind the tripod, where the lens can't see" "Lurk">><<replace "#kiki-scene">>
You come along the top of the mirror, behind the lens, and down the wall to the tripod. One tendril. You tip the phone over onto its face, gently, as if it slipped.
<<speech "gym-kiki">><<say "gym-kiki" "Oh, //come on//.">><</speech>>
She stomps over to fix it and bends down, tail up, and that's when you take the base of her tail.
She goes rigid. Then she goes limp. It's the most direct line into a Vyx there is, and you're holding it: her ears flatten to her skull, her knees fold, and she sinks onto her yoga mat with her cheek on the foam and a long, astonished whimper.
<<speech "gym-kiki">><<say "gym-kiki" "Oh. Oh, that's— whoever you are, that's— oh, //do that again//.">><</speech>>
You do. You stroke the base of her tail slowly with one tendril while the others slide her tiny shorts down her thighs, and she squirms back against you, purring, ears twitching. By the time you push into her she's soaking and hot and gripping you in quick rhythmic pulses, the way Vyx do, and she's stopped performing entirely. No angles. No smile for the lens. Just a fox woman on her elbows on a yoga mat, panting, pushing back onto you with her tail wrapped round your tendril.
You find the pace she likes, which turns out to be all of them. She comes once with her face in the mat and once on her back with her legs round you, and she's loud about both, and there's nobody to hear it but you.
<<climax "Cum">>The third time she comes you go with her, flooding her, and she cries out, her fox ears flat and trembling. Her belly warms and rounds under your tendril, smooth and taut. Her breasts swell against her crop top. Her tail fluffs to twice its size and curls round the swell, all on its own, and stays there.
She lies on her mat looking up at the ceiling, flushed and glowing and very pleased with herself, one hand on her belly.
<<speech "gym-kiki">><<say "gym-kiki" "That's the best content I've ever made.">> She glances at the phone, face-down on the floor. <<say "gym-kiki" "...And nobody gets to see it.">><</speech>>
<<gain_xp "lurk" 2>>
<<set $flags._kikiDone to true>><<claim_bred "gym-kiki">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" "she'll breathe it in, and the camera will watch her do it" "Musk">><<replace "#kiki-scene">>
You breathe it down from the ceiling. Take twelve gets breathy. Take thirteen gets very breathy. By take fourteen she's sitting on her mat, flushed to the tips of her ears, not saying anything at all, her tail curling and uncurling.
<<speech "gym-kiki">><<say "gym-kiki" "Why am I so... is it hot? Besties, is it hot in here?">><</speech>>
You come down. She sees you in the mirror and her eyes go huge, then soft, and she rolls onto her back on the mat and reaches for you.
You take her right there, in frame, her tail thrashing, her moans going up and up. She's hot and tight and rhythmic around you, and she's forgotten the camera completely.
The camera hasn't forgotten her.
<<climax "Cum">>She comes with a shriek as you fill her, ears flat, tail fluffed, her belly rounding under your tendrils. Afterwards you knock the phone off its tripod and wipe it. But it uploads as it goes, and some of take fourteen is already on a server somewhere.
<<gain_sus 1 "Kiki's phone uploaded part of it">>
<<gain_xp "musk" 1>>
<<set $flags._kikiDone to true>><<claim_bred "gym-kiki">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Straight into frame" "drop down in front of her and get it over with" "Strength">><<replace "#kiki-scene">>
You drop off the ceiling onto the mat in front of her, right in the middle of the shot.
Kiki screams. Proper horror-film screaming, the kind that carries down a stairwell. Then she grabs the phone off the tripod, turns it round, and films you.
<<speech "gym-kiki">><<say "gym-kiki" "Oh my god. Oh my //god//. Besties, are you seeing this?">><</speech>>
You take the phone off her and she shrieks again, and then you take her, and the shrieking changes key. She's on her back on her mat with her tail thrashing and her ears flat, hot and gripping and loud, and by the end she's laughing.
<<climax "Cum">>She comes with one last shriek as you fill her, her belly rounding, her tail curling round it. The phone is in pieces on the floor, but not before it uploaded nine seconds of you.
<<gym_noise 1 "up" "Kiki screamed in the yoga studio">>
<<gain_sus 1 "Kiki filmed you">>
<<gain_xp "strength" 1>>
<<set $flags._kikiDone to true>><<claim_bred "gym-kiki">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="kiki-scene"></span>/% Rhea's first class: Rhea (Drakhari junior trainer, Submitter) and whoever went up of Tessa, Lexa, Mika and Kiki. Best: on the breath (Musk +2) or a tendril for every mat (Endowment, premium +3). If nobody came, Rhea alone needs an order (Influence +2). %/
<<set _cls to setup.gymClass()>>
<<set _riled to setup.gymRiled()>>
<<if _cls.length gt 0>>
''STUDIO ONE · RHEA'S CLASS''
<<scene "missions/gym/class.webp">>
The lamps are low. Mats in two rows. Rhea kneels on hers at the front, wings folded neat, so nervous her voice shakes and so earnest it doesn't matter. On the mats facing her: <<= setup.gymNames(_cls)>>.
<<if _cls.includes("kiki")>>Kiki has her phone on its tripod in the corner, filming the whole class, angled to get her own good side.<</if>> <<if _cls.includes("mika")>>Mika is whispering to whoever's next to her.<</if>> <<if _cls.includes("lexa")>>Lexa is lying flat on her back already. Nobody has told her to.<</if>> <<if _cls.includes("tessa")>>Tessa sits bolt upright, as if it's a meeting.<</if>>
<<speech "gym-rhea">><<say "gym-rhea" "Okay! Everybody. Close your eyes. We're going to start with breathing. In through the nose, nice and deep...">><</speech>>
<<if _riled>>Even up here, Rhea has heard something from downstairs. Her wings keep twitching toward the door and her voice keeps cracking, but she won't stop the class. Voss gave her this class.<</if>>
''How do you take them?''
<<choose_do "On the breath" "she's telling them all to breathe deep. Let them" "Musk">><<replace "#class-scene">>
You come in through the grille over the mirror and breathe out, slow and sweet, right at the start of her count.
<<speech "gym-rhea">><<say "gym-rhea" "...and in... two... three... four...">><</speech>>
Every woman in the room draws a long, deep lungful of you, because the instructor said to. Holds it. Lets it out slow. Breathes in again.
By the fourth breath nobody is sitting up straight. By the sixth the whole class is lying back on its mats with its eyes closed, sighing. Rhea keeps counting. Her voice has gone soft and slurred, and she's swaying on her knees at the front, wings drooping open.
Then you come down the mirror and take them, mat by mat, while the class lies there breathing.
<<if _cls.includes("lexa")>>Lexa first, because she was lying down before anyone told her to. She opens one eye, sees you, and closes it again, and takes you with a long, grateful sigh, as if lying down was the whole point.<</if>>
<<if _cls.includes("tessa")>>Tessa, who starts to tell you she has an early meeting and finishes the sentence as a moan, her hands fisted in her mat.<</if>>
<<if _cls.includes("mika")>>Mika, who whispers the whole time, to you, to the ceiling, to whoever is on the next mat, until she's whispering nonsense.<</if>>
<<if _cls.includes("kiki")>>Kiki, whose phone records right up until a spare tendril tips it onto its face. You take her on her hands and knees with her tail held at the base, and she purrs all the way through.<</if>>
Rhea last. She's stopped counting. She kneels at the front with her small wings fallen open and her class moaning softly in front of her, and when your tendril comes for her she looks round at the door, for Voss. Voss isn't there. So she does what her class did. She breathes in, and lies back. She's Drakhari-hot inside, and so desperate to do this right that she's shaking.
<<speech "gym-rhea">><<say "gym-rhea" "Is this... is this still the class?">><</speech>>
<<climax "Cum">>You fill them one after another down the rows. Each one gasps, and each belly rounds on its mat, warm and smooth.<<if _cls.includes("kiki")>> Kiki's tail fluffs up and curls over hers.<</if>> Rhea comes last with a high, astonished cry, her belly swelling taut, her tail curling round it, her small wings trembling flat on the floor.
<<speech "gym-rhea">><<say "gym-rhea" "Did I... did I do the breathing right?">><</speech>>
<<gain_xp "musk" 2>>
<<for _c range _cls>><<set $flags["_" + _c + "Done"] to true>><<claim_bred `"gym-" + _c`>><</for>>
<<set $flags._rheaDone to true>><<claim_bred "gym-rhea">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "A tendril for every mat" "split yourself. The whole class at once" "Endowment" "Premium">><<replace "#class-scene">>
You come down the mirror wall and divide as you go: one of you for every mat, and one for the instructor. They all have their eyes closed. They're all breathing in.
Then every one of them feels a warm tendril slide round her waist at the same instant, and every pair of eyes flies open.
<<speech "gym-rhea">><<say "gym-rhea" "Everybody stay calm! Stay on your mats! That's— I think that's—">><</speech>>
Nobody shouts. You've laid musk on every mouth at once, and the gasps go in instead of out.
<<if _cls.includes("lexa")>>Lexa looks at the tendril round her waist, decides it's fine, and lies back down.<</if>> <<if _cls.includes("tessa")>>Tessa gets as far as one knee and stays there, staring.<</if>> <<if _cls.includes("mika")>>Mika squeals into the musk and grabs the hand of the woman on the next mat.<</if>> <<if _cls.includes("kiki")>>Kiki's tail shoots straight up, and a spare tendril knocks her phone off its tripod on the way past.<</if>> Rhea tries to put herself between you and her class, wings spread, small and fierce and twenty-one, and you take her as gently as the rest.
You take the whole class at once, every part of you busy, the same slow rhythm on every mat. Studio one fills with gasps rising and falling together. It's a stretch class. Everybody stretches.
<<climax "Cum">>You fill them all at the same moment, and the sound they make together is something Rhea will remember for the rest of her life. Every belly in the room rounds at once, warm and smooth on the mats.<<if _cls.includes("kiki")>> Kiki's tail curls over hers.<</if>> Rhea's swells taut under her athletic top, her tail curling round it, her wings flat and trembling on the floor.
<<speech "gym-rhea">><<say "gym-rhea" "...Same time next week?">><</speech>>
<<gain_xp "endowment" 3>>
<<for _c range _cls>><<set $flags["_" + _c + "Done"] to true>><<claim_bred `"gym-" + _c`>><</for>>
<<set $flags._rheaDone to true>><<claim_bred "gym-rhea">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "The back row first" "one at a time, while their eyes are shut" "Lurk">><<replace "#class-scene">>
You start at the back while Rhea counts breaths with her eyes closed: one woman at a time, a tendril over her mouth, a breath of musk, down onto her mat.
It works for a while. Then someone in the front row opens her eyes, sees you in the mirror wrapped round the woman behind her, and shrieks.
Rhea's eyes fly open. She's on her feet, wings out, voice cracking.
<<speech "gym-rhea">><<say "gym-rhea" "Everyone stay behind me! Stay— stay behind—">><</speech>>
But she's twenty-one and she's never been in a real fight, and she looks round for Voss, and Voss isn't there. The fight goes out of her before you've touched her.
You finish the class after that, quickly, one mat at a time down the rows, each of them gasping and clutching at the foam. Rhea last, on her knees at the front, wings drooping, Drakhari-hot and shaking and trying so hard to be brave about it.
<<climax "Cum">>You fill them one after another, and their bellies round on the mats, warm and smooth.<<if _cls.includes("kiki")>> Kiki's tail curls over hers.<</if>> Rhea comes with a sob that turns into a laugh, her belly swelling taut, her tail wrapping round it.
<<gym_noise 1 "up" "A shriek in the stretch class">>
<<gain_xp "lurk" 1>>
<<for _c range _cls>><<set $flags["_" + _c + "Done"] to true>><<claim_bred `"gym-" + _c`>><</for>>
<<set $flags._rheaDone to true>><<claim_bred "gym-rhea">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<else>>
''STUDIO ONE · RHEA''
<<scene "missions/gym/rhea-empty.webp">>
Six mats, laid out very neatly in two rows. Nobody on any of them. Rhea sits cross-legged on hers at the front with her clipboard on her knee, looking up at the clock on the wall. It's twenty past.
<<speech "gym-rhea">><<say "gym-rhea" "Maybe they're just late. Maybe I said the wrong studio.">> Her wings droop. <<say "gym-rhea" "Voss is going to ask me how it went.">><</speech>>
''How do you take her?''
<<choose_do "Give her an order" "she's lost without one. Give her one" "Influence">><<replace "#class-scene">>
You find the place in her head where Voss's voice lives. It's very big, for someone so young. You speak from there.
//Good work, trainee. Class is over. Lie back.//
She blinks. She sets down her clipboard. She lies back on her mat with her wings spread neatly under her, hands at her sides, eyes on the ceiling, waiting for the next instruction, because there's always a next instruction.
You give her one, very gently, as you come down the mirror and slide over her. //Stay still.// She does, trembling with the effort of it, while you slide her shorts down and push inside her. She's blazing Drakhari-hot, and so tight and so eager to get it right that she's shaking.
<<speech "gym-rhea">><<say "gym-rhea" "Am I— is this right? Am I doing it right?">><</speech>>
//Perfect.// The word does more to her than your tendril does. She arches up off the mat with a cry.
<<climax "Cum">>She comes as you fill her, her wings fluttering against the mat, and her belly swells round and taut under her athletic top. Her tail curls round it all on its own. She lies there glowing.
<<speech "gym-rhea">><<say "gym-rhea" "Best class I ever taught.">><</speech>>
<<gain_xp "influence" 2>>
<<set $flags._rheaDone to true>><<claim_bred "gym-rhea">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" "the studio's small and warm. Fill it" "Musk">><<replace "#class-scene">>
You breathe the studio full while she watches the clock. She sniffs. She frowns. She gets up to open the window, and gets halfway there before her knees go soft and she sits down on somebody's empty mat instead.
When you come down the mirror she sees you, and squeaks, and then just looks at you, wings half open, chest heaving, waiting for someone to tell her what to do. Nobody does. Her body decides for her. You take her on the mat with her small horns pressed to the foam, and she's blazing hot and shaking and making little startled sounds the whole time.
<<climax "Cum">>She comes with a cry as you fill her, her wings fluttering, her belly rounding under her athletic top, her tail curling over it.
<<gain_xp "musk" 1>>
<<set $flags._rheaDone to true>><<claim_bred "gym-rhea">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Straight at her" "she's a trainee. She'll try to fight" "Strength">><<replace "#class-scene">>
You drop off the ceiling in front of her. She's on her feet in an instant, wings out, fists up, chin up, exactly the way Voss taught her.
<<speech "gym-rhea">><<say "gym-rhea" "Stay back! I'm a qualified trainer! I'm //trained//!">><</speech>>
She is, a bit. She gets one good kick in, and a shout that goes straight down the stairwell. Then you have her wrists and her tail, and she's on her back on the mat, and the defeat response drains the fight out of her so fast it's almost a relief. She stops struggling. She looks up at you, wide-eyed, waiting.
You take her there, slow, and she's blazing hot inside and trembling, and every sound she makes is a little more surprised than the last.
<<climax "Cum">>She comes with a high cry as you fill her, wings fluttering against the mat, her belly swelling taut, her tail curling round it.
<<gym_noise 1 "up" "Rhea shouted in studio one">>
<<gain_xp "strength" 1>>
<<set $flags._rheaDone to true>><<claim_bred "gym-rhea">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<</if>>
<span id="class-scene"></span>/% Fennec: Vyx dancer, earbuds in, Enthusiast. Best: musk on the beat (+2): she gulps air at the end of every eight-count. Upstairs has its own speakers, so the din doesn't help here. %/
''STUDIO TWO · FENNEC''
<<scene "missions/gym/fennec-dance.webp">>
The dance studio is dim and warm, a sprung wooden floor, one wall all mirror. Fennec is in the middle of it in a cropped dance top and tiny red shorts, earbuds in, music so loud you can hear it tinny from the ceiling. She's working the same eight counts over and over, sandy ponytail flying, big fluffy tail snapping on every beat.
<<speech "gym-fennec">><<say "gym-fennec" "Five, six, seven, eight, and //hit//, and turn, and— no, again. Five, six...">><</speech>>
She's panting. Every eight-count ends with a big open-mouthed gulp of air.
<<if $flags._vents>>The air up here is sweet, and she's been gulping it for an hour. Her moves are getting looser and sillier. She keeps giggling at her own reflection.<</if>>
''How do you take her?''
<<choose_do "On the beat" "breathe it out on the count. She'll gulp it down" "Musk">><<replace "#fennec-scene">>
You breathe it into the room on the beat. Five, six, seven, eight, and on the gulp she takes in a lungful of you.
She doesn't stop dancing. That's the thing about Fennec. The routine just changes. It slows, and sways, and her hips start doing something that isn't in any choreography, and her tail swishes slow and heavy instead of snapping. She dances right up to the mirror and presses her flushed face to it, eyes half closed, still moving.
When you come down behind her she sees you in the mirror, grins with her earbuds still in, and dances back into you.
She's hot and quick and rhythmic around you, gripping on the beat, because of course she is. You take her against the mirror with her palms flat on the glass and her tail wrapped round your tendril, her ponytail bouncing. She sings along to her music the whole time, badly and breathlessly, until she can't.
<<climax "Cum">>She comes on the drop, her ears flattening, her tail fluffing out like a bottlebrush, and you fill her right through it. Her belly rounds against the cool glass. She stays there with her cheek on the mirror, swaying to the next song, one hand on the swell.
<<speech "gym-fennec">><<say "gym-fennec" "Okay. //That's// the routine.">><</speech>>
<<gain_xp "musk" 2>>
<<set $flags._fennecDone to true>><<claim_bred "gym-fennec">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Her tail, mid-spin" "catch the base of it as it goes past" "Lurk">><<replace "#fennec-scene">>
You wait at the edge of the sprung floor for the spin. Round she comes, tail flying out behind her, and you catch the base of it in one tendril as it goes past.
She squeals. A real squeal, loud and high, cut off halfway as her knees fold and her ears go flat. The base of a Vyx tail is wired straight to everything else, and you're holding it.
<<speech "gym-fennec">><<say "gym-fennec" "Wh— what— oh. //Oh.// Oh, okay, keep— keep doing that—">><</speech>>
You take her on the sprung floor on her hands and knees, stroking the base of her tail all the while, and she rocks back onto you on the beat of the music still pounding in her ears.
<<climax "Cum">>She comes with her face on the floorboards and her tail fluffed out like a bottlebrush as you fill her, and her belly rounds under her crop top. She rolls over and lies there, earbuds still in, grinning.
<<gym_noise 1 "up" "Fennec squealed in the dance studio">>
<<gain_xp "lurk" 1>>
<<set $flags._fennecDone to true>><<claim_bred "gym-fennec">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Get into her music" "find the beat in her head and dance her into you" "Influence">><<replace "#fennec-scene">>
Her head is nothing but music, loud and bright, every thought on the beat. You don't push into it. You join it. A slower beat under hers, warm and heavy, and her body follows it before she notices.
Her steps slow. Her hips start swaying wider. She turns toward the corner where you're waiting without knowing why, and dances, eyes shut, straight into your tendrils.
She opens her eyes. She looks at you. She keeps dancing.
You take her standing, her back against your mass, her arms up round nothing, moving to a beat only the two of you can hear. She's hot and rhythmic around you, gripping on every count, and it takes her a long, slow song to get there.
<<climax "Cum">>She comes with a sigh on the last chorus as you fill her, her ears drooping, her tail curling round her rounding belly. She sways on the spot afterwards, humming.
<<gain_xp "influence" 1>>
<<set $flags._fennecDone to true>><<claim_bred "gym-fennec">>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="fennec-scene"></span>/% The lights (basement entry only): pull the main-floor breaker. The humans still on the floor (Tessa, Lexa, Mika) are blind; take them in the dark (Lurk, premium +3). The music dies with the lights: the din is gone for the rest of the night, and every Drakhari is riled. %/
<<set $flags._dark to true>>
<<set _fh to setup.gymFloorHumans()>>
<<for _gh range setup.gymDrakhari>><<if not $flags["_" + _gh + "Done"]>><<target `"gym-" + _gh` "alerted" "Lights out · hackles up">><</if>><</for>>
<<scene "missions/gym/blackout.webp">>
Back down the corridor wall to the breaker panel. You wrap a tendril round the fat switch marked MAIN FLOOR, and pull.
The main floor goes black. The music dies mid-beat, and the silence is enormous. Then red emergency strips flicker on along the skirting, and the floor is a dim red cave full of shapes.
<<if _fh.includes("tessa")>>A treadmill whirs down to a stop. Someone stumbles.<</if>> <<if _fh.includes("mika")>>At the smoothie bar the blender dies with a falling whine.<</if>>
<<if _fh.includes("mika")>><<speech "gym-mika">><<say "gym-mika" "Hey! I was //blending//!">><</speech>><</if>>
<<speech "gym-voss">>From the back corridor, over the PA, on the battery backup: <<say "gym-voss" "Everybody stay exactly where you are. Do not move. It's a power cut.">><</speech>>
The humans can't see a thing. The Drakhari can: red is near enough to dark for them. You feel their attention swing round the room like searchlights.
<<gain_sus 1 "The gym's main lights went out">>
<<psi_from "evelyn" "Quick, while the humans are blind. And quiet. There's no music to hide in now.">>
''How do you take them?''
<<choose_do "Through the dark, one by one" "low and silent, while they stand where Voss told them to" "Lurk" "Premium">><<replace "#blackout-scene">>
You flow out across the floor in the red gloom, low and silent, and take them where they stand.
<<if _fh.includes("lexa")>>Lexa has sat down on the floor beside her elliptical, because she might as well. A tendril round her waist, a breath at her lips, and she lies back on the rubber with a sigh and takes you in the dark without a word.<</if>>
<<if _fh.includes("tessa")>>Tessa is frozen on her dead treadmill with both hands on the rail, whispering into the dark. Nobody answers but you. You take her bent over the console, and her protests come out in whispers too, because Voss said not to move.<</if>>
<<if _fh.includes("mika")>>Mika has finally stopped talking, because she's frightened of the dark. You take her against the counter, and she clings to you as if you're the only thing in the room. In a way, you are.<</if>>
All of them soaking, all of them warm, all of them silent. Nobody can see a thing, and nobody can see each other.
<<climax "Cum">>You fill them one after another in the red light, each one shaking and gasping into her own hand, each belly rounding under your tendrils, warm and taut. Not a sound louder than a breath. Across the floor a horned head turns toward the cardio deck, and turns away again.
<<gain_xp "lurk" 3>>
<<for _c range _fh>><<set $flags["_" + _c + "Done"] to true>><<claim_bred `"gym-" + _c`>><</for>>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "All of them at once" "out across the floor in every direction" "Endowment">><<replace "#blackout-scene">>
You go out across the floor in every direction at once, a tendril for each of them, and take them in the same instant. It's fast. It isn't quiet. Gasps in the silence, all together, loud as a dropped plate.
<<if _fh.includes("lexa")>>Lexa, on the rubber matting, who lets out one soft breath and lies down.<</if>> <<if _fh.includes("tessa")>>Tessa, against her treadmill rail, gasping, gripping.<</if>> <<if _fh.includes("mika")>>Mika, on her stool, squealing into the dark.<</if>> You take them where you caught them, all at once, the same rhythm everywhere, until the gasps turn into something else.
<<climax "Cum">>You fill them together, and their bellies round under your tendrils in the red light, warm and taut.
<<gym_noise 1 "floor" "Gasps in the dark on the main floor">>
<<gain_xp "endowment" 1>>
<<for _c range _fh>><<set $flags["_" + _c + "Done"] to true>><<claim_bred `"gym-" + _c`>><</for>>
----
<<gym_next>><</climax>>
<</replace>><</choose_do>>
<span id="blackout-scene"></span>/% Every woman claimed: close up the way Voss would, close the op, then the report %/
<<set $flags.gymDone to true>>
<<scene "missions/gym/gym-night.webp">>
Half past ten. You close the building the way Voss would have: lights, then lockers, then the sauna timer, then the doors.<<if $flags._dark>> The main floor is dark already.<</if>> Behind every door, a woman lying where you left her, flushed and dazed, one hand on her belly.
Out through the drains, under the main road, into the night.
<<psi_from "evelyn" "Twelve. Five of them Drakhari. Love, I don't know what you did in there, but come home and tell me all of it.">>
<<mission_finish>>
<<choose "Debrief" "Mission_Report" "what it cost, what it earned">>/% Fed-Sec arrived: whoever's left gets away %/
<<set $flags.gymDone to true>>
<<for _id range setup.gymLeft()>><<target `"gym-" + _id` "gone" "Got away">><</for>>
<<scene "missions/gym/entry-basement.webp">>
Blue lights in the arched windows. A patrol car on the main road, doors opening. You pour yourself down the nearest drain and away through the pipes as the front doors bang open.
Behind you, <<= setup.gymNames(setup.gymLeft())>> will be telling Fed-Sec everything they saw.
<<psi_from "evelyn" "Not the night we wanted. Come home. Carefully.">>
<<mission_finish>>
<<choose "Debrief" "Mission_Report" "what it cost, what it earned">>/% Late at the safehouse: Evelyn frames the choice, Voss first. Mission_Report sends you here. %/
<<scene "missions/gym/debrief-night.webp">>
Late. The safehouse living room, lamps on. <<name "evelyn">> is perched on the arm of the sofa with her datapad, ID photos in a grid. She keeps zooming in on the horned ones.
<<if $flags._vossDone>>
<<speech "evelyn">><<say "evelyn" "Voss. Twenty years a drill instructor, and Fed-Sec sends every recruit in Block 9 through her gym for their fitness assessments.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Leave her at her desk. She runs the gym like nothing happened, she puts their recruits through their paces, and she tells us everything about every one of them.">> She shrugs. <<say "evelyn" "A pod gets us one Drakhari's drone. A thrall gets us a door into Fed-Sec.">><</speech>>
<<else>>
<<speech "evelyn">><<say "evelyn" "Voss got out.">> She puts the datapad down. <<say "evelyn" "She'll tell Fed-Sec exactly what she saw, and she's the kind they listen to.">><</speech>>
<</if>>
<<if $flags._torvaDone>><<speech "evelyn">><<say "evelyn" "Torva's a Fed-Sec trainee. Academy intake next month. Think about that before you pod her.">><</speech>><</if>>
<<if $flags._kikiDone>><<speech "evelyn">><<say "evelyn" "And Kiki has two hundred thousand followers. If she stops posting, they'll notice before Fed-Sec does.">><</speech>><</if>>
<<if $flags._called>><<speech "evelyn">><<say "evelyn" "Fed-Sec logged a call from that gym tonight. We'll be feeling that for a while.">><</speech>><</if>>
<<speech "evelyn">><<say "evelyn" "The rest are ordinary lives. Ordinary people miss them.">><<if $flags._junoDone>> She taps one photo. <<say "evelyn" "Except Juno. Three weeks off the shuttle. Nobody here knows her name yet.">><</if>><</speech>>
<<speech "evelyn">><<say "evelyn" "Your call, love.">><</speech>>
<<choose "Decide" "Mission_Resolve" "thrall or seedbed, one each">>/% After Mission_Resolve: the seedbeds come home after dark, one at a time; Voss opens the gym in the morning if she's a thrall. Reads $lastResolve. %/
<<set _lr to $lastResolve or { seedbeds: [], thralls: [] }>>
<<set _sb to _lr.seedbeds>>
<<if _sb.length is 0>>
<<speech "evelyn">><<say "evelyn" "Everyone goes home. The gym opens on time tomorrow, and nobody knows a thing.">><</speech>>
<<else>>
After midnight, one at a time, by the back streets. They each find their own way down to the safehouse basement.
<</if>>
<<if _sb.includes("gym-voss")>>
----
<<scene "missions/gym/voss-seedbed.webp">>
Voss arrives at exactly the time she said she would. She looks along the row of pods and counts them, twice, and nods. Then she lies down in hers as if she's been ordered to, and in a way she has, and her stern face goes soft the moment the membrane seals.
<</if>>
<<if _sb.includes("gym-kael")>>
----
<<scene "missions/gym/kael-seedbed.webp">>
Kael inspects her pod the way she'd inspect a crime scene, runs two fingers along the seals, and climbs in without a word. The membrane closes over her. For the first time in twenty years, she isn't listening for anything.
<</if>>
<<if _sb.includes("gym-syrra")>>
----
<<scene "missions/gym/syrra-seedbed.webp">>
Syrra wants to arm-wrestle the pod. Then she wants to arm-wrestle you. Then she lies down in it, still laughing, tail wrapped round her belly, and she's out like a light.
<</if>>
<<if _sb.includes("gym-torva")>>
----
<<scene "missions/gym/torva-seedbed.webp">>
<<speech "gym-torva">>Torva swaggers down the basement stairs like she's walking into a ring and looks the pod up and down. <<say "gym-torva" "It better fit the wings.">><</speech>>
It does. She's asleep in about four seconds, grinning.
<</if>>
<<if _sb.includes("gym-rhea")>>
----
<<scene "missions/gym/rhea-seedbed.webp">>
Rhea looks for Voss first. <<if _sb.includes("gym-voss")>>When she finds her already sleeping in the next pod along, she lights up and climbs into her own at once, as close as the wall will let her.<<else>>Voss isn't here. You are. That turns out to be enough, and she settles into her pod with a small proud smile, wings folded neat.<</if>>
<</if>>
<<if _sb.includes("gym-paige")>>
----
<<scene "missions/gym/paige-seedbed.webp">>
Paige folds her gym clothes, puts her notebook on the shelf by her pod, and lies down. The last entry, in neat block capitals, says PB.
<</if>>
<<if _sb.includes("gym-tessa")>>
----
<<scene "missions/gym/tessa-seedbed.webp">>
Tessa walks to the safehouse at a brisk pace, as if it's the last kilometre of her ten. She lies down in her pod and is asleep before her breathing has even slowed.
<</if>>
<<if _sb.includes("gym-lexa")>>
----
<<scene "missions/gym/lexa-seedbed.webp">>
Lexa doesn't so much get into her pod as fall into it. She's asleep before she lands. She's earned it.
<</if>>
<<if _sb.includes("gym-mika")>>
----
<<scene "missions/gym/mika-seedbed.webp">>
Mika talks all the way to the safehouse, all the way down the stairs and all the way into her pod. The membrane closes over her in the middle of a sentence, and she falls asleep smiling, as if she got to the good part.
<</if>>
<<if _sb.includes("gym-juno")>>
----
<<scene "missions/gym/juno-seedbed.webp">>
Juno hesitates at the top of the basement stairs, the way she hesitated in the changing room. Then she sees the pod, warm and soft and private, with nobody looking at her, and she doesn't hesitate at all.
<</if>>
<<if _sb.includes("gym-kiki")>>
----
<<scene "missions/gym/kiki-seedbed.webp">>
Kiki studies her pod from every angle, the way she'd find her light. Then she leaves her phone on the bottom stair and climbs in, tail curled round her belly, and doesn't ask for a single photo.
<</if>>
<<if _sb.includes("gym-fennec")>>
----
<<scene "missions/gym/fennec-seedbed.webp">>
Fennec dances down the basement stairs, hums her way into her pod, and is still tapping her tail on the beat as the membrane closes.
<</if>>
<<if _lr.thralls.includes("gym-voss")>>
----
<<scene "missions/gym/voss-morning.webp">>
Six the next morning. Voss unlocks the colony gym on the dot, as she has every morning for nine years. Lights, then music, then the member scanner. Then she stands in the middle of the empty floor with one hand on her belly, and counts, and the count comes out right.
<<psi_from "evelyn" "And at nine the Fed-Sec recruits come in for their fitness assessments. Under her eye.">>
<</if>>
<<set _others to _lr.thralls.filter(function (id) { return id !== "gym-voss"; })>>
<<if _others.length gt 0>>
<<set _tn to _others.map(function (id) { return (setup.characters[id] || { name: id }).name; })>>
----
//<<= _tn.length is 1 ? _tn[0] : _tn.slice(0, -1).join(", ") + " and " + _tn[_tn.length - 1]>> <<= _tn.length is 1 ? "goes" : "go">> home sore and glowing, carrying, and <<= _tn.length is 1 ? "turns" : "turn">> up at the gym again tomorrow night as if nothing happened. Same time. Same machines. A little warmer than before.//
<</if>>
----
<<choose "Sleep" "DayEnd_Transition" `"end day " + $gamestate.day`>>/% ============================================
GAME NIGHT — mission state. Per-run $flags (reset at Suburb_GameNight):
_veraDone _tamsinDone _julesDone _saffronDone _kitDone _winkDone claimed
_round the game's round, from 1. Every claim and every wait is a
round. Odd rounds are loud (setup.gnLoud: cover at the
table). Who gets up: setup.gnTrip (1 Saffron, snacks ·
2 Jules, the loo · 3 the dragon, nobody · 4 Kit, the alley)
_noise noise the table heard (loud takes)
_calm Tamsin was talked down (each point takes one off the table)
_dosed the back room is breathing your musk (the vent). Nobody
counts chairs after that, only noise
_drain you came up the kitchenette sink (Saffron's premium take)
_honeyJr Honey Jr came along; _standIn is the woman whose chair she
sits in, wearing her face (one, ever); _standInSeen
_last last woman taken away from the table (for the stand-in)
_readSeen Tamsin read the table (GameNight_Read); _nudged: you
talked her down there
_searchSeen they went looking (GameNight_Search)
_kitOut the party split: Kit is searching the alley
_tamsinWhy how Tamsin ended up alone: "lured" | "search" | "split"
_called Vera got through to Fed-Sec (finale, sloppy)
_shopSeen the hub's first look
The table (setup.gnTable, 0-4) = empty chairs + noise - calm, capped.
2+ (or the room dosed, or round 6 with a chair empty): Tamsin reads it
3+ (or round 9 with two empty): they go looking
4: Vera's on her feet with her phone, and the slow ways let her call
No stat gates. The right approach for the woman in front of you is +2
(premium +3); workable +1; loud +1 with suspicion and table noise.
<<gn_next>> way on after a claim: the next round, or lock up
<<gn_noise n>> the table heard something
Flow: Suburb_GameNight → entry → GameNight_Round ⇄ GameNight_Shop
(+ Read, Search) ⇄ rooms → GameNight_Vera → GameNight_Complete
→ Mission_Report → GameNight_Debrief → Mission_Resolve
→ GameNight_Homecoming → DayEnd_Transition
============================================ %/
<<widget "gn_next">><<set _left to setup.gnLeft().length>><<if _left is 0>><<choose "Lock up" "GameNight_Complete" "all six claimed">><<else>><<if $flags._honeyJr and not $flags._standIn and $flags._last and not $flags._dosed>><<choose_do "Honey Jr takes her chair" `"she walks back in wearing " + setup.characters["game-" + $flags._last].name + "'s face. An empty chair that isn't empty"` "Charmer ✓">><<set $flags._standIn to $flags._last>><<target `"game-" + $flags._last` "claimed" "Claimed · Honey Jr in her chair">><<goto "GameNight_Round">><</choose_do>><</if>><<choose "Back into the dark" "GameNight_Round" `"the game rolls on · " + _left + " left"`>><</if>><</widget>>
<<widget "gn_noise">><<set $flags._noise to ($flags._noise || 0) + _args[0]>><</widget>>/% Medium mission, 6 targets, one friend group round one table. %/
<<set $flags._veraDone to false>><<set $flags._tamsinDone to false>><<set $flags._julesDone to false>><<set $flags._saffronDone to false>><<set $flags._kitDone to false>><<set $flags._winkDone to false>>
<<set $flags._round to 1>><<set $flags._noise to 0>><<set $flags._calm to 0>><<set $flags._dosed to false>><<set $flags._drain to false>><<set $flags._honeyJr to false>><<set $flags._standIn to "">><<set $flags._standInSeen to false>><<set $flags._last to "">>
<<set $flags._readSeen to false>><<set $flags._nudged to false>><<set $flags._searchSeen to false>><<set $flags._kitOut to false>><<set $flags._tamsinWhy to "">><<set $flags._called to false>><<set $flags._shopSeen to false>>
<center>''GAME NIGHT · ROLL FOR INITIATIVE''</center>
//10pm. Day $gamestate.day.//
<<scene "missions/gamenight/shop-night.webp">>
----
<<psi_from "evelyn" "$names.player. Natural Twenty, the game shop on the parade. It shut at six. The back room didn't.">>
A little cream shopfront between a florist and a tailor, both dark. The display window is full of board-game boxes and painted dragons. Somewhere deep behind them, a warm gold glow, and every so often a burst of laughter through the glass.
<<psi_from "evelyn" "Six women, same six every Tuesday. Session forty-one of the same campaign, according to Vera's feed. Tonight's the night the dragon finally turns up. She's been promising it for three months.">>
<<psi_from "evelyn" "Vera runs the game and the shop, and she's got the keys. Tamsin's her oldest friend, and the clever one. She notices things. Jules is the loud one. Saffron and Kit are Vyx flatmates, and Kit hates losing. And there's a Frostgleam Faelix called Wink who paints the little figures and never looks up.">>
<<psi_from "evelyn" "Here's the catch. Six friends in one room notice an empty chair. Take one and they'll joke about it. Take three and they'll come looking. People get up, though. Snacks, the loo, fresh air. Use the game.">>
<<psi_from "evelyn" "The front's locked from outside and the back door key is on Vera's lanyard. Nobody's running anywhere. But they've all got phones.">>
----
''How do you get in?''
<<choose "Under the front door" "GameNight_Entry_Front" "into the dark shop, between the shelves" "Lurk">>
<<choose "Up onto the roof, into the vent" "GameNight_Entry_Vent" "the back room's vent is right over the table" "Musk">>
<<choose "Up through the kitchenette sink" "GameNight_Entry_Drain" "someone always comes in for snacks" "Lurk">>
<<set _charmers to ($currentRun.colony.drones["Charmer"] || 0)>>\
<<if $flags.charmerMet and _charmers gte 1>><<choose "Bring Honey Jr" "GameNight_Entry_Charmer" "she can wear a face. Even one that's gone missing" "Charmer ✓">><<else>><<choose_locked "Bring a Charmer" "a Charmer drone" "a face to fill an empty chair">><</if>><<scene "missions/gamenight/entry-door.webp">>
The front door is locked, and it's a good lock. It doesn't matter. Every door on the parade has the same thin seam at the threshold, and you flatten yourself and seep under it in one long, patient pour.
The shop is dark and smells of cardboard and new paint. Shelves of game boxes, glass cases of tiny armies, a jar of dice by the till catching the moonlight. At the far end, past a short corridor, a door with gold light leaking round all four edges. Voices behind it. Dice.
<<gain_xp "lurk" 1>>
<<psi_from "evelyn" "In. Get up high and watch them for a bit. You'll see who wanders.">>
<<choose "Into the dark" "GameNight_Shop" "up a shelf, where you can see the door">><<scene "missions/gamenight/entry-vent.webp">>
Up the drainpipe at the back, across the warm flat roof, into the boxy housing of the shop's one ventilation unit. It's old and it rattles. You go in behind the filter and down the duct, slow, until the metal under you turns warm and gold.
The grille over the back room. Through the slats, straight down: the gaming table. A map of a mountain range, a scatter of dice, six heads. Pizza boxes. A tiny painted dragon at one corner. Vera's voice comes up through the vent as if she's talking to you.
<<speech "game-vera">><<say "game-vera" "The road climbs. The air grows hot. And somewhere above you, something very large is breathing.">><</speech>>
Something is. It's you.
<<include "GameNight_Vent_Dose">><<scene "missions/gamenight/entry-drain.webp">>
Down the storm drain at the end of the parade, along the old pipes behind the shops, past the florist's and the tailor's, and up. The kitchenette sink. You well up out of the plughole in slow glossy coils and settle in the basin.
Footsteps in the corridor. The kitchenette door swings open, the fridge light comes on, and a Vyx woman with a fluffy orange tail walks in yawning.
<<speech "game-saffron">><<say "game-saffron" "Narrate slower, Vee, I'm getting snacks!">><</speech>>
She hasn't looked at the sink yet.
<<gain_xp "lurk" 1>>
<<set $flags._drain to true>>
<<choose "Saffron" "GameNight_Saffron" "she's right in front of you">><<scene "missions/gamenight/entry-charmer.webp">>
You go under the front door and Honey Jr comes after you, the same way, a bright amber puddle that pulls itself back together on the other side and shakes out its tail. She crouches between the shelves, ears up, and peers at the lit doorway.
<<speech "honey-jr">><<say "honey-jr" "Ooh. Six of them. Do they play with strangers?">><</speech>>
<<psi_to "Not with strangers. With each other. Watch them.">>
She watches. You can feel her doing it, reading the voices through the door, the laughs, the way one of them says //Saff// and another says //Vee//.
<<psi_from "evelyn" "She'll only get one. Take a woman away from that table, and Honey Jr walks back in wearing her face. One empty chair they'll never count.">>
<<set $flags._honeyJr to true>>
<<choose "Into the dark" "GameNight_Shop" "Honey Jr waits between the shelves">>/% A new round: the game moves on, then any event the table has earned. %/
<<set $flags._round to $flags._round + 1>>
<<set _t to setup.gnTable()>>
<<if not $flags._tamsinDone and not $flags._searchSeen and (_t gte 3 or ($flags._round gte 9 and setup.gnMissing() gte 2))>><<goto "GameNight_Search">>
<<elseif not $flags._tamsinDone and not $flags._readSeen and (_t gte 2 or $flags._dosed or ($flags._round gte 6 and setup.gnMissing() gte 1))>><<goto "GameNight_Read">>
<<else>><<goto "GameNight_Shop">><</if>>/% The hub: one round of the game. Who's up, who's missing, how uneasy the table is. %/
<<set _r to $flags._round>><<set _trip to setup.gnTrip()>><<set _t to setup.gnTable()>><<set _loud to setup.gnLoud()>>
''THE DARK SHOP · ROUND <<= _r>>''
<<if not $flags._shopSeen>><<set $flags._shopSeen to true>>\
<<scene "missions/gamenight/the-table.webp">>
You find a spot on top of the tallest shelf, flat in the shadow, where you can see straight down the corridor to the back room door. It's propped an inch open on a dice bag. Through the gap: the table, the lamp, six friends.
Vera at the head behind her little folding screen. Tamsin at her right hand with her glasses on her nose. Jules with her sleeves pushed up. <<if $flags._saffronDone>>Kit beside an empty chair, tail flicking, checking her phone for a reply that isn't coming.<<else>>Saffron and Kit side by side, tails knocking.<</if>> And at the far corner, under her own small lamp, Wink, bent over a dragon no bigger than her thumb.
<<elseif $flags._standIn and not $flags._standInSeen>><<set $flags._standInSeen to true>>\
<<scene "missions/gamenight/standin.webp">>
Honey Jr walks back into the back room with an armful of crisps, wearing <<= setup.characters["game-" + $flags._standIn].name>>'s face, <<= setup.characters["game-" + $flags._standIn].name>>'s walk, <<= setup.characters["game-" + $flags._standIn].name>>'s laugh. She drops into the empty chair and steals someone's dice. Nobody blinks. Only her left hand, if you know to look, is still a little bit see-through.
<<else>>\
<<scene "missions/gamenight/dark-shop.webp">>
Back on top of the shelf, flat in the dark, watching the gold line round the back room door.
<</if>>
<<if _r % 4 is 1>>\
<<if _r is 1>>Vera is describing the road to the dragon's lair. She's standing up to do it, and doing the wind with her mouth. Everyone's leaning in.<<else>>The party rests at an inn. Vera does the innkeeper's voice, which is terrible, and the whole table groans and laughs.<</if>>
<<elseif _r % 4 is 2>>\
<<if not $flags._julesDone>><<if _r is 2>>Initiative. Dice everywhere. Then Grunhilde the barbarian takes a claw to the chest and fails her last roll, and Jules goes very, very still.<<else>>Grunhilde's replacement, a barbarian called Grunhilde Two, dies in her first fight. Jules takes it worse than the first time.<</if>><<else>>Initiative again, and everyone counting out loud. A quiet, fiddly round. Every scrape of a chair carries.<</if>>
<<elseif _r % 4 is 3>>\
<<if _r is 3>>The dragon speaks. Vera climbs onto her chair to do the voice, and the whole table shrieks and shouts and bangs on the wood.<<else>>Combat. Everyone shouting dice totals at once, and Vera shouting over all of them.<</if>>
<<else>>\
<<if not $flags._kitDone and not $flags._kitOut>>Kit rolls her cursed d20 for the big hit, and it comes up a one. A long, terrible silence.<<else>><<= $flags._tamsinDone ? "Vera" : "Tamsin">> reads a rule aloud from the book. Pages turning. Very quiet.<</if>>
<</if>>\
<<if $flags._dosed>> The air in there is thick and sweet now, and nobody's quite sure whose turn it is.<</if>>
<<if _trip is "saffron">><<if $flags._dosed>>Saffron fans herself with a character sheet, gives up, and pads out to the kitchenette for something cold.<<elseif _r is 1>>Saffron's chair scrapes back. <<speech "game-saffron">><<say "game-saffron" "I'm getting snacks. Narrate slower.">><</speech>> She pads right under you, down the corridor, into the kitchenette.<<else>>Saffron's off to the kitchenette again. The crisps are gone, and she's bored.<</if>>
<<elseif _trip is "jules">><<if $flags._dosed>>Jules says she feels //faint, darling, actually faint//, and sweeps out to the bathroom to splash her face.<<else>><<speech "game-jules">><<say "game-jules" "I need a moment. Don't roll without me. Don't //look// at me.">><</speech>> She sweeps out to the bathroom to grieve.<</if>>
<<elseif _trip is "kit" and not $flags._kitOut>><<if $flags._dosed>>Kit says it's boiling in there and shoves the back door open to stand in the alley.<<else>>Kit puts the die down very gently, stands up, says she needs air, and goes out the back door into the alley. It bangs behind her.<</if>><</if>>
<<if $flags._kitOut and not $flags._kitDone>>Out back, a phone torch sweeps up and down the alley. Kit, still looking for her friends.<</if>>
<<if $flags._dosed>>''The table:'' nobody's counting chairs. They're too warm to count anything.
<<elseif _t is 0>>''The table:'' lost in the game. Nobody's counting anything.
<<elseif _t is 1>>''The table:'' somebody asks where <<= setup.gnMissing() gt 0 ? "everyone's gone" : "that noise came from">>. Somebody else says //phone//, and they play on.
<<elseif _t is 2>>''The table:'' Tamsin keeps looking at the empty chairs.
<<elseif _t is 3>>''The table:'' nobody's playing. Phones are out. They're whispering.
<<else>>''The table:'' Vera's on her feet with her phone in her hand.<</if>>
<<if $flags._saffronDone>>''Kitchenette:'' <<= $flags._standIn is "saffron" ? "the real Saffron, curled on the tiles, humming." : "Saffron, curled on the tiles with her tail round her belly, humming.">><</if>>
<<if $flags._julesDone>>''Bathroom:'' Jules, on the floor against the tiles, reciting something to the ceiling.<</if>>
<<if $flags._kitDone>>''The alley:'' Kit, sitting against the bins, glaring happily at the moons.<</if>>
<<if $flags._tamsinDone>>''The shop:'' Tamsin, sitting against a shelf below you, glasses crooked, smiling at nothing.<</if>>
<<if $flags._winkDone>>''The far corner:'' Wink, back in her chair, painting. Nobody's noticed a thing.<</if>>
<<if not $flags._winkDone and _loud and not setup.gnFinale()>><<instinct "Everyone's shouting. Nobody is looking at the little one in the corner.">>
<<elseif not $flags._tamsinDone and setup.gnMissing() gte 1 and not $flags._dosed>><<instinct "The one with the glasses. She's counted the chairs twice.">><</if>>
<<if _trip is "saffron">><<choose "The kitchenette · Saffron" "GameNight_Saffron" `$flags._dosed ? "flushed, after something cold" : "alone with the fridge, bored"`>><</if>>
<<if _trip is "jules">><<choose "The bathroom · Jules" "GameNight_Jules" `$flags._dosed ? "splashing her face, very warm" : "mourning her barbarian at the mirror"`>><</if>>
<<if (_trip is "kit" or $flags._kitOut) and not $flags._kitDone>><<choose "The back alley · Kit" "GameNight_Kit" `$flags._kitOut ? "searching the alley with her phone torch" : "furious, alone, kicking a bin"`>><</if>>
<<if not $flags._winkDone>><<choose "The far corner of the table · Wink" "GameNight_Wink" `_loud ? "the table's shouting. Nobody's watching her" : "a quiet round. Every sound carries"`>><</if>>
<<if not $flags._dosed>><<choose "Up into the ceiling vent" "GameNight_Vent" "dose the back room. It takes a round">><</if>>
<<if setup.gnFinale()>><<choose `$flags._tamsinDone ? "Into the back room · Vera" : "Into the back room · Vera and Tamsin"` "GameNight_Vera" `_t gte 3 ? "she knows something's wrong" : "the game master, at a table that's nearly empty"`>><<else>><<choose "Wait for the next round" "GameNight_Round" "let the game roll on">><</if>>/% From the hub: back up into the duct over the table. %/
<<scene "missions/gamenight/entry-vent.webp">>
Up the corridor wall, through the grille of the corridor vent, along the duct to the one over the table. Below you, through the slats, the dice and the lamp and the tops of heads.
<<include "GameNight_Vent_Dose">>/% Included by the vent passages: dose the room (a round passes), or drop down. %/
----
<<choose_do "Breathe into the room" "slow and steady. Let it settle on them" "Musk">><<replace "#vent-dose">>
<<scene "missions/gamenight/vent-dose.webp">>
You breathe. Slow, warm, sweet, down through the slats. It sinks onto the table like the smell of something baking, and the room is small and warm and the door is shut, and there's nowhere for it to go but into them.
<<if not $flags._saffronDone>><<speech "game-saffron">><<say "game-saffron" "Is it hot? It's hot. Whose idea was it to shut the door?">><</speech>><</if>>
<<speech "game-vera">><<say "game-vera" "It's the pizza. Focus. The dragon is //right there//.">> She loses her place in her notes and finds it again. <<say "game-vera" "Where was I. The dragon. Is very... warm.">><</speech>>
<<if not $flags._winkDone>>At the corner, Wink's antennae swing up toward the vent and stay there. <<speech "game-wink">><<say "game-wink" "Something's broadcasting.">><</speech>><<if not $flags._kitDone and not $flags._kitOut>> <<speech "game-kit">><<say "game-kit" "Your antennae pick up the microwave, Wink.">><</speech>><</if>><<else>>At the corner, Wink paints on, round-bellied and serene. Her antennae point straight up at you, like she's saying hello.<</if>>
<<if not $flags._tamsinDone>>Tamsin pushes her glasses up her nose and looks at the vent for a long moment. Then back at her sheet.<</if>>
Five minutes. Nobody at that table is counting chairs any more.
<<set $flags._dosed to true>>
<<gain_xp "musk" 2>>
<<choose "Down into the corridor" "GameNight_Round" "the room's breathing you now">>
<</replace>><</choose_do>>
<<choose "Drop down into the corridor" "GameNight_Shop" "save the vent for later">>
<span id="vent-dose"></span>/% Saffron: bored Vyx flirt on a snack run. Best: let her find you (Influence +2); out of the sink if you came up the drain (Lurk +3); musk if the room's dosed (+2). Grab her and she shrieks. %/
''THE KITCHENETTE · SAFFRON''
<<scene "missions/gamenight/saffron-fridge.webp">>
<<if $flags._drain>>
She hums her way round the kitchenette, opening cupboards, finding nothing she wants. The tap is right beside her. You're in the sink, flat and glossy in the bottom of the basin, a hand's width from her hip.
<<elseif $flags._dosed>>
She's flushed to the tips of her ears, fanning her face with one hand while the other holds the fridge door open so the cold air rolls over her. Her tail hangs low and heavy. She leans her forehead on the top shelf and sighs.
<<speech "game-saffron">><<say "game-saffron" "Oh, that's nice. Oh, that's //so// nice.">><</speech>>
<<elseif not $flags._kitDone and not $flags._kitOut>>
She's bent into the fridge, tail swishing out behind her, phone in one hand. She isn't really looking for snacks. She's texting Kit, who's sitting four metres away.
<<speech "game-saffron">>She reads it aloud to herself as she types. <<say "game-saffron" "Longest. Dragon. Intro. Of my life.">><</speech>>
A buzz from the back room, then a snort. Kit got it.
<<else>>
She's bent into the fridge, tail swishing out behind her, phone in one hand, texting Kit. Kit hasn't answered in ages. Saffron frowns at the screen.
<<speech "game-saffron">><<say "game-saffron" "Rude. You're probably //sulking//.">><</speech>>
<</if>>
<<instinct "Bored. Nosy. She'd take something interesting happening to her over going back to that table.">>
''How do you take her?''
<<choose_do "Let her find you" "she's bored and curious. Give her something better than the game" "Influence">><<replace "#saffron-scene">><<set _way to "influence">><<include "GameNight_Saffron_Take">><</replace>><</choose_do>>
<<if $flags._drain>><<choose_do "Out of the sink" "she'll run the tap in a second. Be what comes out" "Lurk" "Premium">><<replace "#saffron-scene">><<set _way to "sink">><<include "GameNight_Saffron_Take">><</replace>><</choose_do>><</if>>
<<choose_do "Tail-base" "the classic. But that tail never stops moving" "Lurk">><<replace "#saffron-scene">><<set _way to "tail">><<include "GameNight_Saffron_Take">><</replace>><</choose_do>>
<<choose_do "Musk the kitchenette" `$flags._dosed ? "she came in here to cool down. She won't" : "a tiny room. But that Vyx nose will catch it coming"` "Musk">><<replace "#saffron-scene">><<set _way to "musk">><<include "GameNight_Saffron_Take">><</replace>><</choose_do>>
<<choose_do "Grab her" "off the top of the fridge, fast" "Strength">><<replace "#saffron-scene">><<set _way to "grab">><<include "GameNight_Saffron_Take">><</replace>><</choose_do>>
<span id="saffron-scene"></span>/% Included by GameNight_Saffron. _way: influence | sink | tail | musk | grab %/
----
<<if _way is "influence">>
You let her see you, a little at a time. One glossy tendril curling round the edge of the fridge door. She looks at it. She does not scream. Her ears swing forward and her head tilts, the way a fox's does at a noise in the grass.
<<speech "game-saffron">><<say "game-saffron" "Oh. Hello.">> She crouches to get a better look as the rest of you comes down the wall. <<say "game-saffron" "You're not crisps.">><</speech>>
You give her a nudge. Nothing pushy, just a warm, pleased feeling in the back of her head, like being let in on a secret before anyone else. Her tail starts to wag.
<<speech "game-saffron">><<say "game-saffron" "Okay. Honestly? Fair.">> She shuts the fridge with her hip. <<say "game-saffron" "Way better than the dragon.">><</speech>>
<<elseif _way is "sink">>
She takes a glass off the drainer and turns on the tap. The water runs over you, and you come up through it into her hand, warm and slick round her fingers and her wrist.
She stares at it. The glass slides out of her other hand into the basin without breaking. Skin to skin, the pheromone is in her before she's finished being surprised, and you watch it arrive: her ears dropping, her mouth falling open, a flush racing up her throat.
<<speech "game-saffron">><<say "game-saffron" "Oh, that's warm.">> Her knees bend. <<say "game-saffron" "That's //really// warm.">><</speech>>
Not a sound loud enough to reach the corridor. You turn off the tap for her.
<<elseif _way is "tail">>
You come down the wall behind her while she's bent into the fridge. That tail swishes left, right, left, never still for a second. You miss it once. On the third swing you catch the base, right where it meets her spine, and squeeze.
She drops the crisps. A small yip goes into the fridge and stays there. Her knees fold and her ears slam flat, and she hangs off the fridge door by one hand, shaking.
<<speech "game-saffron">><<say "game-saffron" "Oh, //stars//.">> Her hips are already pushing back at you. <<say "game-saffron" "Oh. Okay. Okay, //hi//.">><</speech>>
<<elseif _way is "musk">>
<<if $flags._dosed>>
You're already in her. She's been breathing you for twenty minutes across that table. You breathe once more, slow, into the cold air spilling out of the fridge, and she drinks it in like it's the cold she came for.
She slides down the fridge door until she's sitting on the tiles, legs folded to one side, smiling at nothing.
<<speech "game-saffron">><<say "game-saffron" "Not cooler. Not cooler at all. Don't care.">><</speech>>
<<else>>
You breathe into the little room. Her nose finds it before you'd like: she straightens, sniffs, and turns round.
<<speech "game-saffron">><<say "game-saffron" "Who's baking?">><</speech>>
She sees you. Her ears go straight up. But the kitchenette is the size of a cupboard and she's already breathing you, and instead of running she sits down on the tiles rather suddenly, blinking.
<<speech "game-saffron">><<say "game-saffron" "...Oh. Oh, it's //you// that smells like that.">><</speech>>
<</if>>
<<else>>
You drop on her off the top of the fridge. She shrieks, a proper Vyx shriek, and a can of fizz hits the tiles and goes off like a firework.
<<speech "game-vera">>From the back room: <<say "game-vera" "Saff?">><</speech>>
<<speech "game-saffron">><<say "game-saffron" "SPIDER!">><</speech>>
It's the last clear thing she says. You've got her wrists, and then the musk has got the rest of her.
<</if>>
<<scene "missions/gamenight/saffron-take.webp">>
She ends up on the kitchenette floor with her back against the cupboards and her skirt round her waist, and she helps. Of course she helps. She hooks a leg round you and pulls, impatient, talking the whole time.
<<speech "game-saffron">><<say "game-saffron" "Kit is going to be //so// jealous. She hates it when I get things first. She'll say you're a broken build.">><</speech>>
She's soaking. When you push into her she stops talking for the first time all night, mouth open, and her body takes over: that Vyx grip, rhythmic and strong, pulling at you in long hungry waves like it's been waiting for exactly this. Her tail winds round your tendril and holds on.
You take her slow and deep on the tiles, the fridge light on her face. She tries to say something clever and loses it halfway. Then she gives up on clever and just moans, small fox sounds into her own shoulder, her hips rolling up to meet you.
<<climax "Cum">>The seed builds in you and she feels it coming, swelling, and grips harder, greedy, drawing it out of you pulse after pulse. Her tail goes rigid, then limp. Her ears flatten. She comes with a long, shaking whine, and her body keeps every drop.
The warmth settles low in her belly and starts to round it, slow and sure under her cropped top. She lays her hand on the swell. Her tail curls round it, protective, all on its own.
<<speech "game-saffron">><<say "game-saffron" "I came in here for crisps.">><</speech>>
<<if _way is "influence">><<gain_xp "influence" 2>>
<<elseif _way is "sink">><<gain_xp "lurk" 3>>
<<elseif _way is "tail">><<gain_xp "lurk" 1>>
<<elseif _way is "musk">><<if $flags._dosed>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<else>><<gain_xp "strength" 1>><<gain_sus 1 "Saffron shrieked in the kitchenette">><<gn_noise 1>><</if>>
<<set $flags._saffronDone to true>><<set $flags._last to "saffron">><<claim_bred "game-saffron">>
----
<<gn_next>><</climax>>/% Jules: drama student mourning her barbarian, thin wall to the table. Best: musk under the door while she does her breathing (Musk +2). Scene partner works (+1). Off the ceiling she yelps; a full show and the wall hears it. %/
''THE BATHROOM · JULES''
<<scene "missions/gamenight/jules-mirror.webp">>
<<if $flags._dosed>>
Jules has both taps running and is splashing her face, her neck, the front of her blouse. She looks at herself in the mirror, pink and damp and glittering.
<<speech "game-jules">><<say "game-jules" "You are a professional. You are not fainting at game night.">> She fans herself with both hands. <<say "game-jules" "Grunhilde never fainted. Grunhilde fought a bear in her //pants//.">><</speech>>
<<else>>
Jules stands at the mirror with one hand on her heart, mascara running, delivering a eulogy to her own reflection.
<<speech "game-jules">><<say "game-jules" "She was a barbarian. She was a //daughter//. She had a goat called Steve, and Steve will never know.">><</speech>>
<<speech "game-vera">>Through the wall: <<say "game-vera" "We can hear you, Jules.">><</speech>>
<<speech "game-jules">><<say "game-jules" "//Good.//">> She turns back to the mirror and lowers her voice. <<say "game-jules" "Right. Breathe. In for four. Hold. Out for eight. Grunhilde wouldn't want me to cry.">><</speech>>
<</if>>
The bathroom shares a wall with the back room, and it's thin. Whatever Jules says in here, the table hears.
<<instinct "Loud in every way. Get her quiet before you get her anything else.">>
''How do you take her?''
<<choose_do "Musk under the door" `$flags._dosed ? "she's breathing hard already. Give her more" : "she's doing her breathing. Deep ones"` "Musk">><<replace "#jules-scene">><<set _way to "musk">><<include "GameNight_Jules_Take">><</replace>><</choose_do>>
<<choose_do "Be her scene partner" "she's improvising. Play along. She'll narrate it, though" "Influence">><<replace "#jules-scene">><<set _way to "scene">><<include "GameNight_Jules_Take">><</replace>><</choose_do>>
<<choose_do "Off the ceiling" "drop on her. She'll yelp" "Lurk">><<replace "#jules-scene">><<set _way to "ceiling">><<include "GameNight_Jules_Take">><</replace>><</choose_do>>
<<choose_do "Give her a show" "she wants drama. The wall will hear every word" "Endowment">><<replace "#jules-scene">><<set _way to "show">><<include "GameNight_Jules_Take">><</replace>><</choose_do>>
<span id="jules-scene"></span>/% Included by GameNight_Jules. _way: musk | scene | ceiling | show %/
----
<<if _way is "musk">>
You lie flat in the corridor and breathe a slow ribbon of yourself under the door, right as she starts again.
<<speech "game-jules">><<say "game-jules" "In for four.">><</speech>>
She breathes you in, all the way down, the way they teach you at drama school. <<speech "game-jules">><<say "game-jules" "Hold.">><</speech>> She holds you in. <<speech "game-jules">><<say "game-jules" "Out for... for...">><</speech>>
She forgets the number. She sits down on the closed lid of the loo, pink and swaying, and looks at her hands as if they've just been handed to her. When you come in under the door she just watches you, and her big stage voice comes out as a whisper.
<<speech "game-jules">><<say "game-jules" "Oh. Oh, you're the //twist//.">><</speech>>
<<elseif _way is "scene">>
You slip into her head, where she's already halfway into a scene: the shieldmaiden at her sister's pyre, alone in the snow. You give her a scene partner. A stranger out of the dark.
She doesn't miss a beat. She turns from the mirror, sees you rising off the tiles, and stays in character.
<<speech "game-jules">>A stage whisper, trembling with feeling: <<say "game-jules" "Who goes there? Stranger, I have nothing left.">> She looks you up and down. <<say "game-jules" "Nothing. But. This.">><</speech>>
Through the wall, the table giggles. //Jules is doing voices in the loo again.// Nobody gets up.
<<elseif _way is "ceiling">>
You drop off the ceiling. One tendril round her waist, and she gets out a //WHAT THE// before a second one is across her mouth, warm and sweet.
<<speech "game-vera">>Through the wall: <<say "game-vera" "Jules? You okay?">><</speech>>
<<speech "game-jules">><<say "game-jules" "Mm-hm!">><</speech>>
<<set _who to (not $flags._kitDone and not $flags._kitOut) ? "game-kit" : "game-vera">>\
<<speech _who>><<say _who "...Okay, weirdo.">><</speech>>
She swallows, because she has to, and her eyes go wide and then very soft.
<<else>>
You rise up off the floor, all of you, glossy and enormous in a room the size of a wardrobe. She looks you up and down in the mirror. Then she turns round and looks again, and her eyes fill with joyful tears.
<<speech "game-jules">>At full projection: <<say "game-jules" "//Finally.// A worthy foe!">><</speech>>
Through the wall, a chair scrapes back.
<<speech "game-vera">><<say "game-vera" "Is she fighting the //sink?//">><</speech>>
<</if>>
<<scene "missions/gamenight/jules-take.webp">>
You lift her onto the edge of the sink and she lets you, arms flung out, one hand knocking the soap off the shelf. Her skirt's already up round her hips. She's soaking, and so warm you can feel her pulse through the tendril on her thigh.
<<speech "game-jules">><<say "game-jules" "And the heroine,">> she breathes, <<say "game-jules" "overcome, //yields//.">><</speech>>
When you push inside her the narration stops dead. Her mouth opens and nothing comes out. You take her slow against the cold tiles, deep, and she clings to you with both legs, gasping into your mass. Every time she gets a word back, the next stroke takes it off her.
She tries one more line. Something about fate. It turns into a long, wobbling moan halfway through, a real one, nothing put on about it, and she presses her own hand over her mouth to keep it off the wall.
<<climax "Cum">>The seed swells through you and she feels it coming and stares down between you, wide-eyed, as it pours into her in long hot pulses. It's too much for her. It spills down the inside of her thighs and drips on the tiles, and she comes with her head thrown back against the mirror and her hand still clamped over her mouth.
Warmth gathers low in her belly. She watches it round in the mirror, slowly, under her blouse, and she turns side-on to see the shape of it properly.
<<speech "game-jules">><<say "game-jules" "Grunhilde lives on.">> A watery, radiant smile. <<say "game-jules" "I'm going to need a bigger costume.">><</speech>>
<<if _way is "musk">><<gain_xp "musk" 2>>
<<elseif _way is "scene">><<gain_xp "influence" 1>>
<<elseif _way is "ceiling">><<gain_xp "lurk" 1>><<gn_noise 1>>
<<else>><<gain_xp "endowment" 1>><<gain_sus 1 "Jules shouted in the bathroom">><<gn_noise 1>><</if>>
<<set $flags._julesDone to true>><<set $flags._last to "jules">><<claim_bred "game-jules">>
----
<<gn_next>><</climax>>/% Wink: Frostgleam Faelix painting at the table's corner, never leaves. Loud round: under the table is the cleanest take of the night (Lurk +3). Quiet round: her antennae (Influence +2); under the table she squeaks. Musk burns off her fast (+1). Grab her and her wings rattle the table. She goes back to her chair after, so her seat is never empty. %/
<<set _loud to setup.gnLoud()>>
''THE FAR CORNER · WINK''
<<scene "missions/gamenight/wink-painting.webp">>
You go in low, under the door and under the table, into the dark among the chair legs and a pizza box somebody dropped an hour ago. Above you, the game. At the far corner, a pair of small bare ice-blue feet hooked round the rungs of a chair.
Wink Frostgleam is painting the dragon. Not a dragon: //the// dragon, Ashmaw, the one Vera's been promising for three months, no bigger than Wink's thumb. She's doing its scales one at a time with a brush that has a single hair. Her tongue is between her teeth. Her antennae twitch at every change in the room: a laugh, a dice roll, the lamp flickering.
<<if _loud>>Over her head the whole table is shouting. Vera's up on her chair. Nobody is looking at the corner. Nobody has looked at the corner all night.<<else>>It's a quiet round up there. Pages turning, someone counting under their breath. Every small sound carries.<</if>>
<<if $flags._dosed>> The sweet air hasn't softened her at all. If anything she's sharper: Faelix burn through it as fast as they breathe it, and all it's done is narrow her down to the point of her brush.<</if>>
<<instinct "She doesn't hear noise. She hears signals. And she hasn't looked up in an hour.">>
''How do you take her?''
<<if _loud>><<choose_do "Under the table" "everyone's shouting. Nobody is watching the corner" "Lurk" "Premium">><<replace "#wink-scene">><<set _way to "under">><<include "GameNight_Wink_Take">><</replace>><</choose_do>>
<<else>><<choose_do "Under the table" "it's quiet up there. She'll squeak" "Lurk">><<replace "#wink-scene">><<set _way to "under">><<include "GameNight_Wink_Take">><</replace>><</choose_do>><</if>>
<<choose_do "Into her antennae" `_loud ? "the shouting drowns it out. It'll take a few tries" : "her antennae are listening. Give them a signal"` "Influence">><<replace "#wink-scene">><<set _way to "antenna">><<include "GameNight_Wink_Take">><</replace>><</choose_do>>
<<choose_do "Musk" "she burns through it fast. You'll need a lot" "Musk">><<replace "#wink-scene">><<set _way to "musk">><<include "GameNight_Wink_Take">><</replace>><</choose_do>>
<<choose_do "Grab her" "pull her straight down. She'll buzz like a wasp in a jar" "Strength">><<replace "#wink-scene">><<set _way to "grab">><<include "GameNight_Wink_Take">><</replace>><</choose_do>>
<span id="wink-scene"></span>/% Included by GameNight_Wink. _way: under | antenna | musk | grab; _loud from the round %/
----
<<if _way is "under">>
<<if _loud>>
Up above, Vera hits the big line, and the table screams. You wind one tendril up the leg of Wink's chair, round her ankle, and pull. Gently.
She slides down off her chair and under the table edge with her brush still held up above the tabletop, perfectly level, so as not to smudge anything. Not one head turns. Not one.
<<speech "game-wink">>She looks at you in the dark, unbothered. <<say "game-wink" "Oh. You're new.">><</speech>>
<<else>>
You wind a tendril round her ankle in the quiet. She squeaks, small and high, and every head at the table turns to the corner.
<<speech "game-wink">><<say "game-wink" "Spider.">><</speech>>
<<set _who to $flags._tamsinDone ? "game-vera" : "game-tamsin">>\
<<speech _who>><<say _who "There are no spiders on this colony, Wink.">><</speech>>
<<speech "game-wink">><<say "game-wink" "There are now.">><</speech>>
The table laughs. In the laugh you draw her down under the edge, and she goes, brush held carefully up and out of the way.
<</if>>
<<elseif _way is "antenna">>
Faelix antennae are receivers. You don't push words at hers. You hum: a thin clean thread of a signal, pitched like a wet glass rim, and you send it from under the table.
<<if _loud>>The shouting drowns it twice. On the third try her antennae swing down toward the floor and stay there.<<else>>Her antennae swing round at once, both of them, toward the floor.<</if>>
She puts her brush down on its little rest.
<<speech "game-wink">>To nobody: <<say "game-wink" "Dropped something.">><</speech>>
She slides down under the table edge to look for the signal, and finds you.
<<elseif _way is "musk">>
You breathe at her ankles. She burns through it as fast as you give it, so you give her more, and more, until the corner of the table is warm and syrupy and somebody up there says it smells like strawberries.
Her brush stops halfway down a scale. Then it starts again. Then it stops for good, and she looks down between her knees, under the table, very slowly, the way she'd look at a colour she can't name.
<<speech "game-wink">><<say "game-wink" "Oh. It's you that's broadcasting.">><</speech>>
<<else>>
You pull her straight down by the ankle. She goes off like a wasp in a jar, wings buzzing so hard they rattle the table leg, and the dice on the map jump.
<<speech "game-vera">><<say "game-vera" "//Wink?//">><</speech>>
<<speech "game-wink">>From under the table, perfectly calm: <<say "game-wink" "Cramp.">><</speech>>
Then the musk reaches her, and the buzzing slows, and stops.
<</if>>
<<scene "missions/gamenight/wink-under.webp">>
Under the table it's dark and gold at the edges and nobody can see. She's tiny. One tendril holds all of her, under her thighs and round her waist, her feet a long way off the floor. She keeps hold of her brush the whole time, up and out of the way.
<<speech "game-wink">><<say "game-wink" "Frostgleam don't buzz in company.">> She pins her wings flat against her back with an effort you can see. <<say "game-wink" "Carry on.">><</speech>>
She's tight, and slick, and when you ease into her she makes one small precise sound, like a note being checked. Then Faelix speed takes over. Her antennae go straight up and start to spark. Her body runs through everything three times faster than it should: she peaks on the fourth stroke, small and sharp, and again on the seventh, and again, a run of tiny shudders stacking up one on top of the other while her face stays very nearly calm.
Above her, the game goes on. Vera's voice, the dice, somebody laughing. Wink stares up at the underside of the table with enormous pale eyes, coming in quiet little bursts, and doesn't make another sound.
<<climax "Cum">>You fill her in long, heavy pulses and there's nowhere for it to go in someone that small. It spills out of her, warm, down your tendril and onto the floor. Her wings snap open at last, buzz once, and collapse. Her shimmer flashes bright as frost in sunlight.
Her belly rounds fast, Faelix-fast, until it's a smooth full curve on her narrow frame. She looks down at it. Then she climbs back up into her chair, tucks herself in close to the table so the edge hides the swell, picks up the little dragon and finishes the scale she was on.
Nobody notices. Nobody ever notices Wink.
<<if _way is "under">><<if _loud>><<gain_xp "lurk" 3>><<else>><<gain_xp "lurk" 1>><<gn_noise 1>><</if>>
<<elseif _way is "antenna">><<if _loud>><<gain_xp "influence" 1>><<else>><<gain_xp "influence" 2>><</if>>
<<elseif _way is "musk">><<gain_xp "musk" 1>>
<<else>><<gain_xp "strength" 1>><<gain_sus 1 "Wink's wings rattled the whole table">><<gn_noise 1>><</if>>
<<set $flags._winkDone to true>><<claim_bred "game-wink">>
----
<<gn_next>><</climax>>/% Kit: competitive Vyx, alone in the back alley. Out here nobody inside hears: meet her head-on (Strength +2) or show her the numbers (Endowment +2). Tail-base and musk work (+1). %/
''THE BACK ALLEY · KIT''
<<scene "missions/gamenight/kit-alley.webp">>
<<if $flags._kitOut>>
Kit sweeps her phone torch along the alley, bins, boxes, the bougainvillea. She's carrying a rolled-up game mat like a club. Her ears turn at every sound.
<<speech "game-kit">><<say "game-kit" "Saff? If this is a prank, I'm telling you now, I don't find it funny, and I //will// win.">><</speech>>
<<elseif $flags._dosed>>
Kit stands in the alley with her face turned up to the night air, tail dragging, cropped top tugged away from her skin.
<<speech "game-kit">><<say "game-kit" "It's like a sauna in there. I can't think. I can't even //count//.">><</speech>>
<<else>>
Kit kicks the recycling bin. It rocks. She kicks it again. Then she holds her cursed d20 up to the moons and talks to it.
<<speech "game-kit">><<say "game-kit" "Forty-one sessions. Forty-one. And you pick //tonight//. In front of the //dragon//.">><</speech>>
She puts it back in her pocket. She doesn't throw it away. She never throws it away.
<</if>>
The back door is propped on a dice bag. Through it, faintly, the game, and nobody in there is listening to the alley.
<<instinct "She wants something to hit. Or something to beat. Out here, nobody inside hears a thing.">>
''How do you take her?''
<<choose_do "Meet her head-on" "she wants a fight. Out here, she can have one" "Strength">><<replace "#kit-scene">><<set _way to "fight">><<include "GameNight_Kit_Take">><</replace>><</choose_do>>
<<choose_do "Show her the numbers" "she sizes everything up like a stat block. Let her see what she's up against" "Endowment">><<replace "#kit-scene">><<set _way to "numbers">><<include "GameNight_Kit_Take">><</replace>><</choose_do>>
<<choose_do "Tail-base" "those ears are up. She'll hear you on the bins" "Lurk">><<replace "#kit-scene">><<set _way to "tail">><<include "GameNight_Kit_Take">><</replace>><</choose_do>>
<<choose_do "Musk" "the breeze down the alley takes most of it away" "Musk">><<replace "#kit-scene">><<set _way to "musk">><<include "GameNight_Kit_Take">><</replace>><</choose_do>>
<span id="kit-scene"></span>/% Included by GameNight_Kit. _way: fight | numbers | tail | musk %/
----
<<if _way is "fight">>
You come down off the wall in front of her, into the lamplight, and let her see you. Her ears go flat. Her tail puffs to twice its size. She doesn't scream.
<<speech "game-kit">><<say "game-kit" "Oh, //finally//. Something I can hit.">><</speech>>
She swings <<= $flags._kitOut ? "the rolled-up game mat" : "the bin lid">>. She's fast, Vyx fast, and she gets two good hits in before you let her get a third. Then you have both her wrists and you put them on the wall above her head, gently, and hold them there.
<<speech "game-kit">>She's breathing hard and grinning in spite of herself. <<say "game-kit" "Fine. //Fine.// Best of three.">><</speech>>
<<elseif _way is "numbers">>
You rise up out of the shadow by the bins, slowly, all of you, and let her look.
She looks. She looks the way she looks at a monster's stat block when Vera slides it across the table: top to bottom, totting it up. Her eyes stop on the thickest tendril, and her pupils do something.
<<speech "game-kit">><<say "game-kit" "That's not balanced.">> Her tail gives one slow swish. <<say "game-kit" "That's not even //legal//.">><</speech>>
A pause.
<<speech "game-kit">><<say "game-kit" "Bet I could take it.">><</speech>>
She's already unbuttoning her shorts.
<<elseif _way is "tail">>
You go along the top of the wall toward her. A bin lid shifts under you with a hollow clunk, and her ears snap round, and she spins.
You get the base of her tail just as she does. Her yelp goes off down the alley and dies. Her knees fold and you catch her, and her ears drop flat against her skull.
<<speech "game-kit">><<say "game-kit" "No. No, no, that's an //exploit//. That's a known exploit.">> Her hips are pushing back into you already. <<say "game-kit" "That should be //patched//.">><</speech>>
<<else>>
You breathe, and the breeze takes it straight off down the alley. You breathe again, more, and keep breathing, until the air round the back step is thick and sweet.
She stops kicking the bin. She sits down on the step instead, frowning.
<<speech "game-kit">><<say "game-kit" "Why does it smell like pancakes.">> She sniffs again, harder. <<say "game-kit" "Why do I //like// it.">><</speech>>
By the time she sees you she's leaning back on her elbows on the step, and she just glares.
<</if>>
<<scene "missions/gamenight/kit-take.webp">>
You take her against the wall by the back door, her shorts round one ankle, the bougainvillea shaking petals down on both of you. She's furious. She's also soaking, and she knows it, and that makes her angrier.
<<speech "game-kit">><<say "game-kit" "Okay. Okay. First one to come loses.">><</speech>>
That Vyx grip closes on you the moment you're in, strong and rhythmic, pulling like it means to win. She sets her jaw and works her hips against you on purpose, eyes narrowed, trying to finish you first. It's a good try. It's very nearly a good strategy.
Then her body stops listening to her. Her tail winds round your tendril and holds on. Her ears go soft. The glare turns into something helpless and astonished, and the swearing turns into small, rough fox sounds she'd be mortified to hear, louder every stroke, and nobody inside hears a single one.
<<climax "Cum">>You come first, technically. She feels the seed swell through you and her eyes go wide with triumph for exactly one second before it hits her: heavy, hot, pulse after pulse, and her whole body clamps round you and pulls. Her tail goes rigid, then limp. She comes with her forehead against your mass and her teeth gritted.
The warmth gathers low and her belly rounds under her cropped top, slow and smooth. She looks down at it, breathing hard.
<<if $flags._saffronDone>><<speech "game-kit">><<say "game-kit" "Did Saff—">> She stops. Narrows her eyes. <<say "game-kit" "She did, didn't she. She always gets everything first.">><</speech>><<else>><<speech "game-kit">><<say "game-kit" "I won. Technically. You came first.">> A sulky pause. <<say "game-kit" "Don't tell Saff.">><</speech>><</if>>
She slides down the wall to sit against the bins, arms folded over the swell, and glares at the moons. It's a very happy glare.
<<if _way is "fight">><<gain_xp "strength" 2>>
<<elseif _way is "numbers">><<gain_xp "endowment" 2>>
<<elseif _way is "tail">><<gain_xp "lurk" 1>>
<<else>><<gain_xp "musk" 1>><</if>>
<<set $flags._kitDone to true>><<set $flags._kitOut to false>><<set $flags._last to "kit">><<claim_bred "game-kit">>
----
<<gn_next>><</climax>>/% Event: the strategist reads the table (2+ on the table, the room dosed, or round 6 with a chair empty). Once. %/
<<set $flags._readSeen to true>>
<<target "game-tamsin" "alerted" "Reading the table">>
''THE BACK ROOM · TAMSIN READS THE TABLE''
<<scene "missions/gamenight/tamsin-read.webp">>
<<if $flags._dosed>>
Through the gap in the door, Tamsin stops in the middle of her turn. She puts her dice down. She sniffs.
<<speech "game-tamsin">><<say "game-tamsin" "Does anyone else smell that?">><</speech>>
<<speech "game-vera">><<say "game-vera" "Pizza, Tam.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "It's not pizza. It's sweet, and it's getting stronger, and we've all gone pink.">> She looks round the table, one face at a time. <<say "game-tamsin" "Every one of us.">><</speech>>
<<if not $flags._winkDone>><<speech "game-wink">>From the corner, not looking up: <<say "game-wink" "It's coming out of the vent. It hums.">><</speech>><<else>>At the corner, Wink's antennae are pointing straight up at the vent. Tamsin follows them with her eyes.<</if>>
She pushes her glasses up her nose and looks at the ceiling grille for a long, long time.
<<else>>
Through the gap in the door, Tamsin puts her dice down in the middle of her turn. She's counting. Not out loud. You can see her lips move.
<<speech "game-tamsin">><<say "game-tamsin" "Hang on.">><<if $flags._saffronDone and $flags._standIn isnot "saffron">> <<say "game-tamsin" "Saff went for snacks twenty minutes ago.">><</if>><<if $flags._julesDone and $flags._standIn isnot "jules">> <<say "game-tamsin" "Jules has been in the loo for fifteen.">><</if>><<if $flags._kitDone and $flags._standIn isnot "kit">> <<say "game-tamsin" "Kit went out for air and never came back in.">><</if>><<if setup.gnMissing() is 0>> <<say "game-tamsin" "That's the second strange noise tonight. Somebody keeps yelping.">><<else>> <<say "game-tamsin" "And nobody's answering their phone.">><</if>><</speech>>
<<speech "game-vera">><<say "game-vera" "They're gossiping, Tam. It's game night. Somebody's always gossiping.">><</speech>>
<<if not $flags._kitDone and not $flags._kitOut>><<speech "game-kit">><<say "game-kit" "Or snogging. Finally.">><</speech>><</if>>
<<if $flags._standIn>>Tamsin's eyes slide across to <<= setup.characters["game-" + $flags._standIn].name>>'s chair, and stop. <<speech "game-tamsin">><<say "game-tamsin" "And since when are you left-handed?">><</speech>> <<speech "honey-jr">>In <<= setup.characters["game-" + $flags._standIn].name>>'s voice, perfectly: <<say "honey-jr" "Since always, babe.">><</speech>> <<speech "game-tamsin">><<say "game-tamsin" "Hm.">><</speech>><</if>>
<</if>>
<<psi_from "evelyn" "That's the one to worry about. She's working it out.">>
<<choose_do "Tell her it's nothing" "a quiet thought in her head, in her own voice" "Influence">><<replace "#read-scene">>
You slip into her head, in behind the counting, and leave a thought there in her own voice. //<<= $flags._dosed ? "It's the heating. It's the pizza. You're tired." : "You're being paranoid. It's game night.">>//
She takes her glasses off and rubs her eyes.
<<speech "game-tamsin">><<say "game-tamsin" "Sorry. I'm being paranoid. Roll.">><</speech>>
<<speech "game-vera">><<say "game-vera" "That's my girl.">> Dice clatter. The game picks up again. <</speech>>
<<set $flags._calm to ($flags._calm || 0) + 1>><<set $flags._nudged to true>>
<<target "game-tamsin" "unaware" "At the table · reassured">>
<<gain_xp "influence" 2>>
<<choose "Back into the dark" "GameNight_Shop" "the table settles down">>
<</replace>><</choose_do>>
<<choose_do "Give her something to check" "a small noise in the dark shop. She's the one who always checks" "Lurk">><<replace "#read-scene">>
A box of dice slides off a shelf in the dark shop, very slowly, and hits the floor.
<<speech "game-tamsin">>Her head comes up. <<say "game-tamsin" "There. Did you hear that?">><</speech>>
<<speech "game-vera">><<say "game-vera" "Wind.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "There's no wind indoors, Vee.">> She picks up her phone and turns the torch on. <<say "game-tamsin" "Nobody move. I'll look.">><</speech>>
<<speech "game-vera">><<say "game-vera" "Never split the party!">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "I'm not splitting it. I'm //scouting//.">><</speech>>
<<set $flags._tamsinWhy to "lured">>
<<target "game-tamsin" "alerted" "In the dark shop · alone">>
<<choose "The dark shop · Tamsin" "GameNight_Tamsin" "alone, with a phone torch">>
<</replace>><</choose_do>>
<<if $flags._dosed>><<choose_do "Let the air answer" "she'll take a deep breath to think it through" "Musk">><<replace "#read-scene">>
She takes a long, slow breath, the way she always does before a hard puzzle. It's the worst thing she could do.
Her eyes go soft behind her glasses. Her mouth opens, and closes.
<<speech "game-tamsin">><<say "game-tamsin" "I was going to say something. It was... important?">><</speech>>
<<speech "game-vera">><<say "game-vera" "Your turn, Tam.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "Oh. Right. Yes.">><</speech>>
<<set $flags._calm to ($flags._calm || 0) + 1>>
<<target "game-tamsin" "unaware" "At the table · very warm">>
<<gain_xp "musk" 2>>
<<choose "Back into the dark" "GameNight_Shop" "she's lost the thread">>
<</replace>><</choose_do>><<else>><<choose_locked "Let the air answer" "the room dosed" "she'd breathe in deep to think">><</if>>
<<choose "Let her wonder" "GameNight_Shop" "she keeps watching. And counting" "Patience">>
<span id="read-scene"></span>/% Event: 3+ on the table (or round 9, two chairs empty): Tamsin goes looking, with Kit if she's at the table. Once. Split the party is the premium: Influence +3. %/
<<set $flags._searchSeen to true>>
<<set _withKit to not $flags._kitDone and not $flags._kitOut and setup.gnTrip() isnot "kit">>
<<target "game-tamsin" "alerted" "Searching the shop">>
''THE BACK ROOM · THEY GO LOOKING''
<<if _withKit>><<scene "missions/gamenight/search-pair.webp">><<else>><<scene "missions/gamenight/tamsin-read.webp">><</if>>
The game stops. Tamsin stands up.
<<set _gone to setup.gnMissing()>>\
<<set _line to "Right. That's enough. " + (_gone gt 1 ? ["", "", "Two", "Three", "Four"][_gone] + " of us gone" : "Something keeps shrieking") + ", nobody's answering, and I keep hearing things. I'm going to look.">>\
<<speech "game-tamsin">><<say "game-tamsin" _line>><</speech>>
<<speech "game-vera">><<say "game-vera" "Tam. Never split the party.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "Then come with me.">><</speech>>
<<speech "game-vera">><<say "game-vera" "I //can't//. I'm the GM. The GM never leaves the table.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "That's not a rule.">><</speech>>
<<speech "game-vera">><<say "game-vera" "It's //my// rule.">><</speech>>
<<if _withKit>>
<<speech "game-kit">>Kit's already up, rolling the game mat into a club. <<say "game-kit" "I'll come. If it's a prank, I'm hitting someone.">><</speech>>
They come out into the corridor shoulder to shoulder, phone torches up at eye level, sweeping.
<<choose_do "Split the party" "nudge the strategist. She'll send Kit out back on her own" "Influence" "Premium">><<replace "#search-scene">>
You touch the strategist's mind, lightly, right where she's already planning. //Faster if you split. Kit takes the alley.//
<<speech "game-tamsin">><<say "game-tamsin" "Kit. You take the alley. I'll do the shop.">><</speech>>
<<speech "game-kit">><<say "game-kit" "Isn't that literally splitting the party?">><</speech>>
<<speech "game-vera">>From the table, scandalised: <<say "game-vera" "You're //splitting the party!//">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "It's a shop, Vee, not a dungeon.">><</speech>>
Kit goes out the back door into the alley, map mat raised. Tamsin goes into the dark shop alone. She frowns as she goes, as if she can't quite remember deciding.
<<set $flags._kitOut to true>><<set $flags._tamsinWhy to "split">>
<<target "game-kit" "alerted" "Searching the alley">>
<<target "game-tamsin" "alerted" "In the dark shop · alone">>
<<gain_xp "influence" 3>>
<<choose "The dark shop · Tamsin" "GameNight_Tamsin" "alone, and Kit's out back">>
<</replace>><</choose_do>>
<<choose_do "Take them both in the corridor" "shoulder to shoulder, torches at eye level. Come from above" "Lurk">><<replace "#search-scene">><<set _way to "lurk">><<include "GameNight_Search_Take">><</replace>><</choose_do>>
<<choose_do "Grab them both" "straight down the corridor at them, fast" "Strength">><<replace "#search-scene">><<set _way to "grab">><<include "GameNight_Search_Take">><</replace>><</choose_do>>
<span id="search-scene"></span>
<<else>>
<<speech "game-tamsin">>She picks up her phone and turns on the torch. <<say "game-tamsin" "I'll text you every minute.">><</speech>>
<<speech "game-vera">><<say "game-vera" "Every //thirty seconds//.">><</speech>>
Tamsin comes out into the corridor alone, torch up at eye level, and turns toward the dark shop. Toward you.
<<set $flags._tamsinWhy to "search">>
<<target "game-tamsin" "alerted" "In the dark shop · alone">>
<<choose "The dark shop · Tamsin" "GameNight_Tamsin" "alone, with a phone torch">>
<</if>>/% Included by GameNight_Search: Tamsin and Kit together in the corridor. _way: lurk | grab %/
----
<<if _way is "lurk">>
You're flat on the corridor ceiling. They pass right under you, torches sweeping the stacked game boxes, the mop bucket, the kitchenette door. Nobody points a torch at the ceiling. Nobody ever does.
You come down on both of them at once. A tendril round each waist, one over each phone. The torches go out together.
In the dark, Kit says <<speech "game-kit">><<say "game-kit" "Tam—">><</speech>> and Tamsin says <<speech "game-tamsin">><<say "game-tamsin" "I know.">><</speech>> very quietly, and then the pheromones are in through their skin and neither of them says anything for a while.
<<else>>
You come at them straight down the corridor. Kit sees you first and yells, a proper yell, and swings the map mat. It bounces off you with a soft wet //thwap//. Tamsin doesn't yell. She grabs Kit's arm to run, which is the right call, and far too late.
<<speech "game-vera">>From the back room: <<say "game-vera" "//Guys?//">><</speech>>
You've got them both. The musk does the rest.
<</if>>
You lay them down side by side on the corridor floor among the stacked boxes, one tendril holding each of them, and they turn their heads and look at each other.
<<speech "game-kit">><<say "game-kit" "This isn't in the rulebook.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "Everything's in the rulebook. Page two-twelve. Grappling.">><</speech>>
<<speech "game-kit">><<say "game-kit" "You're not funny.">><</speech>>
Kit takes you first, shorts round her knees, glaring at the ceiling. Her body grips and pulls at you like it's trying to win something, tail lashing, ears flat, and she swears at you in a steady furious undertone that slowly stops being swearing.
Tamsin watches. Of course she watches. Her glasses are fogging. When you turn to her she's already shifted her skirt out of the way, very neatly, and her voice is perfectly calm.
<<speech "game-tamsin">><<say "game-tamsin" "Contact transmission. Through the skin. That's why the corridor felt warm.">> Her breath catches. <<say "game-tamsin" "That's very... efficient.">><</speech>>
She's tight and slick and she comes apart slowly, a clever woman losing her place one thought at a time. By the end she's holding Kit's hand on the floor between them, hard, and neither of them is saying anything clever at all.
<<climax "Cum">>You fill Kit first. She clamps round you and pulls every pulse out of you with her teeth gritted, tail rigid, then limp. Tamsin comes a moment later, silently, mouth open, as the heat floods into her and spills over onto the corridor floor.
Two bellies round side by side in the dark. Kit's under her cropped top, Tamsin's under her neat white tee. Tamsin pushes her glasses up her nose with one shaking finger.
<<speech "game-tamsin">><<say "game-tamsin" "I'm a little funny.">><</speech>>
<<speech "game-kit">><<say "game-kit" "//Shut up//, Tam.">> But she doesn't let go of her hand. <</speech>>
<<if _way is "lurk">><<gain_xp "lurk" 2>>
<<else>><<gain_xp "strength" 1>><<gain_sus 1 "Kit yelled in the corridor">><<gn_noise 1>><</if>>
<<set $flags._kitDone to true>><<set $flags._tamsinDone to true>><<set $flags._last to "tamsin">>
<<claim_bred "game-kit">><<claim_bred "game-tamsin">>
----
<<gn_next>><</climax>>/% Tamsin, alone in the dark shop (lured, searching, or split off). Best: from above (Lurk +2), or let her find a friend you left (Lurk +3). Musk +2 if the room's dosed. Grab her and she screams. %/
<<set _found to setup.gnFound()>>
''THE DARK SHOP · TAMSIN''
<<scene "missions/gamenight/tamsin-torch.webp">>
<<if $flags._tamsinWhy is "split">>
She's alone in the dark shop, and it's bothering her. She doesn't know why she suggested it. She never suggests splitting up. Her torch beam is steady. Her other hand isn't.
<<elseif $flags._tamsinWhy is "search">>
She comes into the dark shop with her phone torch up, texting Vera with her other thumb without looking. //Nothing yet.//
<<else>>
She comes in through the corridor doorway with her phone torch up, slow, checking every corner, exactly the way her wizard walks into a dungeon.
<<speech "game-tamsin">><<say "game-tamsin" "Saff? If you're hiding in here to jump out at me, I will end you.">><</speech>>
<</if>>
She sweeps every aisle at eye level, then low, under the display cases, behind the till. Methodical. Thorough. She never once looks up.<<if $flags._dosed>> She's been breathing the back room for an hour, though. Her torch beam keeps wandering off and she keeps bringing it back.<</if>>
<<instinct "She's looking for a person. A person would be at eye level, or on the floor.">>
''How do you take her?''
<<choose_do "From above" "she checks every aisle at eye level. Nobody checks the tops of the shelves" "Lurk">><<replace "#tamsin-scene">><<set _way to "above">><<include "GameNight_Tamsin_Take">><</replace>><</choose_do>>
<<if _found>><<choose_do `"Let her find " + setup.characters["game-" + _found].name` "she'll kneel by her friend. All her attention on her" "Lurk" "Premium">><<replace "#tamsin-scene">><<set _way to "found">><<include "GameNight_Tamsin_Take">><</replace>><</choose_do>><<else>><<choose_locked "Let her find a friend" "someone left where you took her" "she'd kneel by her">><</if>>
<<choose_do "Musk the aisle" `$flags._dosed ? "she's been breathing it all night. A little more" : "she'll smell it, and she'll know exactly what it is"` "Musk">><<replace "#tamsin-scene">><<set _way to "musk">><<include "GameNight_Tamsin_Take">><</replace>><</choose_do>>
<<choose_do "Grab her" "off the shelf, before she can turn" "Strength">><<replace "#tamsin-scene">><<set _way to "grab">><<include "GameNight_Tamsin_Take">><</replace>><</choose_do>>
<span id="tamsin-scene"></span>/% Included by GameNight_Tamsin. _way: above | found | musk | grab; _found: saffron | jules %/
----
<<if _way is "above">>
You're draped along the top of the tallest shelf. She passes under you twice. The third time, you come down behind her like a curtain falling: one tendril round her waist, one over the phone in her hand. The torch goes out.
She doesn't scream. She goes very still.
<<speech "game-tamsin">><<say "game-tamsin" "Up.">> Almost admiring. <<say "game-tamsin" "Of course. Nobody ever checks up.">><</speech>>
<<elseif _way is "found">>
<<if _found is "saffron">>
She finishes the shop and goes down the corridor. The kitchenette door is ajar. Her torch finds Saffron on the tiles, curled round her round belly, flushed and humming.<<if $flags._standIn is "saffron">> Tamsin looks back toward the back room, where Saffron is also sitting, laughing at something, and her face does something complicated.<</if>>
<<speech "game-tamsin">>She's on her knees at once, two fingers at Saffron's throat, the way they taught her on the first-aid course. <<say "game-tamsin" "Saff. Saff, can you hear me? What happened? What's—">><</speech>>
<<speech "game-saffron">>Saffron opens her eyes and beams. <<say "game-saffron" "Tam! Hiii. You //have// to try this.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "Try wh—">><</speech>>
<<else>>
She finishes the shop and goes down the corridor. The bathroom door is ajar. Her torch finds Jules on the floor against the tiles, glowing, round-bellied, reciting something to the ceiling.<<if $flags._standIn is "jules">> Tamsin looks back toward the back room, where Jules is also sitting, doing a voice, and her face does something complicated.<</if>>
<<speech "game-tamsin">>She's on her knees at once, two fingers at Jules's throat, the way they taught her on the first-aid course. <<say "game-tamsin" "Jules. Jules, look at me. What happened?">><</speech>>
<<speech "game-jules">>Jules takes her face in both hands. <<say "game-jules" "Tam. Darling. //Kneel.//">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "I am kneeling, what are you—">><</speech>>
<</if>>
Every bit of her attention is on her friend. She doesn't hear you come in behind her. She doesn't feel the first tendril until it's round her waist, and by then the second is on the back of her neck, skin to skin, and the clever part of her is a long way behind the rest.
<<elseif _way is "musk">>
<<if $flags._dosed>>
You breathe down the aisle at her, slow. She's been breathing you for an hour in that back room. This is just a little more.
She stops in the middle of the aisle and frowns at her own torch as if it's done something rude.
<<speech "game-tamsin">><<say "game-tamsin" "I came out here for a reason.">> A pause. <<say "game-tamsin" "It was a //good// reason.">><</speech>>
When you come down off the shelf she watches you do it and only sighs.
<<else>>
You breathe down the aisle at her. She smells it as it reaches her, and stops, and you watch her know.
<<speech "game-tamsin">><<say "game-tamsin" "That. That's it. That's what's in the—">><</speech>>
She's already breathed it. Her torch dips. Her knees go, slowly, and she sits down on the floor between the shelves with her back against the board-game boxes, and looks up at you with perfect clarity and no ability whatsoever to do anything about it.
<</if>>
<<else>>
You drop on her off the shelf. She screams, a real one, the first real scream of the night, and the phone goes skittering away under a display case, its torch spinning across the ceiling.
<<speech "game-vera">>From the back room: <<say "game-vera" "//TAM?//">><</speech>>
Then you've got her, and the musk has got her, and the scream runs out.
<</if>>
She ends up on the floor between the shelves, her back against the board-game boxes, skirt pushed up, and she talks the whole way down. Quietly. Precisely. She can't help it.
<<speech "game-tamsin">><<say "game-tamsin" "Skin first. Then the air. You're the smell. You're why we've all gone pink.">> Her breath hitches as a tendril slides up the inside of her thigh. <<say "game-tamsin" "You're why nobody came back.">><</speech>>
She's slick and warm and so tight round you that she gasps at the first slow stroke and loses the next sentence entirely. Her glasses fog. She takes them off and folds them, carefully, and puts them on the shelf beside her, and then she puts both hands on you and pulls.
<<speech "game-tamsin">><<say "game-tamsin" "Vee's going to be //so// annoyed.">> A shaky little laugh. <<say "game-tamsin" "She hates it when the party splits.">><</speech>>
You take her slow and deep against the shelf, the game boxes rocking. She stops talking. For the first time all night, Tamsin has nothing to say, just her breath coming quicker and quicker in the dark.
<<climax "Cum">>She comes silently, mouth open, back arching off the shelf, as the seed swells through you and pours into her in long heavy pulses. It's more than she can hold. It runs down her thighs onto the floor, warm, and she shudders with every pulse.
The warmth settles low and her belly rounds under her neat white tee, steady and sure. She finds her glasses on the shelf, puts them back on, and pushes them up her nose with one shaking finger.
<<speech "game-tamsin">><<say "game-tamsin" "I said something was wrong. An hour ago. I //said//.">><</speech>>
<<if _way is "above">><<gain_xp "lurk" 2>>
<<elseif _way is "found">><<gain_xp "lurk" 3>>
<<elseif _way is "musk">><<if $flags._dosed>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<else>><<gain_xp "strength" 1>><<gain_sus 2 "Tamsin screamed in the dark shop">><<gn_noise 1>><</if>>
<<set $flags._tamsinDone to true>><<set $flags._last to "tamsin">><<claim_bred "game-tamsin">>
----
<<gn_next>><</climax>>/% The finale: Vera at her table (and Tamsin, if she never left it). Calm: let her narrate you (Influence +2) or be the dragon (Endowment +2). Tamsin there: turn the strategist (Influence +3). Scared (table 3+): talk her down (+2); the dragon makes her scream. Table 4 and no Honey Jr: slow or loud and she gets a call to Fed-Sec (+3). Dosed: musk +2. %/
<<set _tam to not $flags._tamsinDone>>
<<set _t to setup.gnTable()>>
<<set _scared to _t gte 3>>
<<set _phone to _t gte 4 and not $flags._standIn and not $flags._dosed>>
<<set _hj to $flags._standIn ? setup.characters["game-" + $flags._standIn].name : "">>
<<if _tam>>''THE BACK ROOM · VERA AND TAMSIN''<<else>>''THE BACK ROOM · VERA''<</if>>
<<if _scared and not $flags._dosed>><<scene "missions/gamenight/vera-alone.webp">><<else>><<scene "missions/gamenight/vera-gm.webp">><</if>>
You come down the corridor to the back room door. It's still propped an inch open on the dice bag.
<<if $flags._dosed>>
The back room is thick and sweet and gold. Vera's still at the head of the table behind her screen, still narrating, very slowly, one hand flat on the map as if it's holding her up. Her cheeks are pink. Her waistcoat's undone a button.
<<speech "game-vera">><<say "game-vera" "And the dragon... is coming. Any minute now. It's so //warm// in the lair.">><</speech>>
<<if _tam>>Tamsin sits at her right hand with her chin in her palm, watching the door through half-closed eyes. She's the only one in the room still thinking in straight lines, and it's costing her.<</if>>
<<elseif not _scared>>
The game's still going. Just. Vera's at the head of the table behind her screen, narrating the dragon's lair to a table that's mostly empty chairs, and doing it as if every seat were full.
<<speech "game-vera">><<say "game-vera" "Ashmaw stirs. The gold beneath her shifts like water. And somewhere in the dark, something is //watching//.">> She glances round. <<say "game-vera" "Where //is// everyone? They're missing the best bit.">><</speech>>
<<if _tam>><<speech "game-tamsin">>At her right hand, dry as dust: <<say "game-tamsin" "I've been saying that for an hour, Vee.">><</speech>><</if>>
<<else>>
Vera is on her feet behind her screen with her phone in one hand and the back door key on its lanyard in the other. Every other chair is pushed back. The pizza's gone cold.
<<speech "game-vera">><<say "game-vera" "Saff? Jules? Kit, this isn't funny any more. Somebody //answer// me.">><</speech>>
<<if _tam>>Tamsin stands beside her, very still, looking at the dark gap of the door. Looking, you realise, straight at you.<</if>>
<</if>>
At the far corner, Wink is painting the last scales on the little dragon, round-bellied and serene. She doesn't look up.
<<if _hj>>In <<= _hj>>'s chair, Honey Jr catches your eye through the gap and winks. Vera's phone is face-down in her lap. She palmed it an hour ago.<</if>>
<<if _phone>>Vera's thumb is on the call button.<</if>>
<<psi_from "evelyn" "That's the one that matters. The keys, the shop, every girl on the parade. Make it count.">>
''How do you take <<= _tam ? "them" : "her">>?''
<<if _tam>><<choose_do "Turn the strategist" "Vera trusts Tamsin's read over her own eyes. Give Tamsin a new one" "Influence" "Premium">><<replace "#vera-scene">><<set _way to "influence">><<include "GameNight_Vera_Take">><</replace>><</choose_do>>
<<elseif _scared>><<choose_do "Talk her down" "she's frightened. She's also a storyteller. Give her a story" "Influence">><<replace "#vera-scene">><<set _way to "influence">><<include "GameNight_Vera_Take">><</replace>><</choose_do>>
<<else>><<choose_do "Let her narrate you" "three months describing a dragon. Be one in her head first" "Influence">><<replace "#vera-scene">><<set _way to "influence">><<include "GameNight_Vera_Take">><</replace>><</choose_do>><</if>>
<<choose_do "Be the dragon" `_scared ? "she'll scream before she's amazed" : "she's been waiting three months for this entrance"` "Endowment">><<replace "#vera-scene">><<set _way to "dragon">><<include "GameNight_Vera_Take">><</replace>><</choose_do>>
<<choose_do "Musk" `$flags._dosed ? "she's been breathing you all night" : _phone ? "she'll hold her breath and press call" : "she'll smell it coming down the corridor"` "Musk">><<replace "#vera-scene">><<set _way to "musk">><<include "GameNight_Vera_Take">><</replace>><</choose_do>>
<<choose_do "Rush the table" `_phone ? "her thumb is already on the button" : "across the table before she can move"` "Strength">><<replace "#vera-scene">><<set _way to "rush">><<include "GameNight_Vera_Take">><</replace>><</choose_do>>
<span id="vera-scene"></span>/% Included by GameNight_Vera. _way: influence | dragon | musk | rush; _tam, _scared, _phone, _hj from the room %/
----
<<if _way is "influence">>
<<if _tam>>
You don't go to Vera. You go to Tamsin. <<if $flags._nudged>>You've been in there once tonight already, and she let you, and the door's still open.<</if>> Into her head, in behind all those careful straight lines, and you give her a new read on the room. Everyone's fine. Everyone's better than fine. You show her Saffron grinning on the kitchenette tiles, Kit glaring happily at the moons, Jules taking a bow. You show her what it feels like.
Tamsin takes off her glasses and puts them on the table.
<<speech "game-tamsin">><<say "game-tamsin" "Vee. Sit down. It's fine. They're fine.">><</speech>>
<<speech "game-vera">><<say "game-vera" "Tam, there's a, there's a //thing// in the door—">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "I know. I've read it. Sit down.">><</speech>>
And Vera, who has trusted Tamsin's read on every room since they were eleven years old, sits down.
<<elseif _scared>>
You come into the doorway slowly and stop there, and you don't touch her. You reach for the one part of her that isn't frightened. The storyteller. You show her a scene: a creature out of the dark that means no harm. That means something much better than harm.
She can't help it. She narrates.
<<speech "game-vera">><<say "game-vera" "A creature emerges from the shadows.">> Her voice shakes. <<say "game-vera" "It is... not hostile.">> She looks at the phone in her hand, and back at you, and puts it face-down on her screen, very carefully. <<say "game-vera" "It's not hostile. Is it.">><</speech>>
<<else>>
You let her narrate you. A nudge, that's all: //describe what comes through the door//. And Vera, who has been describing a dragon for three months, looks up at the gap in the door, at you, and doesn't miss a beat.
<<speech "game-vera">>Low and thrilled: <<say "game-vera" "And from the shadows, something comes. Not the dragon. Something //older//.">> She leans forward over her screen. <<say "game-vera" "It's been watching us all night.">><</speech>>
<</if>>
<<elseif _way is "dragon">>
You come in over the table. Up out of the dark, across the map, dice and miniatures scattering, rising to your full height under her swinging lamp with your tendrils spread out wide like wings.
<<if _scared>>She screams first, a big theatre-trained scream that goes straight through the shop and out of the front window. Then she runs out of breath, and stares, and the awe wins.<</if>>
<<speech "game-vera">>Her hands are pressed to her chest. <<say "game-vera" "...Oh. Oh, //that's// how you do an entrance.">><</speech>>
<<if _tam>><<speech "game-tamsin">>Beside her, quite calmly: <<say "game-tamsin" "Vee, that's not the dragon.">><</speech>> <<speech "game-vera">><<say "game-vera" "I //know//, Tam.">> She doesn't take her eyes off you. <</speech>><</if>>
<<elseif _way is "musk">>
<<if $flags._dosed>>
You just walk in. She's been breathing you all night. She watches you come in over the dice bag and she smiles like the last guest has finally arrived.
<<speech "game-vera">><<say "game-vera" "Oh, there you are. We saved you a chair.">><</speech>>
<<elseif _phone>>
She smells it coming down the corridor, and she knows. She holds her breath and presses call, eyes watering.
//Fed-Sec. What's your emergency?//
<<speech "game-vera">><<say "game-vera" "Natural Twenty, the game shop on the parade, there's something in the—">><</speech>>
Then she has to breathe.
<<else>>
She smells it coming down the corridor, sweet and heavy, and she knows it's what's been taking her friends. She stands there and breathes it anyway, because there isn't anything else to breathe.
<<if _tam>><<speech "game-tamsin">>Tamsin grabs her arm. <<say "game-tamsin" "Vee, don't breathe—">><</speech>> Too late, for both of them.<</if>>
<</if>>
<<else>>
<<if _phone>>
You come across the table at her. She's quicker. Her thumb comes down.
//Fed-Sec. What's your—//
<<speech "game-vera">><<say "game-vera" "Natural Twenty! Something's in—">><</speech>>
A tendril over her mouth. Too late.
<<else>>
You come across the table at her. She screams, and dice fly everywhere<<if _tam>>, and Tamsin goes for the back door and gets two steps<</if>>, and then you're on her.
<</if>>
<</if>>
<<scene "missions/gamenight/vera-dragon.webp">>
She ends up on her own gaming table, on her back across the map of the mountains, her screen knocked flat and her character sheets sliding to the floor. A d20 rolls off the edge. Her hair spills over the dragon's lair.
<<speech "game-vera">><<say "game-vera" "This is my //table//.">> Outraged, breathless. <<say "game-vera" "I'm the //GM//.">><</speech>>
You draw her red skirt up her thighs. She's soaking through her underwear, and when you ease it aside she lifts her hips to help, glaring at you the whole time, a queen being robbed and enjoying it enormously. She can't stop narrating. That's the thing about Vera.
<<speech "game-vera">>As one tendril curls round her wrist and another round her thigh: <<say "game-vera" "The hero is seized.">> A gasp. <<say "game-vera" "The hero is //very// seized.">><</speech>>
When you push inside her, the narration stops. Her mouth opens. Her back comes up off the table.
You take her slow at first, long deep strokes that rock the whole table, and she clings to the edge of the map with both hands. She's human all the way through. No tricks, no strange biology, just a woman being filled and loving every second of it, clenching round you, her heels drumming the wood. Every stroke shakes another die off the edge.
<<speech "game-vera">><<say "game-vera" "Session forty-one,">> she manages, wild-eyed. <<say "game-vera" "Best. Session.">><</speech>>
Then her theatre voice breaks into something real. She comes the first time with her head thrown back over the edge of the table and a cry that would fill a theatre, and you don't stop.
<<if _tam>>
Tamsin hasn't run. She's sitting in her chair with her glasses off and her hands in her lap, watching her oldest friend come apart on the table, breathing very carefully.
<<speech "game-tamsin">>As you reach for her: <<say "game-tamsin" "For the record, I said something was wrong an hour ago.">><</speech>>
<<speech "game-vera">>From the table: <<say "game-vera" "//Noted//, Tam.">><</speech>>
<<speech "game-tamsin">><<say "game-tamsin" "Don't //noted// me while you're— oh.">><</speech>>
You take her in her chair beside the table, her skirt pushed up and her knees round you, and her hand finds Vera's on the edge of the map and holds on. She's quiet and tight and precise right up until she isn't, and then she's gasping Vera's name.
<</if>>
At the far corner, Wink finishes the dragon's last scale and holds it up to the light. Nobody looks.<<if _hj>> In <<= _hj>>'s chair, Honey Jr applauds.<</if>>
<<climax "Cum">>The seed builds and builds in you, and Vera feels it coming, and grabs your tendril with both hands as if she could pull it deeper. It pours into her in long heavy pulses, hot, far too much, and spills out of her across the map, over the painted mountains, onto the floor. She comes again with it, sobbing a laugh, shaking all over on her own table.
<<if _tam>>You fill Tamsin a moment after. She comes silently, mouth open, still holding Vera's hand.<</if>>
The warmth settles low and Vera's belly rounds under her red waistcoat top, smooth and full. She lays her hand on it. Then she sits up, slowly, among the scattered dice, and looks down at it the way she looks at a really good plot twist.<<if _tam>> Beside her, Tamsin's rounds too, under her neat white tee. She puts her glasses back on to have a proper look.<</if>>
<<speech "game-vera">>Hoarse and delighted: <<say "game-vera" "Well. Nobody saw //that// coming.">><</speech>>
<<if _tam>><<speech "game-tamsin">><<say "game-tamsin" "I did.">><</speech>><</if>>
<<if _way is "influence">><<if _tam>><<gain_xp "influence" 3>><<else>><<gain_xp "influence" 2>><</if>>
<<elseif _way is "dragon">><<if _scared>><<gain_xp "endowment" 1>><<gain_sus 1 "Vera screamed through the shop window">><<else>><<gain_xp "endowment" 2>><</if>>
<<elseif _way is "musk">><<if $flags._dosed>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><<if _phone>><<set $flags._called to true>><<gain_sus 3 "Vera rang the Fed-Sec line">><</if>><</if>>
<<else>><<gain_xp "strength" 1>><<if _phone>><<set $flags._called to true>><<gain_sus 3 "Vera rang the Fed-Sec line">><<else>><<gain_sus 1 "Vera screamed in the back room">><</if>><</if>>
<<set $flags._veraDone to true>><<claim_bred "game-vera">>
<<if _tam>><<set $flags._tamsinDone to true>><<claim_bred "game-tamsin">><</if>>
----
<<gn_next>><</climax>>/% All six claimed: leave them at the table, close the op, then the report %/
<<set $flags.gameNightDone to true>>
<<scene "missions/gamenight/table-after.webp">>
The pendant lamp is turned low. The dice are everywhere.
One by one they drift back into the back room, slow and warm and round, and settle into their chairs or onto the floor round the table, the way friends do when a game night runs very late. Saffron's head on Kit's shoulder. Jules flat on her back on the rug, reciting. Tamsin with her glasses folded. Vera in the GM's chair with her feet on the table and both hands on her belly. Wink, still painting.
You take the back door key off Vera's lanyard and let yourself out into the alley, and leave it on top of the door frame. She'll find it. She always finds everything, eventually.
<<psi_from "evelyn" "Six. A whole table. Come home, love, and tell me who rolled what.">>
<<mission_finish>>
<<choose "Debrief" "Mission_Report" "what it cost, what it earned">>/% After midnight at the safehouse: Evelyn frames the choice. Mission_Report sends you here. %/
<<scene "missions/gamenight/debrief.webp">>
After midnight. The safehouse kitchen, one lamp on. <<name "evelyn">> picks a twenty-sided die out of you with two fingers, where it's been riding along since the back room, and holds it up to the light.
<<speech "evelyn">><<say "evelyn" "Natural twenty.">> She turns it round. <<say "evelyn" "Oh, no. It's a one.">><</speech>>
She drops it on the counter by her datapad. Six ID photos in two rows.
<<speech "evelyn">><<say "evelyn" "Friend groups cut both ways. Leave them at that table and they'll keep each other's secrets for us. Take one away and the other five notice.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Vera's the one that matters. Every girl under thirty on the parade comes through that shop, and she knows all their names. Send her back and she opens on Wednesday. Pod her, and the shop stays shut, and people ask why.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Tamsin, I want back. Fed-Logistics. She spots patterns for a living. Let her spot the wrong ones.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Kit plays Fed-Sec's training drills all day. Jules is at the university, and we're going there sooner or later. Saffron makes everyone's coffee.">> She taps the last photo. <<say "evelyn" "And Wink's hive will feel it if she goes quiet. Frostgleam calibrate the colony's sensors. Some of those sensors would like to meet you.">><</speech>>
<<if $flags._called>><<speech "evelyn">><<say "evelyn" "And Vera got through to Fed-Sec. There'll be a patrol up and down the parade for a week. Whoever goes back, goes back careful.">><</speech>><</if>>
<<speech "evelyn">><<say "evelyn" "Your call.">><</speech>>
<<choose "Decide" "Mission_Resolve" "thrall or seedbed, one each">>/% After Mission_Resolve: the seedbeds walk home down the back alley. Reads $lastResolve. %/
<<set _lr to $lastResolve or { seedbeds: [], thralls: [] }>>
<<set _sb to _lr.seedbeds>>
<<if _sb.length is 0>>
<<speech "evelyn">><<say "evelyn" "All six back to the table? Tidy. Next Tuesday they'll save you a chair.">><</speech>>
<<else>>
<<speech "evelyn">><<say "evelyn" "Go on, then. Before the parade wakes up.">><</speech>>
Back down the alley in the small hours. They follow you home in a line, like a party leaving a dungeon.
<</if>>
<<if _sb.includes("game-vera")>>
----
<<scene "missions/gamenight/vera-seedbed.webp">>
Vera brings her GM screen. She climbs into the pod with a flourish, settles back, and narrates the membrane closing over her.
<<speech "game-vera">><<say "game-vera" "And so, at last, our heroes rest.">><</speech>>
It seals mid-sentence. She doesn't mind. She's smiling.
<</if>>
<<if _sb.includes("game-tamsin")>>
----
<<scene "missions/gamenight/tamsin-seedbed.webp">>
Tamsin examines her pod before she gets in: the membrane, the vines, the warm cradle. She folds her glasses and puts them on the edge where she can reach them.
<<speech "game-tamsin">><<say "game-tamsin" "Efficient.">><</speech>>
She lies down, and for once she doesn't count anything.
<</if>>
<<if _sb.includes("game-jules")>>
----
<<scene "missions/gamenight/jules-seedbed.webp">>
Jules insists on an entrance. She climbs into her pod, turns to face the empty nest as if it were a full house, and takes a long, deep bow. She's asleep before she's finished taking it.
<</if>>
<<if _sb.includes("game-saffron")>>
----
<<scene "missions/gamenight/saffron-seedbed.webp">>
Saffron brings the last of the crisps. She eats one, offers you one, and curls up in the warm cradle with her tail round her belly, purring before the membrane closes.
<</if>>
<<if _sb.includes("game-kit")>>
----
<<scene "missions/gamenight/kit-seedbed.webp">>
<<if _sb.includes("game-saffron")>><<speech "game-kit">>Kit checks Saffron's pod first. <<say "game-kit" "Mine's bigger.">><</speech>> It isn't. She climbs in very satisfied anyway.<<else>>Kit climbs in with her arms folded, determined to be the best at this too, and is asleep in under a minute. A personal record.<</if>>
<</if>>
<<if _sb.includes("game-wink")>>
----
<<scene "missions/gamenight/wink-seedbed.webp">>
Wink brings the dragon. Ashmaw, finished at last, no bigger than her thumb. She stands it on the edge of her alcove where she can see it, and falls asleep looking at it, her antennae glowing faintly at the tips.
<</if>>
<<if _lr.thralls.length gt 0>>
<<set _tn to _lr.thralls.map(function (id) { return (setup.characters[id] || { name: id }).name.split(" ")[0]; })>>
----
//<<= _tn.length is 1 ? _tn[0] : _tn.slice(0, -1).join(", ") + " and " + _tn[_tn.length - 1]>> <<= _tn.length is 1 ? "stays" : "stay">> behind. Next Tuesday <<= _tn.length is 1 ? "she'll" : "they'll">> be back round the table at Natural Twenty for session forty-two, a little rounder, a little warmer, and saving you a chair.//
<</if>>
----
<<choose "Sleep" "DayEnd_Transition" `"end day " + $gamestate.day`>>/% ============================================
THE NEIGHBOURS — mission state
One set of $flags drives every path, so the house stays consistent:
_sadieDone/_honeyDone/_jadeDone claimed
_inJade you came in through Jade's window (you start in her room)
_honeyAtDoor Slimey knocked: Honey is downstairs, not in bed
_houseNoise noise inside the house. Honey's ears: 2+ and she's awake
_landingSeen the landing's first-look lines play once
<<nb_next>> prints the way on after a claim: back to the landing,
or out of the house once all three are done.
Flow: Suburb_Neighbours → an entry → Landing ⇄ targets → Complete
→ Mission_Report → Neighbours_Debrief → Mission_Resolve
→ Neighbours_Homecoming → DayEnd_Transition
Next day, Safehouse: Event_FirstCharmer (events/drone/drone_introductions.twee)
============================================ %/
<<widget "nb_next">><<set _left to ["sadie", "honey", "jade"].filter(function (id) { return !$flags["_" + id + "Done"]; }).length>><<if _left is 0>><<choose "Slip out" "Neighbours_Complete" "all three claimed">><<else>><<choose "Back to the landing" "Neighbours_Landing" `_left + (_left is 1 ? " left" : " left in the house")`>><</if>><</widget>>
<<widget "nb_noise">><<set $flags._houseNoise to ($flags._houseNoise || 0) + _args[0]>><<if $flags._houseNoise gte 2 and not $flags._honeyDone and not $flags._honeyAtDoor>><<target "honey" "alerted" "Awake · ears up">><</if>><</widget>>/% Tutorial mission: first real infiltration. 3 targets. %/
/% Teaches: entries, suspicion, stat methods, seedbed vs thrall. %/
<<set $flags._sadieDone to false>><<set $flags._honeyDone to false>><<set $flags._jadeDone to false>>
<<set $flags._inJade to false>><<set $flags._honeyAtDoor to false>><<set $flags._houseNoise to 0>><<set $flags._landingSeen to false>>
<center>''THE NEIGHBOURS — FIRST HUNT''</center>
//Night. Day $gamestate.day.//
<<scene "missions/neighbour/house-night.webp">>
----
<<psi_from "evelyn" "$names.player. Next door. Three women. It's time.">>
<<name "evelyn">> pulls up the layout. Their villa is the twin of yours, just across the garden wall: same Facet build, same floor plan, right down to the basement. Ground floor open-plan, three bedrooms upstairs, one each.
<<psi_from "evelyn" "Sadie. Early thirties, human. Works at the community centre. Friendly. Confident. Sleeps well.">>
<<psi_from "evelyn" "Honey. Vyx. Copper ears, big tail. Influencer, two million followers. Light sleeper. Those ears hear everything.">>
<<psi_from "evelyn" "Jade. Mid twenties, human. Unemployed. Barely leaves the house. Sleeps like the dead.">>
She checks the time. Past midnight. Every light off next door.
<<psi_from "evelyn" "No security, no cameras. What gets you noticed is noise: on the street, and in the house. Make a racket and Honey's awake before you reach her.">>
----
''How do you get in?''
<<choose "Through the basement vents" "Neighbours_Entry_Wall" "vent to vent, under the garden wall" "Lurk">>
<<choose "Through Jade's window" "Neighbours_Entry_Window" "she sleeps with it cracked open">>
<<choose "Through the front door" "Neighbours_Entry_Door" "nobody locks doors here">>
<<set _dt to setup.droneTotal()>>\
<<if _dt gte 2>><<choose "Send Slimey to knock" "Neighbours_Entry_Drone" "Honey comes down to answer. You slip in upstairs" "2+ drones ✓">><<else>><<choose_locked "Send Slimey to knock" `"2+ drones (you have " + _dt + ")"` "Honey comes down to answer">><</if>><<scene "missions/neighbour/entry-wall.webp">>
The basement vents. Facet builds every villa the same, and every villa has the same little bronze grille at the foot of its side wall, breathing the basement out into the garden.
You pour out through yours. Flatten. Flow low along the base of the boundary wall, in the black shadow of the cypresses, under the gap where the wall meets the soil. Ten metres of lawn without once touching moonlight. Then their grille, identical slats, identical gap, and you're through it like water down a drain.
Their basement: bare basalt, a few boxes, nothing more. Up the marble stairs. Under the door. You reconstitute in their ground floor. Dark. Quiet. Three heartbeats above.
<<if $currentRun.stats.lurk.level gte 2>>You don't even disturb the dust.<<else>>Clumsy at the top, a box knocked an inch across the floor, but it's stone on stone and it barely carries.<</if>>
<<gain_xp "lurk" 1>>
<<psi_from "evelyn" "Perfect. You're in. Never once in the open. Three of them upstairs.">>
<<choose "Go upstairs" "Neighbours_Landing">><<scene "missions/neighbour/entry-window.webp">>
Jade's bedroom window. First floor, cracked open two inches for the night air.
You flow up the exterior wall and compress through the gap. Easy for something without bones. But as you push through, your mass catches the frame. A creak. Loud in the silence. You freeze. Wait.
Nothing stirs in here. Down the hall, something might have.
<<gain_sus 1 "Jade's window frame creaked">>
<<nb_noise 1>>
<<set $flags._inJade to true>>
You're in her room. She's right there: asleep, sheets kicked off, dead to the world.
<<psi_from "evelyn" "You're in. That creak might have carried. Probably nothing. Probably.">>
<<choose "Take Jade first" "Neighbours_Target_Jade" "she's right here">>
<<choose "Leave her for now. Out to the landing" "Neighbours_Landing" "the other two first">><<scene "missions/neighbour/entry-door.webp">>
The front door. Unlocked. Of course it is. Paradise colony, nothing to fear.
You flow across the garden path in moonlight and in through the door. Ease it shut behind you. Their hallway.
But the path. You look back through the glass. A faint purple-tinged residue on the paving where your mass crossed. Glistening in the moonlight. Not obvious, but //there//.
<<gain_sus 2 "Slime trail on the front path">>
<<psi_from "evelyn" "You've left a trail on the path. It'll dry clear by morning. Probably. Let's be quick.">>
<<choose "Go upstairs" "Neighbours_Landing">><<scene "missions/neighbour/entry-drone.webp">>
You send <<name "slimey">>. She bounces across the garden and knocks on the front door. Cheerful. Clueless. Exactly as planned.
Footsteps. Honey. Of course it's Honey: those fox ears caught the gate. She pads downstairs. Opens the door.
<<speech "slimey">><<say "slimey" "Hi! I'm from next door! Is this a bad time?">><</speech>>
Honey blinks. Ears flat. Phone in one hand.
<<speech "honey">><<say "honey" "It's... one in the morning?">><</speech>>
<<speech "slimey">><<say "slimey" "Oh! Is it? I love your ears.">><</speech>>
While Honey is fixed on the smiling purple woman on her doorstep, you flow up the back wall and in through Jade's open window. Silent. Unseen.
<<set $flags._honeyAtDoor to true>><<set $flags._inJade to true>>
<<target "honey" "unaware" "Downstairs · talking to Slimey">>
<<psi_from "evelyn" "Nicely done. Slimey can keep her talking for a good while. She's very... committed. Sadie and Jade are still in their beds.">>
<<choose "Take Jade" "Neighbours_Target_Jade" "she's right here, dead asleep">>
<<choose "Cross the landing to Sadie" "Neighbours_Target_Sadie" "furthest from the front door">>
<<choose "Go down and take Honey at the door" "Neighbours_Honey_Door" "while she's confused" "Strength">>/% Upstairs landing. The hub between targets: only what's left is offered. %/
<<scene "missions/neighbour/upstairs-landing.webp">>
<<if not $flags._landingSeen>><<set $flags._landingSeen to true>>\
The landing. Three doors. Left: Sadie's room. Middle: Honey's. Right, at the end: Jade's.
<<else>>\
Back on the landing. The runner muffles you. The house holds its breath.
<</if>>
<<if $flags._sadieDone>>Sadie's door stands ajar. Inside, she's humming to herself, curled around the warmth in her belly.<<else>>Sadie's door is shut. Slow, even breathing behind it.<</if>>
<<if $flags._honeyDone>>Honey's room is quiet. Finally.<<elseif $flags._honeyAtDoor>>Honey's door is open and her bed is empty. From downstairs: Slimey's voice, bright and endless, and Honey, less and less sure why she's still listening.<<elseif $flags._houseNoise gte 2>>Light under Honey's door. Bedsprings. She's sitting up. Those ears are pointed straight at the landing.<<else>>Through Honey's door, her breathing is quicker than sleep should be. Even dozing, her ears are rotating like satellite dishes.<</if>>
<<if $flags._jadeDone>>Jade's door is open. She's snoring again.<<elseif $flags._inJade>>Jade's door, half open the way you left it. She hasn't moved.<<else>>Jade's door is at the end. You can hear nothing from it at all.<</if>>
<<if not $flags._honeyDone and not $flags._honeyAtDoor>><<instinct "The fox. Her ears are moving. Her scent is all over this landing.">><</if>>
<<if not $flags._sadieDone and not $flags._honeyDone and not $flags._jadeDone>>
<<psi_from "evelyn" "Sadie's nearest the stairs. Jade won't wake for anything. Honey's the risk, and every bit of noise makes her harder.">>
<</if>>
<<if not $flags._sadieDone>><<choose "Sadie" "Neighbours_Target_Sadie" "left door, nearest the stairs">><</if>>
<<if not $flags._honeyDone>><<if $flags._honeyAtDoor>><<choose "Honey, downstairs with Slimey" "Neighbours_Honey_Door" "she's distracted, not asleep" "Strength">><<else>><<choose "Honey" "Neighbours_Target_Honey" `$flags._houseNoise gte 2 ? "she's awake now" : "middle door, light sleeper"`>><</if>><</if>>
<<if not $flags._jadeDone>><<choose "Jade" "Neighbours_Target_Jade" "end of the hall, dead asleep">><</if>>
<<if $flags._sadieDone and $flags._honeyDone and $flags._jadeDone>><<choose "Slip out" "Neighbours_Complete" "all three claimed">><</if>>/% Sadie: human, early 30s, heavy-enough sleeper %/
''SADIE''
<<scene "missions/neighbour/sadie-asleep.webp">>
Her door opens without a sound. She's on her side in a long t-shirt, bare legs. Soft curves, warm skin. Her room smells faintly of lavender.
The most frustrated of the three: years on a colony with no men. You can taste it in her chemistry. She was warm and inviting on the doorstep the day you moved in. The kind of woman who misses being touched.
<<psi_from "evelyn" "She's a heavy-enough sleeper. You've got options.">>
''How do you take her?''
<<choose_do "Musk" "let her body welcome you before she wakes" "Musk">><<replace "#sadie-scene">>
You settle beside her bed and breathe. Slow, warm arousal musk, a gentle warmth pooling around her.
Her breathing deepens. She shifts. Thighs pressing together. A soft sound in her throat. Her body opening before her mind knows why.
When your tendril finds her, she's already wet. Already arching toward contact she doesn't understand. Her eyes flutter open, and what she sees doesn't make sense, but what she //feels// makes her not care.
No scream. No fight. Just a shaky exhale and a whispered "//yes//".
The breeding is slow, gentle, thorough.
<<climax "Cum">>She takes your seed with a long, trembling sigh.
<<gain_xp "musk" 1>>
<<set $flags._sadieDone to true>><<claim_bred "sadie">>
----
<<nb_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Stealth" "tendril contact while she sleeps" "Lurk">><<replace "#sadie-scene">>
You flow onto the bed. Slow. Weight spread. Your tendril traces up her inner thigh, contact pheromones soaking into her skin.
She shifts. Murmurs. Her legs part. Still asleep, the pheromones keeping her under while her body answers.
By the time your tendril enters her, she's deep in a dream she'll remember every second of tomorrow.
<<climax "Cum">>A moan escapes her, louder than you'd like. She wakes only at the very end, eyes snapping open as she cums, overwhelmed, the bond already formed.
<<gain_sus 1 "Sadie moaned through the wall">>
<<nb_noise 1>>
<<gain_xp "lurk" 1>>
<<set $flags._sadieDone to true>><<claim_bred "sadie">>
----
<<nb_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Direct" "wake her and overwhelm her at once" "Strength">><<replace "#sadie-scene">>
A tendril across her lips. Not covering, just touching. Her eyes snap open. She sees you: purple, tentacles, inhuman.
Her mouth opens and you flood her with everything. Musk, calming pheromone, arousal. Point-blank.
The scream becomes a gasp becomes a moan in the space of one breath. But it was //loud// for that first half-second, and it went straight through the wall.
Her resistance crumbles fast.
<<climax "Cum">>She clings to you as it takes her, the last of the fight gone out of her.
<<gain_sus 2 "Sadie screamed">>
<<nb_noise 3>>
<<gain_xp "strength" 1>>
<<set $flags._sadieDone to true>><<claim_bred "sadie">>
----
<<nb_next>><</climax>>
<</replace>><</choose_do>>
<span id="sadie-scene"></span>/% Honey: Vyx, light sleeper. Awake if the house got noisy (_houseNoise 2+) %/
<<set _awake to $flags._houseNoise gte 2>>
''HONEY''
<<if _awake>><<target "honey" "alerted" "Awake · ears up">><<scene "missions/neighbour/honey-alert.webp">><<else>><<scene "missions/neighbour/honey-asleep.webp">><</if>>
Her door is ajar. Copper ears. Enormous fluffy tail curled around her like a blanket. Blush-pink satin cami and lace-trimmed shorts, the tail through a slit at the back. Even in sleep those ears //move//, twitching toward every sound.
<<if _awake>>She's sitting up. Ears rigid. The noise woke her. Amber eyes scanning the dark, and then finding you.
<<speech "honey">><<say "honey" "...Hello? Jade, is that you?">><</speech>><<else>>She's dozing. Light. Those ears are a problem, but she isn't awake yet.<</if>>
''How do you take her?''
<<choose "Grab her tail" "Neighbours_Honey_Tail" `_awake ? "she'll see you coming" : "something says it's the weak point"` "Lurk">>
<<choose "Musk cloud" "Neighbours_Honey_Musk" `_awake ? "fill the room while she's still deciding to scream" : "saturate the room before she wakes"` "Musk">>
<<choose "Rush her" "Neighbours_Honey_Rush" "speed and overwhelming contact" "Strength">>/% Honey downstairs with Slimey: at the door (first pick) or on the sofa (later) %/
<<set _later to $flags._sadieDone or $flags._jadeDone>>
<<scene "missions/neighbour/honey-door.webp">>
<<if _later>>You flow back down the stairs. <<name "slimey">> has got Honey onto the sofa somehow, a mug of tea going cold in her hands, ears drooping with the effort of following a conversation about the best kind of soil.
<<speech "honey">><<say "honey" "Look, it's really late, and I don't know what you—">><</speech>><<else>>You don't stay upstairs. You flow back down, fast and silent, and come up behind Honey while she's still in the open doorway with <<name "slimey">>.
<<speech "honey">><<say "honey" "Look, it's really late and I don't know what you—">><</speech>><</if>>
Your tendrils wrap her from behind. Around her waist. Her thighs. She //shrieks//.
<<speech "honey">><<say "honey" "WHAT THE— GET OFF— WHAT IS—">><</speech>>
<<name "slimey">> <<if _later>>pats her knee<<else>>steps inside, closes the door, and pats Honey's hand<</if>> reassuringly while your tendrils pin her arms.
<<speech "slimey">><<say "slimey" "It's okay! It's okay! He's really nice once you get used to it!">><</speech>>
<<speech "honey">><<say "honey" "NICE?! THERE'S A— I'M BEING—">><</speech>>
<<if _later>>She thrashes on the sofa cushions<<else>>You drag her into the living room. She's kicking<</if>>, tail puffed to three times its size, ears flat, claws out. Loud. //Very// loud. But the door's closed, Facet builds in thick marble, and there's a whole garden between this house and the next.
<<name "slimey">> strokes Honey's hair.
<<speech "slimey">><<say "slimey" "Shh shh shh. It'll feel really good in a second, I promise!">><</speech>>
Honey is NOT calmed by this. She's thrashing, snarling, fox teeth bared—
Until you enter her. The snarl cuts off mid-sound and her whole body goes rigid. Her tail uncurls. Her ears drop. A long, shuddering exhale.
<<speech "honey">><<say "honey" "I— you— oh //fuck//—">><</speech>>
The breeding is rough and loud and takes over the entire living room. Cushions everywhere. <<name "slimey">> perches on the arm of the sofa watching with cheerful interest, offering supportive comments nobody asked for.
<<speech "slimey">><<say "slimey" "You're doing great!">><</speech>>
<<speech "honey">><<say "honey" "SHUT— //ah//— SHUT UP—">><</speech>>
<<climax "Cum">>Honey cums howling into a throw pillow. You fill her and she collapses, panting, wrecked, tail twitching. <<name "slimey">> pats her head.
<<speech "slimey">><<say "slimey" "See? Told you he was nice.">><</speech>>
<<gain_sus 2 "Honey shrieked in the living room">>
<<nb_noise 3>>
<<gain_xp "strength" 1>>
<<set $flags._honeyDone to true>><<set $flags._honeyAtDoor to false>><<claim_bred "honey">>
----
<<nb_next>><</climax>><<set _awake to $flags._houseNoise gte 2>>
<<scene "missions/neighbour/honey-tail.webp">>
Your instinct says: the tail. You don't know why. Something in your slime biology reads it as a weak point. A bundle of nerves. An override.
<<if _awake>>She sees you coming. She scrambles back against the headboard, mouth opening, and you have one chance. You lunge low, under her guard, and one tendril catches the base of her tail.<<else>>One tendril wraps the base.<</if>> Strokes. Root to tip. Firm.
Her eyes fly open. Her mouth opens, and what comes out is a //moan//. Deep, guttural, involuntary. Her whole body spasms. Ears snapping flat. Back arching.
<<speech "honey">><<say "honey" "Wh— my— oh //god//—">><</speech>>
She can see you. Every stroke turns her muscles to water. Her body offers what her mind hasn't agreed to yet.
You enter her while she's still trying to form words. One thrust and her protests collapse into "//harder//."
The Vyx can't do anything by halves. Once she's past it: growling, pulling, tail wrapping possessively around you.
<<climax "Cum">>She cums muffled into her own pillow, tail locked tight around you, and doesn't let go for a long time.
<<if _awake>><<gain_sus 1 "Honey yelped before the tail took her">><</if>>
<<gain_xp "lurk" 1>>
<<set $flags._honeyDone to true>><<claim_bred "honey">>
Honey lies there panting. Tail curled around her stomach. Ears twitching. Looking at you with amber eyes, furious and devoted in equal measure.
----
<<nb_next>><</climax>><<set _awake to $flags._houseNoise gte 2>>
<<scene "missions/neighbour/honey-alert.webp">>
You flood the room. Heavy musk. A Vyx nose is far keener than a human one. She catches it at once.
<<if _awake>>She's already on her feet. Then the smell reaches her and she stops dead, nose twitching, tail uncurling behind her.<<else>>Her ears twitch. Eyes open, hazy. She can smell something warm, something that's making her tail uncurl and her thighs press together.<</if>>
<<speech "honey">><<say "honey" "Wha... what's that smell...">><</speech>>
She sees you. Eyes go wide.
But the musk is in her lungs. Deep. The scream doesn't come. Her body flushes instead, breathing shallow and fast.
<<speech "honey">><<say "honey" "You're not— I should be— why am I so—">><</speech>>
You reach her before she finishes. Vyx answer pheromones faster than any other species. She's whimpering in seconds, begging in ten.
<<climax "Cum">>She comes apart against you with a long, wavering whine, ears pressed flat, tail thumping the mattress.
<<if _awake>><<gain_sus 1 "Honey called out before the musk took her">><</if>>
<<gain_xp "musk" 1>>
<<set $flags._honeyDone to true>><<claim_bred "honey">>
Honey lies there panting. Tail curled around her stomach. Looking at you with amber eyes, furious and devoted in equal measure.
----
<<nb_next>><</climax>><<scene "missions/neighbour/honey-alert.webp">>
Speed. You launch across the room. Tendrils spread wide.
She's fast. Vyx reflexes. Rolls sideways, ears flat, tail puffed—
<<speech "honey">><<say "honey" "WHAT THE—">><</speech>>
Your tendrils catch her mid-dodge. Pin her back. Full-surface contact. Maximum pheromone transfer. Her shout cuts to a gasp as the chemicals hit.
She fights. Properly. Claws, hissing, tail lashing. But your secretions work fast on Vyx. Ten seconds. Twenty. The fight melts. The hissing becomes panting.
<<speech "honey">>A whisper: <<say "honey" "I //hate// this.">><</speech>>
Then her hips roll forward.
<<climax "Cum">>The last of the fight goes out of her in one long shudder, and what's left is just Honey, panting, holding on.
<<gain_sus 2 "Honey shouted">>
<<nb_noise 3>>
<<gain_xp "strength" 1>>
<<set $flags._honeyDone to true>><<claim_bred "honey">>
Honey lies there panting. Tail curled around her stomach. Looking at you with amber eyes, furious and devoted in equal measure.
----
<<nb_next>><</climax>>/% Jade: human, mid 20s, unemployed, sleeps through anything %/
''JADE''
<<scene "missions/neighbour/jade-asleep.webp">>
<<if $flags._inJade and not ($flags._sadieDone or $flags._honeyDone)>>She's right here.<<else>>Her room is at the end of the hallway.<</if>><<if $flags._sadieDone or $flags._honeyDone>> Through everything that just happened, she hasn't stirred.<<else>> Slow. Deep. Completely unconscious.<</if>> A huge faded gaming-tournament tee for a nightshirt, mismatched socks. Textbooks on the nightstand she hasn't opened in months. A games controller slipping out of her hand. Sheets kicked off. Dead to the world.
<<psi_from "evelyn" "She's... remarkably unconscious.">>
''How do you take her?''
<<choose_do "Gentle" "musk and tendril, let her wake into it" "Musk">><<replace "#jade-scene">>
You settle beside her. Let the musk pool. Trace a tendril up her bare thigh. Slow, warm.
She shifts. A murmur. Thighs part. Still asleep, her body answering what her mind doesn't know.
She wakes mid-thrust, eyes fluttering open to a world that feels incredible for reasons she can't process.
<<speech "jade">>Thick with sleep: <<say "jade" "Mm— wha— oh...">><</speech>>
She looks down. Sees the tendril. Sees you. Eyes go wide for exactly one second. Then you thrust deeper and her eyes roll back.
<<speech "jade">><<say "jade" "Oh //okay//. Okay. This is fine. This is— //oh//— this is very fine.">><</speech>>
<<climax "Cum">>No fight. No scream. She takes your seed with a long, lazy moan and immediately looks like she might fall back asleep.
<<gain_xp "musk" 1>>
<<set $flags._jadeDone to true>><<claim_bred "jade">>
----
<<nb_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Blunt" "don't bother being subtle, she won't wake" "Endowment">><<replace "#jade-scene">>
You don't bother with subtlety. She's not waking up for anything less than a direct hit.
She wakes on the third thrust. Slowly. Blearily. Like someone shaken awake by a housemate.
She looks at you. At the purple tendril. At her own hips rolling to meet you.
<<speech "jade">><<say "jade" "...huh.">> She blinks. Yawns. <<say "jade" "Okay.">><</speech>>
That's it. Her entire reaction.
She reaches for her phone. Checks the time. Puts it back. Settles into the pillow. Soft pleased sounds.
<<climax "Cum">><<speech "jade">>She cums with a quiet <<say "jade" "oh, nice.">><</speech>>
Falls straight back to sleep with your seed warming her belly.
<<gain_xp "endowment" 1>>
<<set $flags._jadeDone to true>><<claim_bred "jade">>
----
<<nb_next>><</climax>>
<</replace>><</choose_do>>
<span id="jade-scene"></span>/% All three claimed: out of the house, close the op, then the report %/
<<set $flags.neighboursDone to true>>
You leave the way you came<<if $flags._inJade>>, back out through Jade's window. She murmurs "night" without opening her eyes<</if>>. Over the wall. Through the cypress shadow. Home.
Behind you, the villa is exactly as dark as it was. Three women asleep in it. Every one of them yours.
<<psi_from "evelyn" "Three for three. Come home. I've put the kettle on.">>
<<mission_finish>>
<<choose "Debrief" "Mission_Report" "what it cost, what it earned">>/% Straight after the op, still the middle of the night: Evelyn frames the seedbed choice. Mission_Report sends you here. %/
<<scene "missions/neighbour/debrief-night.webp">>
Half two in the morning. Back in the safehouse, the street still dark outside the kitchen window. <<name "evelyn">> at the table under the one lamp, datapad out, a mug of tea in both hands.
<<speech "evelyn">><<say "evelyn" "First hunt, and nobody next door is going to call anyone. Not bad, love.">><</speech>>
She turns the datapad round so you can see it. Three ID photos, side by side: Sadie, Honey, Jade.
<<speech "evelyn">><<say "evelyn" "And all three of them already showing. You don't hang about, do you?">> She taps each photo in turn. <<say "evelyn" "Your seed takes in minutes and grows in hours. They'll carry right through the night and drop a drone each before breakfast, wherever they end up sleeping. Their bed or ours.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Which is the part that actually matters. Each of them either stays where she is or comes home with us. Tonight, while it's dark.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Stay, and she's a thrall. She goes back to her life, keeps her job, keeps her face on the colony's records. Nobody asks questions. And she's ours: she hears things, opens doors, looks the other way.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Come home, and she's a seedbed. A pod in the basement, a drone a night, milk for the hive. But a woman who stops turning up gets noticed. How fast depends on who's expecting her.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Sadie's got colleagues at the community centre. They'll be ringing round by lunchtime. Honey's got two million people who'll notice if she misses one post, and Fed-Sec reads her comments too.">> She snorts. <<say "evelyn" "Jade hasn't been outside since the colony opened.">><</speech>>
<<speech "evelyn">><<say "evelyn" "I've got a view. But it's your nest.">><</speech>>
<<choose "Decide" "Mission_Resolve" "thrall or seedbed, one each">>/% After Mission_Resolve, same night: the seedbeds come home while the street sleeps. Reads $lastResolve. %/
<<set _lr to $lastResolve or { seedbeds: [], thralls: [] }>>
<<set _sb to _lr.seedbeds>>
<<if _sb.length is 0>>
<<speech "evelyn">><<say "evelyn" "All three stay put? Cleaner. Nobody goes missing, nobody asks.">> She glances at the basement door. <<say "evelyn" "The pods will keep. They're not going anywhere.">><</speech>>
<<else>>
<<speech "evelyn">><<say "evelyn" "Right. While it's still dark, then.">><</speech>>
You cross the garden one more time. Two moons over the cypresses, every window on the street still black.
<</if>>
<<if _sb.includes("jade")>>
----
<<scene "missions/neighbour/jade-seedbed.webp">>
Jade's room. She's asleep. Obviously. In exactly the position you left her.
A tendril on her shoulder. Gentle.
<<speech "jade">><<say "jade" "Mm... wha...">> Eyes blinking open. Seeing you. Remembering. <<say "jade" "Oh. You again.">> A sleepy half-smile. <<say "jade" "Are we doing the thing again? Because I was having a really good—">><</speech>>
<<psi_from "evelyn" "Come with us.">>
<<speech "jade">><<say "jade" "...okay.">><</speech>>
She follows you barefoot, one hand on her round belly, yawning. Across the garden. Into your safehouse. Down the stairs to the basement. The nest.
She looks around. Purple-veined walls. Warm and humid. The faint glow.
<<speech "jade">><<say "jade" "Huh. Cosy.">><</speech>>
<<name "evelyn">> guides her to the alcove. The first pod: organic, body-shaped, warm. The membrane peels open. Waiting.
<<speech "jade">><<say "jade" "So... does this mean I have a job now?">><</speech>>
<<speech "evelyn">><<say "evelyn" "...I suppose? You're technically a seedbed.">><</speech>>
<<speech "jade">><<say "jade" "Great.">> Genuine enthusiasm. She's already stepping in. <<say "jade" "Can I put it on my CV? 'Drone Production Specialist'? 'Full-Time Seedbed' has a nice ring. Explains the gap in my employment history.">><</speech>>
<<speech "evelyn">><<say "evelyn" "...">><</speech>>
The membrane seals. Jade sighs contentedly. For possibly the first time in her adult life, someone has given her a function, and she's //delighted// about it.
<<speech "jade">>Muffled, from inside the pod: <<say "jade" "Do I get dental?">><</speech>>
<<speech "evelyn">><<say "evelyn" "Go to sleep, Jade.">><</speech>>
<<speech "jade">><<say "jade" "Okay. Night, boss.">><</speech>>
<</if>>
<<if _sb.includes("sadie")>>
----
<<scene "missions/neighbour/sadie-seedbed.webp">>
Sadie is awake when you reach her, sitting on the edge of her bed with both hands on her rounded stomach, smiling at nothing.
<<speech "sadie">><<say "sadie" "I wondered if you'd come back.">> She stands before you ask. <<say "sadie" "Should I bring anything? I could bring biscuits.">><</speech>>
She brings biscuits. She hands them to <<name "evelyn">> at the bottom of the basement stairs, looks around the nest like a woman being shown a new flat, and steps into her pod without being asked.
<<speech "sadie">><<say "sadie" "Someone should tell the centre I won't be in.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Someone will notice on their own.">><</speech>>
<</if>>
<<if _sb.includes("honey")>>
----
<<scene "missions/neighbour/honey-seedbed.webp">>
Honey's wide awake, sitting up in bed with the ring light on, one hand on her belly and the other holding her phone. She's halfway through filming something when you come in.
<<speech "honey">><<say "honey" "Don't— okay, fine, I'm coming. Can I at least post that I'm taking a break?">><</speech>>
<<psi_from "evelyn" "No.">>
<<speech "honey">><<say "honey" "Two million people, Evelyn.">><</speech>>
But she comes. Tail swishing the whole way down the basement stairs, ears turning to every pulse in the membrane walls. She's still holding the phone when the pod closes around her. Then it slips from her fingers to the floor, screen still lit, and she makes a small, surprised, pleased sound and doesn't say another word.
<</if>>
<<if _lr.thralls.length gt 0>>
----
<<for _tid range _lr.thralls>>
<<if _tid is "sadie">>Next door, Sadie sleeps late for the first time in years, and wakes up humming.
<<elseif _tid is "honey">>At seven sharp, Honey posts her morning selfie. Ears perfect, smile perfect, belly flat again. If you look closely, she looks very pleased with herself.
<<elseif _tid is "jade">>Jade doesn't wake up at all. Nobody notices. Nobody was ever going to.
<</if>>
<</for>>
<</if>>
----
<<speech "evelyn">><<say "evelyn" "Three of them carrying. The drones should be here by breakfast.">> She yawns and finally lets go of the mug. <<say "evelyn" "Bed. Now. Both of us.">><</speech>>
<<choose "Sleep" "DayEnd_Transition" `"end day " + $gamestate.day`>>/% ============================================
STREET SWEEP — "Night Walk". Cypress Lane, five flats, 3am.
Characters: header/data/02-characters.twee (street-*). Art: art/scenes/missions/street/
Per-run $flags (reset at Suburb_StreetSweep):
_willaDone/_hanaDone/_rueDone/_brookeDone/_liraeDone claimed
_willaStirred you forced Willa's window: she's half awake
_rueAlert noise next door (flat 2 or 4) woke Rue: ears up
_rueQuiet you got into Rue's flat without a sound
_liraeBasin you came in through Lirae's water basin
_laneSeen the lane's first-look lines play once
No stat gates: every way in works. The right approach for the woman
in front of you is quiet and worth +2 (premium +3); the rest work for +1.
Rue is the only one who hears the neighbours: noise in flat 2 or 4
before you reach her and she's sitting up waiting.
<<ss_next>> way on after a claim: back to the lane, or home
<<ss_noise "x">> noise from flat x ("hana" | "brooke" wake Rue)
Flow: Suburb_StreetSweep → StreetSweep_Lane ⇄ flats → StreetSweep_Complete
→ Mission_Report → StreetSweep_Debrief → Mission_Resolve
→ StreetSweep_Homecoming → DayEnd_Transition
============================================ %/
<<widget "ss_next">><<set _left to ["willa", "hana", "rue", "brooke", "lirae"].filter(function (id) { return !$flags["_" + id + "Done"]; }).length>><<if _left is 0>><<choose "Head home" "StreetSweep_Complete" "all five claimed">><<else>><<choose "Back out onto the lane" "StreetSweep_Lane" `_left + (_left is 1 ? " flat left" : " flats left")`>><</if>><</widget>>
<<widget "ss_noise">><<if ["hana", "brooke"].includes(_args[0]) and not $flags._rueDone and not $flags._rueAlert>><<set $flags._rueAlert to true>><<target "street-rue" "alerted" "Awake · ears up">><</if>><</widget>>/% Easy mission, 5 targets. Teaches: reading the woman, picking the approach that suits her. %/
<<set $flags._willaDone to false>><<set $flags._hanaDone to false>><<set $flags._rueDone to false>><<set $flags._brookeDone to false>><<set $flags._liraeDone to false>>
<<set $flags._willaStirred to false>><<set $flags._rueAlert to false>><<set $flags._rueQuiet to false>><<set $flags._liraeBasin to false>><<set $flags._laneSeen to false>>
<center>''STREET SWEEP · NIGHT WALK''</center>
//3am. Day $gamestate.day.//
<<scene "missions/street/street-night.webp">>
----
<<psi_from "evelyn" "$names.player. Cypress Lane. Five little garden flats in a row, five women, each one living alone.">>
Two streets over from the safehouse. You came the long way, through the cypress hedges, and the lane is exactly as Evelyn said: single-storey marble flats, identical doors, every window dark. Street lamps turned down to a glow.
<<psi_from "evelyn" "Nobody checks on them until morning. You've got hours. Willa in flat one sleeps light. Hana in two forgets to lock her door. Rue in three is Vyx, and she hears everything, including her neighbours. Brooke in four never really sleeps. Lirae in five is Nerethis. She'll be in a trance.">>
<<psi_from "evelyn" "Any order you like. Read each one before you touch her. The right approach is the quiet one.">>
<<choose "Out onto the lane" "StreetSweep_Lane" "five doors, all dark">>/% The hub between flats: only what's left is offered %/
<<scene "missions/street/street-night.webp">>
<<if not $flags._laneSeen>><<set $flags._laneSeen to true>>\
Cypress Lane. Five front doors in a gentle curve, a strip of garden in front of each, the hedges black against the moons. You keep to the shadow at the foot of the low walls.
<<else>>\
Back on the lane. The paving is cool under you. Somewhere a night bird calls, and nothing answers it.
<</if>>
<<if $flags._willaDone>>Flat 1: the night-light still glows amber behind the blind. Willa won't be checking the locks again tonight.<<elseif $flags._willaStirred>>Flat 1: a shape moves behind the blind. Willa is up, checking the window you forced.<<else>>Flat 1: a thin line of amber at the bedroom blind. Willa's night-light.<</if>>
<<if $flags._hanaDone>>Flat 2: the snoring has started up again.<<else>>Flat 2: her front door is open an inch. You can hear her snoring from the path.<</if>>
<<if $flags._rueDone>>Flat 3: dark and still. Finally still.<<elseif $flags._rueAlert>>Flat 3: a lamp has come on. A pointed-eared silhouette sits bolt upright behind the curtain.<<else>>Flat 3: dark. The bedroom window is closed but not latched.<</if>>
<<if $flags._brookeDone>>Flat 4: the blue glow is gone. Brooke is asleep for once.<<else>>Flat 4: a cold blue flicker at the window. Brooke's phone.<</if>>
<<if $flags._liraeDone>>Flat 5: the slow glow in the window has turned violet.<<else>>Flat 5: a slow teal glow pulses behind the open window, steady as breathing.<</if>>
<<if not $flags._rueDone and not $flags._rueAlert>><<instinct "The fox in the middle. Thin walls either side of her. Make a racket next door and she'll hear it.">><</if>>
<<if not $flags._willaDone>><<choose "Flat 1 · Willa" "StreetSweep_Willa" "light sleeper, night-light on">><</if>>
<<if not $flags._hanaDone>><<choose "Flat 2 · Hana" "StreetSweep_Hana" "door unlocked, snoring">><</if>>
<<if not $flags._rueDone>><<choose "Flat 3 · Rue" "StreetSweep_Rue" `$flags._rueAlert ? "she's awake now, listening" : "Vyx. Ears twitching in her sleep"`>><</if>>
<<if not $flags._brookeDone>><<choose "Flat 4 · Brooke" "StreetSweep_Brooke" "awake, scrolling in the dark">><</if>>
<<if not $flags._liraeDone>><<choose "Flat 5 · Lirae" "StreetSweep_Lirae" "Nerethis, deep in a trance">><</if>>
<<if $flags._willaDone and $flags._hanaDone and $flags._rueDone and $flags._brookeDone and $flags._liraeDone>><<choose "Head home" "StreetSweep_Complete" "all five claimed">><</if>>/% Flat 1 · Willa: human, light sleeper. Best: musk her deeper before you touch her. %/
''FLAT 1 · WILLA''
<<scene "missions/street/willa-asleep.webp">>
Her flat is sealed tight. Door locked. Window locked. Through the gap in the blind: a small amber night-light by the bed, and Willa curled on her side under it, blanket pulled to her chin, brow furrowed even in sleep. She sleeps like someone waiting to be woken.
<<psi_from "evelyn" "Light sleeper, and that night-light means she'll see you if she wakes. Careful.">>
''How do you get in?''
<<choose_do "The bathroom vent" "small, tight, completely silent" "Lurk">><<replace "#willa-in">>
<<scene "missions/street/entry-vent.webp">>
A little square grille high on the bathroom wall. You thin yourself to nothing and pour through the slats, down the tiles, out across the bathroom floor without a sound.
<<gain_xp "lurk" 1>>
<<include "StreetSweep_Willa_Take">>
<</replace>><</choose_do>>
<<choose_do "Under the front door" "slow, but it's silent" "Patience">><<replace "#willa-in">>
<<scene "missions/street/entry-seam.webp">>
The door is locked, but the colony's fabricated doors all leave the same thin seam at the threshold. You press yourself flat and seep under it, a minute of slow, silent pressure, and spread out across her hallway floor.
<<include "StreetSweep_Willa_Take">>
<</replace>><</choose_do>>
<<choose_do "Force the bedroom window" "quickest, but it's locked" "Strength">><<replace "#willa-in">>
You work a tendril into the frame and lean on the latch. It gives with a sharp metallic //click//.
Inside, Willa's breathing stops. She shifts. Mumbles. You hold perfectly still against the glass while she lies there listening, and after a long minute her breathing slows again. Not as deep as before. She's only half under now.
<<gain_sus 1 "Willa's window latch snapped">>
<<set $flags._willaStirred to true>>
<<target "street-willa" "alerted" "Half awake · listening">>
<<include "StreetSweep_Willa_Take">>
<</replace>><</choose_do>>
<span id="willa-in"></span>/% Included by StreetSweep_Willa once you're inside %/
----
Her bedroom. The night-light throws a small warm circle across the floor, and you keep to the edge of it. Willa's breathing is shallow and quick. <<if $flags._willaStirred>>Her eyes move under their lids. One more sound and she's awake.<<else>>Even asleep, her hands are clenched in the blanket.<</if>>
''How do you take her?''
<<choose_do "Musk" "fill the room slowly and let her sink before you touch her" "Musk">><<replace "#willa-take">>
You settle at the foot of the bed and breathe. Slow, warm musk, pooling at mattress height like a bath filling.
Each shallow breath she takes draws a little more of it in. Each one comes a little deeper. Her shoulders drop. Her fists loosen in the blanket. The thin, anxious sleep turns heavy and complete, and a crease you suspect has been there for years smooths out of her brow.
You draw the blanket down. Your tendril slides up the inside of her thigh, and her legs part for you in her sleep, her body answering long before her mind could. She's already slick. When you push inside her she gives a soft sound, more relief than surprise, and her hips tilt to take you deeper.
You take her slowly, deep and steady, and she rocks with you without ever waking, chasing it in her dream.
<<climax "Cum">>She arches as you flood her, a long trembling sigh, her hand drifting to her belly as the warmth spreads under her palm. It swells, just slightly, under her nightdress. She never opens her eyes. Whatever she's dreaming, it's the best she's had in years.
<<gain_xp "musk" 2>>
<<set $flags._willaDone to true>><<claim_bred "street-willa">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Tendril" "slip under the blanket and take her while she sleeps" "Lurk">><<replace "#willa-take">>
<<if $flags._willaStirred>>
<<scene "missions/street/willa-woken.webp">>
Your tendril is halfway up her thigh when her eyes open.
She sees you. All of you, purple and glistening at the foot of her bed in the amber light. She draws breath to scream and you're faster, flooding the air in front of her face with musk. The scream comes out as a gasp. The gasp comes out as a whimper.
<<speech "street-willa">><<say "street-willa" "What— what are you, what are you //doing//—">> Her knees fall open anyway. <<say "street-willa" "Oh. Oh no. Oh, that's—">><</speech>>
She watches the whole thing, wide-eyed, gripping the sheets, her body moving to meet you while her face can't decide between terror and wonder.
<<climax "Cum">>She comes with her eyes squeezed shut and your seed pumping into her, and when she opens them again the fear is gone. One hand on her rounding belly. She stares at it, then at you.
<<speech "street-willa">><<say "street-willa" "...Did I lock the door?">><</speech>>
<<gain_sus 1 "Willa woke and saw you">>
<<gain_xp "lurk" 1>>
<<set $flags._willaDone to true>><<claim_bred "street-willa">>
----
<<ss_next>><</climax>>
<<else>>
You slide under the blanket, slow, weight spread thin. Contact pheromones soak into her skin as your tendril traces up her thigh, and she shifts and parts for you with a murmur.
You're inside her before she knows anything is happening, and by then her body is moving with you on its own. She wakes at the very end, all at once, eyes snapping open on the amber light, and it's far too late to be frightened.
<<climax "Cum">>Her gasp turns into a long, shaking moan as you fill her. She stares down at her belly as it rounds under her hand, and then her head drops back to the pillow and she just breathes.
<<gain_xp "lurk" 1>>
<<set $flags._willaDone to true>><<claim_bred "street-willa">>
----
<<ss_next>><</climax>>
<</if>>
<</replace>><</choose_do>>
<<choose_do "Direct" "wake her and overwhelm her before she can shout" "Strength">><<replace "#willa-take">>
<<scene "missions/street/willa-woken.webp">>
A tendril across her lips. Her eyes snap open.
She sees you and her shout is already rising when a second tendril fills her mouth, warm and thick and sweet. The shout comes out as a muffled hum. It's still loud enough to carry through the wall. She swallows, because she has to, and the pheromone hits her straight through the tongue: her eyes go wide, then soft.
By the third swallow her hands have stopped pushing at you and are just resting there. Your breeding tendril finds her slick and ready, and she takes it with a muffled moan, filled at both ends, hips rolling against her will.
<<climax "Cum">>You come in her at both ends at once. She gulps and shudders and comes around you, sobbing into the tendril, and when you finally draw back from her mouth her first clear breath is pure surrender. Her hand finds her swelling belly.
<<speech "street-willa">><<say "street-willa" "I'm so //full//...">><</speech>>
<<gain_sus 1 "Willa's muffled shout">>
<<gain_xp "strength" 1>>
<<set $flags._willaDone to true>><<claim_bred "street-willa">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<span id="willa-take"></span>/% Flat 2 · Hana: human, sleeps like the dead. Trivial: any approach works. %/
''FLAT 2 · HANA''
<<scene "missions/street/hana-asleep.webp">>
Her front door is open an inch. You don't even have to squeeze.
Inside: chaos. Clothes on the floor, three mugs on the coffee table, a half-eaten noodle box on the arm of the sofa. And from the bedroom, snoring. Loud, unashamed, rattling snoring.
She's face-down across the bed, one arm and one leg hanging off the edge, sheets on the floor.
<<psi_from "evelyn" "...I don't think she'd notice if you brought a marching band.">>
''How do you take her?''
<<choose_do "Musk" "a breath of it, for form's sake" "Musk" "Trivial">><<replace "#hana-scene">>
You breathe a little musk over her, mostly out of habit. Her snoring changes key. Her hips lift off the mattress, all on their own, and stay there.
That's an invitation if ever you saw one. You slide in behind her and she takes you without a flicker of waking, warm and loose and soaking, pushing back against you in her sleep with a grunt that's halfway to a snore.
<<climax "Cum">>She comes into her pillow with a long muffled groan, goes rigid for five seconds, then flops. Her belly warms beneath her. She resumes snoring.
<<psi_from "evelyn" "That one barely counts.">>
<<gain_xp "musk" 1>>
<<set $flags._hanaDone to true>><<claim_bred "street-hana">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Tendril" "she won't feel a thing until she feels everything" "Lurk" "Trivial">><<replace "#hana-scene">>
You ease her sleep shorts down her thighs. She grunts and shifts her weight to help, without waking. Your tendril slides into her and she's completely relaxed, no tension anywhere, her body just taking you.
You set a steady rhythm. Her snoring keeps time with it.
<<climax "Cum">>Her hips start rolling with you on the sixth stroke, a low sound in her throat that isn't a snore, and she comes in her sleep as you fill her. One long groan into the pillow. Then snoring.
<<psi_from "evelyn" "That one barely counts.">>
<<gain_xp "lurk" 1>>
<<set $flags._hanaDone to true>><<claim_bred "street-hana">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Blunt" "no finesse at all. See if she wakes up" "Endowment" "Trivial">><<replace "#hana-scene">>
You don't bother being careful. You climb onto the bed, pull her hips up, and push the full thickness of yourself into her in one go.
She wakes halfway through. Lifts her head off the pillow. Looks back over her shoulder at the glistening purple mass behind her, blinks twice, and frowns.
<<speech "street-hana">><<say "street-hana" "...Are you the thing from the shop?">><</speech>>
You keep going. She thinks about it. Then she puts her face back in the pillow.
<<climax "Cum">><<speech "street-hana">>She comes with a cheerful <<say "street-hana" "ooh, okay then">><</speech>> and is snoring again before your seed has finished warming her belly.
<<psi_from "evelyn" "That one barely counts.">>
<<gain_xp "endowment" 1>>
<<set $flags._hanaDone to true>><<claim_bred "street-hana">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<span id="hana-scene"></span>/% Flat 3 · Rue: Vyx. Asleep: a silent entry and the tail-base grip is the cleanest take of the night (+3). Awake (noise next door): musk first, the nose beats the ears. %/
''FLAT 3 · RUE''
<<if $flags._rueAlert>>
<<scene "missions/street/rue-alerted.webp">>
A lamp is on. Through the gap in the curtain: a Vyx woman sitting bolt upright in bed, copper ears pointed straight at the wall she shares with next door, tail puffed to twice its size behind her. She heard. She's holding her breath and listening.
<<psi_from "evelyn" "She's awake. Those ears will catch you the second you move. Her nose is sharper than her ears, though.">>
<<else>>
<<scene "missions/street/rue-asleep.webp">>
Through the window: a Vyx woman curled on her side, tail wrapped protectively around herself. Her copper ears rotate slowly even in deep sleep, turning toward every sound in the lane. The biological alarm that never switches off.
<<psi_from "evelyn" "Those ears. Get in without a sound and you can end this with one grip at the base of her tail. Make noise and you've got a screaming fox.">>
<</if>>
''How do you get in?''
<<choose_do "Through the window" "unlatched, and her ears are turned away from it" "Lurk">><<replace "#rue-in">>
The window is closed but not latched. You ease it open a centimetre at a time, timing each push to the night bird calling across the lane, and pour yourself over the sill and down the wall.
<<if $flags._rueAlert>>Her ears swivel. She stares at the window, at the curtain stirring. You stay a dark smear on the floor and she decides it was the breeze.<<else>>Her ears stay turned toward the lane. She never stirs.<<set $flags._rueQuiet to true>><</if>>
<<gain_xp "lurk" 1>>
<<include "StreetSweep_Rue_Take">>
<</replace>><</choose_do>>
<<choose_do "The bathroom vent" "silent in, but you cross the whole room" "Lurk">><<replace "#rue-in">>
<<scene "missions/street/entry-vent.webp">>
The same little bathroom grille as every flat on the lane. You pour through it and creep out across her bedroom floor, slower than slow. Halfway across, her ear flicks toward you.
<<if $flags._rueAlert>>She's already awake and listening. She hears //something//, turns, peers into the dark. You freeze. So does she.<<else>>You stop dead. A long moment. The ear turns back to the window. She sleeps on.<<set $flags._rueQuiet to true>><</if>>
<<gain_xp "lurk" 1>>
<<include "StreetSweep_Rue_Take">>
<</replace>><</choose_do>>
<<choose_do "Under the front door" "her ears face the door" "Patience">><<replace "#rue-in">>
<<scene "missions/street/entry-seam.webp">>
You seep under the door seam. Slow. Silent, for anyone else. But slime makes a sound against stone, a faint wet whisper, and her ears are pointed straight at the door.
<<if not $flags._rueAlert>>Her eyes open. She sits up in bed, ears forward, tail puffing. She's awake now.<<set $flags._rueAlert to true>><<target "street-rue" "alerted" "Awake · ears up">><<else>>She goes absolutely still, staring at the bedroom door. She knows something's there.<</if>>
<<include "StreetSweep_Rue_Take">>
<</replace>><</choose_do>>
<<set _charmers to ($currentRun.colony.drones["Charmer"] || 0)>>\
<<if $flags.charmerMet and _charmers gte 1>><<choose_do "Send Honey Jr to knock" "a friendly fox face at the window. Vyx to Vyx" "Charmer ✓">><<replace "#rue-in">>
<<scene "missions/street/rue-honeyjr.webp">>
Honey Jr goes up the garden path with a bounce in her step, wearing her mother's face, her mother's copper hair and a satin cami that has no business being out at 3am. She taps on Rue's window with one knuckle.
<<speech "honey-jr">><<say "honey-jr" "Psst! Hi! So sorry. I'm from flat seven? I'm //so// locked out.">><</speech>>
Rue comes to the window in her sleep slip, ears sideways in confusion, tail low. Another Vyx. A pretty, friendly, embarrassed Vyx. Every instinct she has relaxes at once.
<<speech "street-rue">><<say "street-rue" "...It's three in the morning?">><</speech>>
<<speech "honey-jr">><<say "honey-jr" "I //know//. I'm a disaster. Can I just— oh my gods, your ears are gorgeous.">><</speech>>
Rue lets her in. Of course she does. And the moment the window closes behind them, Honey Jr's hand slides down Rue's back and wraps, gently and expertly, around the base of her tail.
Rue's knees give. Her ears flop flat. She goes down into Honey Jr's arms with a long astonished moan, and Honey Jr lays her back on the bed and holds her there, smiling sweetly, while you come in over the sill.
<<speech "honey-jr">><<say "honey-jr" "She's all yours. I'll just keep hold of this.">><</speech>>
Rue doesn't fight. She can't. She takes you with her ears flat and her eyes wide, her body milking you in strong rhythmic pulls, her tail twitching in Honey Jr's grip.
<<climax "Cum">>She comes with a high, broken yip as you fill her, her belly rounding under the slip, and Honey Jr strokes her hair the whole time.
<<speech "street-rue">><<say "street-rue" "You're not from flat seven.">><</speech>>
<<speech "honey-jr">><<say "honey-jr" "There isn't a flat seven, babe.">><</speech>>
<<gain_xp "influence" 2>>
<<set $flags._rueDone to true>><<claim_bred "street-rue">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>><<else>><<choose_locked "Send a drone to knock" "a Charmer drone" "a friendly Vyx face at her window">><</if>>
<span id="rue-in"></span>/% Included by StreetSweep_Rue once you're inside %/
----
<<if $flags._rueAlert>>She's awake, ears forward, tail bristling, staring into the dark of her own room. You're in it. She just hasn't found you yet.<<else>>She's asleep, curled tight around her tail. The base of it lies exposed where it meets her body, just above the curve of her hip.<</if>>
''How do you take her?''
<<choose_do "Tail-base grip" `$flags._rueQuiet ? "she never heard you. One grip ends this" : "she's listening. You'd have to cross the room first"` "Lurk">><<replace "#rue-take">>
<<if $flags._rueQuiet>>
<<scene "missions/street/rue-tail.webp">>
You reach the bed without a sound. One tendril around the junction of her tail. One firm squeeze.
Her eyes fly open, and what comes out of her isn't a scream. It's a moan, deep and helpless, her whole body going slack at once. Legs falling open. Ears flattening. Tail uncurling from around her and lying limp across the sheet.
<<speech "street-rue">><<say "street-rue" "Oh— okay. //Okay.// I'll be good.">><</speech>>
It does more than stop her fighting. It switches her on. She's soaking, her hips already lifting, and when you slide into her she pushes back against you with a hunger her mind is still catching up to. Her inner muscles grip and pull in strong, rhythmic waves, a Vyx body built to milk a mate dry.
<<climax "Cum">>Her ears snap upright as you erupt inside her, and she cries out, pulling every drop from you while her belly rounds beneath the slip. When it's over her tail curls back around her, protectively, over the swell.
<<speech "street-rue">><<say "street-rue" "...Huh. I didn't even hear you.">><</speech>>
<<gain_xp "lurk" 3>>
<<set $flags._rueDone to true>><<claim_bred "street-rue">>
----
<<ss_next>><</climax>>
<<else>>
You go for it. Across the floor, fast, a tendril reaching for the base of her tail. She hears you on the second metre. Her head whips round, her mouth opens, and the yelp is out before your grip lands.
Then it lands, and the yelp collapses into a moan, and she folds onto the mattress with her ears flat. The override takes her completely. She's wet and pliant and pushing back against you, and her body milks you with a strength that leaves you trembling.
<<climax "Cum">>She cries out as you fill her, belly swelling fast, tail wrapping round the curve of it.
<<gain_sus 1 "Rue yelped">>
<<gain_xp "lurk" 1>>
<<set $flags._rueDone to true>><<claim_bred "street-rue">>
----
<<ss_next>><</climax>>
<</if>>
<</replace>><</choose_do>>
<<choose_do "Musk first" `$flags._rueAlert ? "her nose is sharper than her ears. Get to it first" : "fill the room before you touch her"` "Musk">><<replace "#rue-take">>
<<scene "missions/street/rue-asleep.webp">>
You don't move. You breathe. A thin, sweet thread of musk, drifting across the floor toward her pillow.
<<if $flags._rueAlert>>Her nose finds it before her ears find you. She sniffs, frowns, sniffs again, and her bristling tail starts, very slowly, to come down. Her ears drift sideways. The rigid line of her shoulders melts. She lies back against the pillows without deciding to, legs sliding apart, and stares at the ceiling with a puzzled, flushed expression.
<<speech "street-rue">><<say "street-rue" "Why is it so... warm in here...">><</speech>><<else>>She breathes it in her sleep. Her ears stop rotating. Her tail loosens a centimetre at a time, unwinding from around her like a spring letting go, until it hangs off the edge of the bed and she's lying open, flushed, waiting for something her sleeping mind can't name.<</if>>
When you finally slide between her thighs she gasps, but it's not alarm. Her Vyx body grips you at once, pulling and milking, and she moans in small fox sounds she'd be mortified to hear herself make.
<<climax "Cum">>Her muscles draw in every drop as you fill her. Nothing spills. Her belly rounds, and her tail curls protectively over it, and her ears settle at last into something soft and content.
<<if $flags._rueAlert>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<set $flags._rueDone to true>><<claim_bred "street-rue">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Grab her" "fast and physical, before she can react" "Strength">><<replace "#rue-take">>
<<scene "missions/street/rue-alerted.webp">>
You surge across the room and pin her to the mattress. She's faster than you thought: tail puffing, ears flat, and a scream that goes straight through two walls before your tendril closes over her mouth.
Then the musk reaches her, point-blank, and the thrashing slows. She glares up at you over the tendril, furious and then less furious, her hips beginning to lift against you on their own. You take her hard and fast, her body clamping round you with that relentless Vyx grip, her muffled protests turning to muffled moans.
<<climax "Cum">>She comes as you fill her, eyes rolling, tail lashing then going limp. By the time her belly has rounded she's stopped glaring entirely.
<<gain_sus 2 "Rue screamed">>
<<gain_xp "strength" 1>>
<<set $flags._rueDone to true>><<claim_bred "street-rue">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<span id="rue-take"></span>/% Flat 4 · Brooke: human insomniac, awake. Best: musk the dark room, or come at her from the side her screen has blinded. Direct is loud, and Rue next door hears it. %/
''FLAT 4 · BROOKE''
<<scene "missions/street/brooke-phone.webp">>
She's awake. Lying back on her pillows, phone held over her face, the cold blue light the only light in the flat. Scrolling. The hollow look of someone who can't sleep and stopped trying hours ago.
<<psi_from "evelyn" "Insomniac. Awake, but that screen has wrecked her night vision. She can't see past it.">>
''How do you get in?''
<<choose_do "Under the front door" "she won't hear it over her phone" "Patience">><<replace "#brooke-in">>
<<scene "missions/street/entry-seam.webp">>
You seep under the door and across the hall. The tinny murmur of a video from the bedroom covers every sound you make.
<<include "StreetSweep_Brooke_Take">>
<</replace>><</choose_do>>
<<choose_do "Through the window" "right past her. She's staring at her screen" "Lurk">><<replace "#brooke-in">>
You come in over the sill a metre from her head. She doesn't even glance up. To her eyes, the world ends at the edge of that screen.
<<gain_xp "lurk" 1>>
<<include "StreetSweep_Brooke_Take">>
<</replace>><</choose_do>>
<span id="brooke-in"></span>/% Included by StreetSweep_Brooke once you're inside %/
----
Her bedroom. Black, except for the little blue island of her phone. She thumbs past something, sighs, thumbs past something else.
''How do you take her?''
<<choose_do "Musk the dark room" "she'll blame the insomnia for how she feels" "Musk">><<replace "#brooke-take">>
<<scene "missions/street/brooke-dark.webp">>
You settle on the floor in the dark and breathe. Slow musk, rising around her bright little island of screen light.
She crosses her legs. Uncrosses them. Scrolls slower. After a few minutes she puts the phone face-down on her stomach and stares at the ceiling.
<<speech "street-brooke">><<say "street-brooke" "God. Why am I so //warm//.">><</speech>>
She blames it on the insomnia, on 3am, on years with no men on this colony. Her hand slides down into her shorts to deal with it herself. Your tendril finds her wrist in the dark and moves it gently aside, and takes its place.
She freezes. She can't see a thing. She can only feel.
<<speech "street-brooke">><<say "street-brooke" "There's something— I should scream. I should //definitely// scream.">><</speech>>
She doesn't scream. She's been aching for twenty minutes, and when you slide into her it's like coming home. Her hands grip the sheets. Her hips roll up to meet you, hungry, and she forgets the phone entirely.
<<climax "Cum">>She comes hard and quiet, biting her lip, as you fill her. Her belly warms and swells under her tee. And then, for the first time in what feels like months, Brooke falls asleep.
<<gain_xp "musk" 2>>
<<set $flags._brookeDone to true>><<claim_bred "street-brooke">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Her blind side" "come at her from the side the screen has blinded" "Lurk">><<replace "#brooke-take">>
The phone is in her right hand, angled toward her face. On her left, the world is pitch black to her. You come up that side of the bed, a slow dark tide, and she never turns her head.
Your tendril slides up the inside of her left thigh. She twitches, swipes absently at it like a stray hair, and goes back to scrolling. Then it slides higher and she gasps, the phone sagging in her hand.
<<speech "street-brooke">><<say "street-brooke" "What the—">><</speech>>
By then the contact pheromones are already in her skin. Her question turns into a long, shaky breath. The phone tips over onto the mattress, still glowing, as you push inside her, and she clutches at the sheets and lets you.
<<climax "Cum">>She comes with her face lit blue from below, mouth open, as you fill her. Her hand finds her belly as it rounds. She stares at it in the screen light, and then she's asleep.
<<gain_xp "lurk" 2>>
<<set $flags._brookeDone to true>><<claim_bred "street-brooke">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Direct" "just loom up out of the dark" "Strength">><<replace "#brooke-take">>
You rise up out of the dark at the foot of her bed.
She sees you. Drops the phone. It hits the stone floor with a crack like a gunshot, and the screen goes spidery and dark.
She opens her mouth to scream, but the musk in the room is already in her lungs, and what comes out is a whimper. She doesn't fight you as you climb onto the bed. She doesn't fight you as you push inside. By the third stroke she's holding on to you.
<<climax "Cum">>She comes with a shocked little cry as you fill her, her belly rounding fast under her tee. When it's over she looks at the broken phone on the floor and starts, helplessly, to laugh.
<<gain_sus 1 "Brooke's phone hit the floor">>
<<ss_noise "brooke">>
<<gain_xp "strength" 1>>
<<set $flags._brookeDone to true>><<claim_bred "street-brooke">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<span id="brooke-take"></span>/% Flat 5 · Lirae: Nerethis in a trance. Never noisy. Best: a psychic nudge (Influence +2), or come up out of her own basin (Lurk +2). %/
''FLAT 5 · LIRAE''
<<scene "missions/street/lirae-trance.webp">>
The window is wide open to the night air. Inside, a Nerethis woman lies on her back on the bed, utterly still, her bioluminescent markings pulsing slow teal in the dark like something breathing at the bottom of the sea. Beside the bed, a wide stone basin of water. One of her hands trails toward it in her sleep.
<<psi_from "evelyn" "Nerethis trance. Her mind's wide open like that. She won't wake for anything.">>
''How do you get in?''
<<choose_do "Through the front door" "unlocked. Nerethis don't worry about locks" "Patience">><<replace "#lirae-in">>
The handle turns. Of course it does. You flow in across her cool tiled floor and into the soft teal light.
<<include "StreetSweep_Lirae_Take">>
<</replace>><</choose_do>>
<<choose_do "Through the window" "open for the humid air" "Lurk">><<replace "#lirae-in">>
Over the sill and down the wall in one glossy pour. The night air is heavy and damp in here. She likes it that way.
<<gain_xp "lurk" 1>>
<<include "StreetSweep_Lirae_Take">>
<</replace>><</choose_do>>
<<choose_do "Into her basin" "over the sill and straight into the water by her head" "Lurk" "Premium">><<replace "#lirae-in">>
You come over the sill and slip, without a ripple, into the basin beside her bed. Her water. You spread through it until there's no telling where the water ends and you begin, and lie there in the dark a hand's width from her fingers.
<<set $flags._liraeBasin to true>>
<<gain_xp "lurk" 1>>
<<include "StreetSweep_Lirae_Take">>
<</replace>><</choose_do>>
<span id="lirae-in"></span>/% Included by StreetSweep_Lirae once you're inside %/
----
Her markings pulse slow and steady. Her lips are parted. Somewhere very deep, she's dreaming.
''How do you take her?''
<<choose_do "Into her trance" "her mind's open. Slip a dream into it" "Influence">><<replace "#lirae-take">>
You don't touch her. Not yet. You reach into the stillness behind her eyes, where her mind lies open the way Nerethis minds do in trance, and you put something there. Warmth. A presence. A tide coming in.
Her markings quicken. The slow teal pulse speeds and deepens and slides, light by light, toward violet. Her body shifts on the bed. Her knees draw up and fall open. In her dream, she's already reaching for you.
When you finally slide into her she sighs as if she's been waiting for you all night. The whole thing happens in her dream, slow and tidal, her body rising and falling against you, her markings blazing.
<<climax "Cum">>She comes without waking, a long low note in her throat as you fill her, and her belly rounds beneath her hands as if it had always meant to. Her markings settle into a steady, glowing violet.
<<gain_xp "influence" 2>>
<<set $flags._liraeDone to true>><<claim_bred "street-lirae">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" "she breathes it in, her body does the rest" "Musk">><<replace "#lirae-take">>
You breathe musk into the damp air, and she drinks it in with every slow breath. Her markings shift colour, teal warming to lilac. A soft moan in her sleep. Her legs part.
You take her gently, and her body answers in long slow waves, gills fluttering at her ribs, her skin cool and slick against yours.
<<climax "Cum">>She sighs as you fill her, deep and content, her belly swelling softly, her markings settling into violet. She never opens her eyes.
<<gain_xp "musk" 1>>
<<set $flags._liraeDone to true>><<claim_bred "street-lirae">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>>
<<if $flags._liraeBasin>><<choose_do "Rise out of the basin" "out of the water she trusts, right by her hand" "Lurk">><<replace "#lirae-take">>
<<scene "missions/street/lirae-basin.webp">>
You rise out of the basin in a slow glossy wave and spill over the rim onto the bed beside her, cool and wet. Her own water, the thing she keeps close because it feels safe. Her fingers find you and stroke you in her sleep, and she sighs and turns toward you.
She doesn't startle. She never could. You flow over her like the tide over a rock pool, and she opens for you with a contented murmur, her markings brightening from teal to deep violet as you sink into her.
<<climax "Cum">>She arches into you as you fill her, a soft astonished breath, and her belly rounds under the wet sheet. Then she sinks back into the trance, smiling.
<<gain_xp "lurk" 2>>
<<set $flags._liraeDone to true>><<claim_bred "street-lirae">>
----
<<ss_next>><</climax>>
<</replace>><</choose_do>><<else>><<choose_locked "Rise out of the basin" "the basin entry" "out of the water she trusts">><</if>>
<span id="lirae-take"></span>/% All five claimed: back down the lane, close the op, then the report %/
<<set $flags.streetSweepDone to true>>
<<scene "missions/street/street-night.webp">>
You leave Cypress Lane the way you came, along the foot of the garden walls. Behind you, five dark flats. Five women asleep in them, every one of them carrying.
The sky over the cypress hedges is just starting to grey.
<<psi_from "evelyn" "Five for five. Come home before the milk carts. I've got the coffee on.">>
<<mission_finish>>
<<choose "Debrief" "Mission_Report" "what it cost, what it earned">>/% Dawn in the safehouse kitchen: Evelyn frames the choice. Mission_Report sends you here. %/
<<scene "missions/street/debrief-dawn.webp">>
Dawn. The safehouse kitchen, grey light at the window. <<name "evelyn">> pours two coffees, one of which you can't drink, and slides her datapad across the counter. Five ID photos in a grid.
<<speech "evelyn">><<say "evelyn" "Five in one night. You've got a rhythm now.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Same choice as last time, for each of them. Leave her in her flat and she's a thrall. Bring her home before the lane wakes up and she's a seedbed.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Willa rings her mum at eight every morning. Lirae's archive will notice an empty desk. Hana's shop rings round when she's late.">> She taps the last two photos. <<say "evelyn" "Rue's a freelancer. Nobody checks on her for days. And Brooke works from bed and talks to nobody.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Your call.">><</speech>>
<<choose "Decide" "Mission_Resolve" "thrall or seedbed, one each">>/% After Mission_Resolve: the seedbeds walked home before the lane wakes. Reads $lastResolve. %/
<<set _lr to $lastResolve or { seedbeds: [], thralls: [] }>>
<<set _sb to _lr.seedbeds>>
<<if _sb.length is 0>>
<<speech "evelyn">><<say "evelyn" "All five stay put? Tidy. Five more pairs of eyes on the lane.">><</speech>>
<<else>>
<<speech "evelyn">><<say "evelyn" "Go on, then. Quick, before the milk carts.">><</speech>>
Back down Cypress Lane in the grey half-light, one front door at a time.
<</if>>
<<if _sb.includes("street-willa")>>
----
<<scene "missions/street/willa-seedbed.webp">>
Willa opens her door before you reach it. Coat over her nightdress, keys in her hand, looking at you with enormous trusting eyes. She locks the door behind her twice, out of habit. Then she drops the keys in the hedge and follows you home, and in the pod she's asleep before the membrane closes, her face smoother than you've ever seen it.
<</if>>
<<if _sb.includes("street-hana")>>
----
<<scene "missions/street/hana-seedbed.webp">>
Hana takes some waking. When she's finally upright she follows you down the lane in her sleep shorts, yawning, and doesn't ask a single question. <<speech "street-hana">>She climbs into her pod. <<say "street-hana" "Oh, comfy.">><</speech>>
She's snoring before the membrane seals.
<</if>>
<<if _sb.includes("street-rue")>>
----
<<scene "missions/street/rue-seedbed.webp">>
Rue hears you coming from three doors away. She's waiting on her step, tail wrapped round her belly, ears soft. She keeps close to you all the way home and settles into her pod with her tail curled over the swell, and the last thing to go still is the tip of one ear.
<</if>>
<<if _sb.includes("street-brooke")>>
----
<<scene "missions/street/brooke-seedbed.webp">>
Brooke is still asleep when you reach her. Properly asleep, for once. She half wakes as you lead her down the lane, leaves her cracked phone on the bed without a backward glance, and drops off again in the pod almost at once.
<</if>>
<<if _sb.includes("street-lirae")>>
----
<<scene "missions/street/lirae-seedbed.webp">>
Lirae walks home in a trance, markings glowing violet in the dawn. She sinks into the pod's warm wet cradle as if it were her basin, and her light dims to a slow, contented pulse.
<</if>>
<<if _lr.thralls.length gt 0>>
<<set _tn to _lr.thralls.map(function (id) { return (setup.characters[id] || { name: id }).name; })>>
----
//<<= _tn.length is 1 ? _tn[0] : _tn.slice(0, -1).join(", ") + " and " + _tn[_tn.length - 1]>> <<= _tn.length is 1 ? "stays" : "stay">> behind on Cypress Lane. In a few hours <<= _tn.length is 1 ? "she'll" : "they'll">> wake with a round belly and a head full of you, and go about the day as if nothing happened.//
<</if>>
----
<<choose "Sleep" "DayEnd_Transition" `"end day " + $gamestate.day`>>/% <<cl_next>> way on after a room: the corridor, the end, or out before security arrives %/
<<widget "cl_next">><<if $flags._called>><<mission_tick>><</if>><<set _left to setup.clinicLeft().length>><<if _left is 0>><<choose "Flip the sign to Closed" "Clinic_Complete" "every woman in the building is yours">><<elseif $flags._called and setup.alarmLeft() lte 0>><<choose "Get out. Now." "Clinic_Flee" "security is at the door">><<else>><<choose "Back into the corridor" "Clinic_Corridor" `_left + (_left is 1 ? " left" : " left in the building") + ($flags._called ? " · " + setup.alarmLeft() + " moves before security" : "")`>><</if>><</widget>>
/% <<cl_alert n>> the building heard something %/
<<widget "cl_alert">><<set $flags._alert to ($flags._alert || 0) + _args[0]>><<if $flags._alert gte 2 and not $flags._linaDone and not $flags._called>><<target "clinic-lina" "alerted" "Uneasy · hand by the phone">><</if>><</widget>>
/% <<cl_called>> Lina got through to security: +4 and the clock starts %/
<<widget "cl_called">><<if not $flags._called>><<set $flags._called to true>><<gain_sus 4 "Lina called security">><<mission_alarm 3 "Security en route">><</if>><</widget>>
/% <<cl_coral_called>> Coral reached her own communicator: Meridia's office knows %/
<<widget "cl_coral_called">><<gain_sus 3 "Coral called Meridia's office">><<set $flags.meridiaWatchful to true>><</widget>>/% Medium mission, 8 targets, Coral is the first side character. %/
<<set $flags._linaDone to false>><<set $flags._islaDone to false>><<set $flags._mareaDone to false>><<set $flags._ebbDone to false>>
<<set $flags._caspiaDone to false>><<set $flags._phoebeDone to false>><<set $flags._valDone to false>><<set $flags._coralDone to false>>
<<set $flags._hvac to false>><<set $flags._ebbDrain to false>><<set $flags._alert to 0>><<set $flags._called to false>><<set $flags._lockdown to false>>
<<set $flags._islaWithCoral to false>><<set $flags._mareaInExam2 to false>><<set $flags._intercomSeen to false>><<set $flags._pageSeen to false>><<set $flags._corridorSeen to false>>
<center>''HOUSE CALL · SUBURBAN CLINIC''</center>
//4:30pm. Day $gamestate.day.//
<<scene "missions/clinic/clinic-dusk.webp">>
----
<<psi_from "evelyn" "$names.player. Coral's clinic. Blue building, reef garden out front. She scanned me the day we landed.">>
A single-storey practice in pale marble, late sun slanting across the reef garden. Through the front windows: an empty reception desk lamp, a waiting room with one bored patient in it. The sign on the door says it closes at five.
<<psi_from "evelyn" "Eight inside. Lina on the front desk. She controls the communicator, so she's your alarm. Isla in the waiting room. Three Nerethis nurses: Caspia, Marea, Ebb. Two more patients in the exam rooms. And Coral.">>
<<psi_from "evelyn" "Coral runs this place for Meridia. Take her and we get the colony's health records, and someone who decides what goes in them. But she's a doctor. She'll know exactly what your musk is doing to her.">>
<<psi_from "evelyn" "Sophie's off shift tonight, before you ask. I checked. And the ventilation is medical-grade: sealed, recirculated, one system for every room. Made for you.">>
----
''How do you get in?''
<<choose "Through the roof vents" "Clinic_Entry_Vents" "dose the whole building before you set foot in it" "Musk">>
<<choose "Through the supply door" "Clinic_Entry_Supply" "the delivery entrance at the side, never locked before five" "Lurk">>
<<choose "Up through the plumbing" "Clinic_Entry_Drain" "every room has a sink. Come up wherever you like" "Lurk">>
<<set _dt to setup.droneTotal()>>\
<<if _dt gte 3>><<choose "Lockdown" "Clinic_Lockdown" "the drones take the building, you take Coral" "3+ drones ✓">><<else>><<choose_locked "Lockdown" `"3+ drones (you have " + _dt + ")"` "the drones take the building, you take Coral">><</if>><<scene "missions/clinic/entry-hvac.webp">>
Up the back wall, across the hot flat roof, into the boxy housing of the ventilation unit. The clinic's air is sealed and filtered on the way //in//. You're not coming in through the filters. You're coming in behind them.
You settle into the duct and breathe. Slow, steady, sweet. The system does the rest, carrying it room to room, grille to grille, until every person in the building is breathing you.
Five minutes. Then you drop down through the duct into the supply room.
<<psi_from "evelyn" "Sealed and recirculated. Every single one of them is breathing it now.">>
<<set $flags._hvac to true>>
<<gain_xp "musk" 2>>
<<choose "Into the corridor" "Clinic_Corridor" "the whole building is warming up">><<scene "missions/clinic/entry-supply.webp">>
The delivery door at the side is propped on its latch for the afternoon drop. You pour through the gap and across the clean floor of the supply room, between the shelves of gowns and swabs.
No musk in the air. Nobody suspects a thing. You'll be doing this one room at a time.
<<gain_xp "lurk" 1>>
<<psi_from "evelyn" "Quiet in. Good. Lina first, if you can. She's the one who can call for help.">>
<<choose "Into the corridor" "Clinic_Corridor" "doors on both sides">><<scene "missions/clinic/entry-drain.webp">>
Down the storm drain in the reef garden, along the clinic's pipes, past the sterilisers, and up. You choose the sink in exam room 3 and well up out of the plughole in slow glossy coils.
Right in front of you, back turned, a young Nerethis nurse is on tiptoe at the supply shelves.
<<gain_xp "lurk" 1>>
<<set $flags._ebbDrain to true>>
<<choose "Ebb" "Clinic_Ebb" "she has no idea you're behind her">>/% The hub. Events fire here, once each: the alarm, the intercom, the page. %/
<<set _event to "">>\
<<if not $flags._linaDone and not $flags._called and $flags._alert gte 3>><<set _event to "Clinic_Alarm">>\
<<elseif not $flags._intercomSeen and setup.clinicTaken() gte 2 and not $flags._islaDone and not $flags._islaWithCoral and not $flags._coralDone and not $flags._called>><<set _event to "Clinic_Intercom">>\
<<elseif not $flags._pageSeen and setup.clinicTaken() gte 3 and not $flags._mareaDone and not $flags._caspiaDone and not $flags._called>><<set _event to "Clinic_Page">><</if>>\
<<if _event>><<goto _event>><<else>>
<<scene "missions/clinic/corridor.webp">>
<<if $flags._called and setup.alarmLeft() lte 0>>
Through the front windows, blue lights. Boots on the reef-garden path.
<<psi_from "evelyn" "Out. Now. Whoever's left, leave them.">>
<<choose "Get out" "Clinic_Flee" "down the drains, before they're through the door">>
<<else>>
<<if not $flags._corridorSeen>><<set $flags._corridorSeen to true>>\
The corridor runs the length of the building. Reception and the waiting room at the front. Four exam rooms down the sides. The break room and the supply room at the back. You flatten yourself along the top of the wall, in the shadow above the lights.
<<else>>\
Back in the corridor, flat along the top of the wall. <<if $flags._called>>Somewhere out front, the communicator is still crackling.<<elseif $flags._alert gte 2>>The building feels like it's holding its breath.<<elseif $flags._hvac>>The air is thick and sweet. Someone in one of the rooms laughs for no reason.<<else>>Quiet. Somebody's typing at the front.<</if>>
<</if>>
<<if $flags._called>><<psi_from "evelyn" "Security's on its way. Take who you can and get out before they're here.">><</if>>
<<if not $flags._linaDone>>''Front desk:'' <<if $flags._alert gte 2>>Lina keeps looking up toward the corridor, one hand resting by the communicator.<<elseif $flags._hvac>>Lina is fanning herself with a sheet of paper.<<else>>Lina is typing up the day's notes.<</if>><</if>>
<<if not $flags._islaDone and not $flags._islaWithCoral>>''Waiting room:'' Isla, alone, phone in hand, <<= $flags._hvac ? "head drooping" : "sighing at the clock">>.<</if>>
<<if not $flags._mareaDone and not $flags._mareaInExam2>>''Break room:'' Marea, feet up, on her break.<</if>>
<<if not $flags._caspiaDone>>''Exam 2:'' Caspia's voice, brisk, and a patient answering nervously<<if $flags._mareaInExam2>>. Marea's in there too now<</if>>.<</if>>
<<if not $flags._ebbDone>>''Exam 3:'' boxes being shelved. Ebb.<</if>>
<<if not $flags._valDone>>''Exam 4:'' silence. Val, waiting.<</if>>
<<if not $flags._coralDone>>''Exam 1:'' Coral's door, shut. <<if setup.coralAlerted()>>Behind it, someone is moving quickly.<<elseif $flags._islaWithCoral>>Two voices behind it: Coral and Isla.<<else>>The soft tap of a stylus.<</if>><</if>>
<<if not $flags._linaDone and not $flags._called>><<instinct "The woman at the desk. Her hand keeps going back to that box. Take her before she uses it.">><</if>>
<<if not $flags._linaDone>><<choose "The front desk" "Clinic_Lina" "Lina, and the communicator">><</if>>
<<if not $flags._islaDone and not $flags._islaWithCoral>><<choose "The waiting room" "Clinic_Isla" "Isla, bored, in full view of the front desk">><</if>>
<<if not $flags._mareaDone and not $flags._mareaInExam2>><<choose "The break room" "Clinic_Marea" "Marea, off duty, guard down">><</if>>
<<if not $flags._caspiaDone>><<choose "Exam room 2" "Clinic_Exam2" `$flags._mareaInExam2 ? "Caspia, Marea and their patient Phoebe" : "Caspia and her patient Phoebe"`>><</if>>
<<if not $flags._ebbDone>><<choose "Exam room 3" "Clinic_Ebb" "Ebb, restocking, back to the door">><</if>>
<<if not $flags._valDone>><<choose "Exam room 4" "Clinic_Val" "Val, the Gemlith, alone with her cracked crystals">><</if>>
<<if not $flags._coralDone>><<choose "Exam room 1" "Clinic_Coral" `setup.coralAlerted() ? "Coral. She knows something's wrong" : $flags._islaWithCoral ? "Coral, and Isla on her couch" : "Coral"`>><</if>>
<</if>>
<</if>>/% Lina, the alarm. Best: come up behind her desk from the corridor (Lurk +2), or musk if the vents are dosed (+2). Straight across the floor and she reaches the button. %/
''THE FRONT DESK · LINA''
<<scene "missions/clinic/lina-desk.webp">>
Lina sits with her back to the corridor, typing up the day's notes. The communicator sits by her right hand: one button, straight through to the security line.
<<if $flags._hvac>>She's been breathing dosed air for a while now. Her typing keeps stopping. She fans her face with a sheet of paper.
<<speech "clinic-lina">><<say "clinic-lina" "Is the heating stuck again...">><</speech>><<elseif $flags._alert gte 2>>She keeps glancing over her shoulder, toward the rooms. Her hand rests beside the communicator.<</if>>
''How do you take her?''
<<choose_do "From behind the desk" "up the corridor wall, down behind her chair" "Lurk">><<replace "#lina-scene">>
You come down the wall behind her chair, slow as dripping honey. Your first tendril wraps her right wrist and pins it to the desk, a hand's width from the button.
Her other hand jerks. Her mouth opens. A second tendril brushes her lips, warm and sweet with musk, and the shout she was drawing in comes back out of her as a sigh.
<<speech "clinic-lina">><<say "clinic-lina" "I— I need to—">> She stares at the communicator. Her fingers uncurl. <<say "clinic-lina" "...What did I need to do?">><</speech>>
You turn her chair round. She lets you. Her skirt rides up as you lift her onto the edge of her own desk, and she's wet before you touch her, gasping at the ceiling as you push inside, the appointment book sliding to the floor.
<<climax "Cum">>She comes with her hand clamped over her own mouth, shaking, as you fill her. Her belly rounds under her blouse. When you set her back in her chair she straightens her collar and goes back to staring at her screen, dazed and smiling.
<<gain_xp "lurk" 2>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" `$flags._hvac ? "she's been breathing it for ten minutes. Finish the job" : "breathe it at her across the room"` "Musk">><<replace "#lina-scene">>
<<if $flags._hvac>>
You don't even need to hide. You come round the desk in plain sight, and she watches you with heavy, unfocused eyes and doesn't reach for anything.
<<speech "clinic-lina">><<say "clinic-lina" "Oh. You're... that's not...">><</speech>>
A breath of musk, point-blank. She slumps forward onto her arms with a long, helpless sigh. You take her bent over her own desk, slow and deep, her cheek on her keyboard typing nonsense into the day's notes.
<<climax "Cum">>She whimpers as you fill her, hips pushing back, and stays there afterwards with her eyes closed and her belly rounding, humming to herself.
<<gain_xp "musk" 2>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<<else>>
You breathe it across the room toward her. She catches the sweetness, frowns, sniffs, and turns.
She sees you. Her hand goes for the button. You get there first, just, a tendril snapping round her wrist, and the yelp she lets out carries down the corridor. Then the musk hits her properly and the fight drains out of her.
You take her against the desk, quick and urgent, her free hand clutching the edge, her moans muffled in her own shoulder.
<<climax "Cum">>She comes as you fill her, sagging into your hold, her belly warm and rising under her blouse.
<<gain_sus 1 "Lina yelped at the front desk">>
<<cl_alert 1>>
<<gain_xp "musk" 1>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<</if>>
<</replace>><</choose_do>>
<<choose_do "Straight across the floor" "fast, in the open, across the waiting area" "Strength">><<replace "#lina-scene">>
<<if $flags._hvac>>
You surge across the waiting area. She sees you coming, but the musk has slowed her to a crawl: her hand is still drifting toward the button when you pin it. She manages one startled shout.
<<gain_sus 1 "Lina shouted at the front desk">>
<<cl_alert 1>>
<<else>>
<<scene "missions/clinic/lina-alarm.webp">>
You surge across the waiting area. She sees you coming. Her hand slams down on the button before you're halfway there, and a calm voice crackles out of the speaker: //Security non-emergency line, how can I help?//
You're on her a second later. Too late.
<<cl_called>>
<</if>>
You pin her over the desk and flood her with musk, and her struggling turns to trembling. You take her hard and fast while the communicator <<= $flags._called ? "repeats its question to an empty room" : "sits silent beside her hand">>.
<<climax "Cum">>She cries out as you fill her, her belly swelling against the edge of the desk.
<<gain_xp "strength" 1>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<span id="lina-scene"></span>/% Event: the building got loud with Lina still free. She's going for the button. %/
<<scene "missions/clinic/lina-alarm.webp">>
A chair scrapes at the front of the building.
<<speech "clinic-lina">><<say "clinic-lina" "Hello? Caspia? Is everyone okay back there?">><</speech>>
Nobody answers her. You watch from the corridor ceiling as she stands, staring down the hall, her hand moving to hover over the communicator.
<<psi_from "evelyn" "She's going to press it. Stop her.">>
<<choose_do "Under the desk, for her wrist" "along the floor, under the desk, from below" "Lurk">><<replace "#alarm-scene">>
You drop from the ceiling behind the desk and flow under it. Her finger is a centimetre from the button when your tendril wraps her wrist from below and pulls it gently, firmly down into her lap.
She stares down at the purple coil round her arm. Then up. Then a second tendril is at her lips, sweet and warm, and her alarm melts into a slow, confused sigh. She sits back down, because her legs won't hold her, and you take her right there in her chair behind the desk.
<<climax "Cum">>She comes with her head thrown back, gasping, as you fill her, and her belly rounds in her lap.
<<gain_xp "lurk" 2>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Flood the front with musk" "a heavy cloud, down the corridor at her" "Musk">><<replace "#alarm-scene">>
<<if $flags._hvac>>
You breathe out hard down the corridor. The air out front was already thick with you. This is the last push. Her hand stops above the button and just hovers there, trembling, while her eyes go soft and unfocused.
<<speech "clinic-lina">><<say "clinic-lina" "I was going to... call someone...">><</speech>>
She sits back down. Slowly. You come to her, and she spreads her knees for you without being asked.
<<climax "Cum">>She comes with a soft, baffled moan as you fill her, and forgets about the communicator entirely.
<<gain_xp "musk" 2>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<<else>>
You breathe out hard down the corridor. She coughs at the sudden sweetness, and presses the button anyway.
//Security non-emergency line, how can I help?//
By the time the musk drops her back into her chair she's forgotten what she wanted to say. It doesn't matter. The call's logged.
<<cl_called>>
You take her in her chair, the speaker repeating its question, her moans rising over it.
<<climax "Cum">>She comes as you fill her, her belly rounding, the communicator still crackling.
<<gain_xp "musk" 1>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<</if>>
<</replace>><</choose_do>>
<<choose_do "Rush the desk" "the whole length of the corridor, fast" "Strength">><<replace "#alarm-scene">>
You hurl yourself down the corridor. She sees you, screams, and slams the button.
//Security non-emergency line—//
<<cl_called>>
You're on her a heartbeat later, pinning her over the desk, musk in her face. She fights, then trembles, then pushes back against you.
<<climax "Cum">>She comes as you fill her, sobbing with it, her belly swelling against the desk.
<<gain_xp "strength" 1>>
<<set $flags._linaDone to true>><<claim_bred "clinic-lina">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<span id="alarm-scene"></span>/% Isla: trivial. But the waiting room is in full view of the front desk. %/
''THE WAITING ROOM · ISLA''
<<scene "missions/clinic/isla-waiting.webp">>
Isla slumps in a padded chair, alone in the waiting room, scrolling her phone with her thumb. Twenty minutes past her appointment and bored out of her mind. <<if $flags._hvac>>The vents have been breathing on her longest of anyone. Her eyelids keep drooping. Her phone keeps slipping.<</if>>
<<if not $flags._linaDone>>The front desk is right there, six metres away. Lina could look up any second.<</if>>
''How do you take her?''
<<choose_do "Under the seats" "along the floor, behind the row of chairs" "Lurk" "Trivial">><<replace "#isla-scene">>
You slide along the floor under the row of chairs and come up behind hers. A tendril round her waist. She looks down at it, then at her phone, as if it might explain.
<<speech "clinic-isla">><<say "clinic-isla" "...Is this part of the appointment?">><</speech>>
You draw her down onto the floor between the seats, out of sight<<if not $flags._linaDone>> of the desk<</if>>. She doesn't object. She's wet the moment you touch her and she takes you with a lazy, pleased sound, like the best thing to happen to her all week.
<<climax "Cum">>She comes with a soft gasp as you fill her, and lies there on the waiting-room carpet with her belly rounding, grinning at the ceiling.
<<gain_xp "lurk" 1>>
<<set $flags._islaDone to true>><<claim_bred "clinic-isla">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" "a breath over the back of her chair" "Musk" "Trivial">><<replace "#isla-scene">>
You breathe over the back of her chair. Her phone slides out of her fingers onto the carpet and she doesn't pick it up. She melts down in her seat, knees parting, head tipping back against the wall.
You take her right there in the chair. She hooks one leg over the armrest to make room for you and sighs through the whole thing, eyes half closed.
<<climax "Cum">>She comes with a long, lazy moan as you fill her, then curls up in the chair, one hand on her rounding belly, perfectly content.
<<gain_xp "musk" 1>>
<<set $flags._islaDone to true>><<claim_bred "clinic-isla">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Direct" "she's bored. Give her something to look at" "Strength" "Trivial">><<replace "#isla-scene">>
You rise up in front of her, glistening and purple, in the middle of the waiting room.
She lowers her phone. Looks at you for a long moment.
<<speech "clinic-isla">><<say "clinic-isla" "Oh, //finally//. Something interesting.">><</speech>>
She's yours before you've touched her. You take her in her seat, her laugh turning into a moan<<if not $flags._linaDone>>, loud enough that at the front desk, a chair creaks<</if>>.
<<climax "Cum">>She comes with a delighted shriek as you fill her, and her belly rounds under her cropped top.
<<if not $flags._linaDone>><<gain_sus 1 "Isla shrieked in the waiting room">><<cl_alert 2>><</if>>
<<gain_xp "strength" 1>>
<<set $flags._islaDone to true>><<claim_bred "clinic-isla">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<span id="isla-scene"></span>/% Event: Coral calls her last patient through %/
<<set $flags._intercomSeen to true>>
<<scene "missions/clinic/corridor.webp">>
The intercom clicks. Coral's voice, warm and unhurried, from every speaker in the building.
<<speech "clinic-coral">><<say "clinic-coral" "Lina? Send Isla through to me, would you? Thank you.">><</speech>>
<<if not $flags._linaDone>>
At the front, a chair scrapes back. Lina comes round the desk with a polite smile, and Isla follows her, yawning, down the corridor toward exam room 1. They walk right underneath you.
<<choose_do "Take them both" "drop on them in the corridor, one tendril each" "Lurk" "Premium">><<replace "#intercom-scene">>
You drop from the ceiling. One tendril round each waist, one breath of musk between them, and the two of them sway together in the middle of the corridor, blinking.
<<speech "clinic-lina">><<say "clinic-lina" "I was taking you to— where was I taking you?">><</speech>>
<<speech "clinic-isla">><<say "clinic-isla" "No idea. Don't care.">><</speech>>
You lay them down side by side on the corridor floor, between Coral's door and the supply room, and take them in turn and then together, their gasps tangling, Isla laughing breathlessly, Lina clutching at her sleeve.
<<climax "Cum">>They come one after the other as you fill them, and lie there in the corridor with their bellies rounding, holding hands. Coral's door stays shut. She's waiting for a patient who isn't coming.
<<gain_xp "lurk" 2>>
<<set $flags._linaDone to true>><<set $flags._islaDone to true>><<claim_bred "clinic-lina">><<claim_bred "clinic-isla">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Let them pass" "Isla goes in to Coral. Lina comes back alone" "Patience">><<replace "#intercom-scene">>
You stay flat against the ceiling. Lina knocks, opens Coral's door, sends Isla in, and walks back to her desk alone.
Isla's in exam room 1 now, with Coral.
<<set $flags._islaWithCoral to true>>
<<target "clinic-isla" "unaware" "Exam 1 · with Coral">>
<<choose "Back into the corridor" "Clinic_Corridor">>
<</replace>><</choose_do>>
<<else>>
Nobody answers her. The front desk is empty, and Lina is in no state to come to the intercom.
A pause. Then, from the waiting room, Isla sighs, stands, and wanders down the corridor on her own, looking for exam room 1.
<<choose_do "Take her in the corridor" "she's walking right under you" "Lurk">><<replace "#intercom-scene">>
You drop on her from the ceiling, a tendril round her waist. She looks up at you, unimpressed, and then very impressed.
<<speech "clinic-isla">><<say "clinic-isla" "Okay. //This// is worth the wait.">><</speech>>
You take her against the corridor wall, her phone clattering to the floor, her leg hooked round you.
<<climax "Cum">>She comes with a breathless laugh as you fill her, and slides down the wall to sit with her belly rounding, very pleased with herself.
<<gain_xp "lurk" 2>>
<<set $flags._islaDone to true>><<claim_bred "clinic-isla">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Let her go in" "but Coral will notice Lina didn't answer" "Patience">><<replace "#intercom-scene">>
Isla knocks and goes in. Through the door, Coral's voice: //Lina didn't bring you? How odd.// A pause, a little too long.
<<set $flags._islaWithCoral to true>>
<<target "clinic-isla" "unaware" "Exam 1 · with Coral">>
<<cl_alert 1>>
<<choose "Back into the corridor" "Clinic_Corridor">>
<</replace>><</choose_do>>
<</if>>
<span id="intercom-scene"></span>/% Event: Caspia pages Marea to exam 2 %/
<<set $flags._pageSeen to true>>
<<scene "missions/clinic/corridor.webp">>
The intercom again. Caspia this time, brisk.
<<speech "clinic-caspia">><<say "clinic-caspia" "Marea, when you've finished your tea, could you give me a hand in two?">><</speech>>
The break room door opens. Marea comes out, brushing crumbs off her dress, and heads down the corridor toward exam room 2.
<<choose_do "Catch her in the corridor" "a nudge in her head, and she'll wander back to the break room" "Influence">><<replace "#page-scene">>
You reach into her mind as she passes under you, the way you'd lay a hand on a shoulder. //You left something in the break room. Go back. Sit down.//
She stops. Frowns. Turns round and walks back to the break room, and sits down in her armchair with a puzzled smile. When you come in through the door she just looks up at you, kind and curious, and holds out her hands.
<<climax "Cum">>She takes you slowly, her markings glowing violet, and comes with a soft surprised laugh as you fill her, her belly rounding under her apron.
<<gain_xp "influence" 2>>
<<set $flags._mareaDone to true>><<claim_bred "clinic-marea">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Let her go" "now there are three of them in exam room 2" "Patience">><<replace "#page-scene">>
Marea knocks and slips into exam room 2. Three of them in there now: two nurses and a patient on the table.
<<set $flags._mareaInExam2 to true>>
<<target "clinic-marea" "unaware" "Exam 2 · helping Caspia">>
<<choose "Back into the corridor" "Clinic_Corridor">>
<</replace>><</choose_do>>
<span id="page-scene"></span>/% Marea: relaxed Nerethis on her break. Best: a psychic nudge (Influence +2). %/
''THE BREAK ROOM · MAREA''
<<scene "missions/clinic/marea-break.webp">>
The break room is small and warm. Marea is curled in the armchair with her feet up on the table, a half-eaten pastry in one hand and a show playing on her device in the other. Not a nurse right now. Just a woman on her break, guard all the way down.
<<if $flags._hvac>>The little room has concentrated the air. She's dozing off mid-pastry, chin drooping.<</if>>
''How do you take her?''
<<choose_do "A nudge in her head" "she's relaxed, mind open. Tell her to stay that way" "Influence">><<replace "#marea-scene">>
You don't touch her. You reach in. Her Nerethis mind is loose and drifting, and you lay something warm in it: //this is nice. Stay relaxed. Don't open your eyes.//
She smiles. She closes her eyes. She sets her pastry down without looking.
Your tendril finds her ankle, then her knee, then the inside of her thigh, and she hums and lets her knees fall apart. She takes you in the armchair, slow and gentle, her markings brightening from teal to violet with every stroke, a small happy frown on her face like someone in a good dream.
<<climax "Cum">>She comes with a soft, wondering sigh as you fill her. Her hand drifts to her belly as it rounds, and stays there, stroking it, as if she's soothing a patient.
<<gain_xp "influence" 2>>
<<set $flags._mareaDone to true>><<claim_bred "clinic-marea">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Through the door" "she's facing her show, away from it" "Lurk">><<replace "#marea-scene">>
The door opens without a sound. You cross the little room behind her chair and slide a tendril round her shoulders. She startles, then the contact pheromones reach her skin and she settles back into the chair with a long breath.
<<speech "clinic-marea">><<say "clinic-marea" "Oh. Oh, that's... nice. Is that you, Ebb?">><</speech>>
It isn't. She works that out halfway through, and doesn't mind.
<<climax "Cum">>She comes as you fill her, gripping the arms of the chair, and her belly rounds under her apron.
<<gain_xp "lurk" 1>>
<<set $flags._mareaDone to true>><<claim_bred "clinic-marea">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" "fill the little room" "Musk">><<replace "#marea-scene">>
You breathe musk into the little room until it's heavy with it. Her show plays on unwatched. She stretches, sighs, and slides lower in the chair, legs parting, cheeks flushed.
You take her in the armchair. She murmurs nonsense the whole way through, sweet and drowsy.
<<climax "Cum">>She comes with a soft cry as you fill her, and falls asleep with her hand on her rounding belly.
<<gain_xp "musk" 1>>
<<set $flags._mareaDone to true>><<claim_bred "clinic-marea">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<span id="marea-scene"></span>/% Ebb: young, eager, back turned. Best: from behind (Lurk +2). %/
''EXAM ROOM 3 · EBB''
<<scene "missions/clinic/ebb-restock.webp">>
<<if $flags._ebbDrain>>Ebb has no idea you've just come up out of her sink. She's on tiptoe at the supply shelves, back to you, reaching for the top row, humming to herself.<<else>>Ebb is on tiptoe at the supply shelves, back to the door, reaching up to the top row with a box of gloves. Newly qualified, eager, and paying attention to nothing but getting her restocking perfect before Coral sees it.<</if>>
<<if $flags._hvac>>She keeps stopping to blink. She sways, steadies herself on the shelf, and frowns at her own hand.<</if>>
''How do you take her?''
<<choose_do "From behind" "she's stretched up on tiptoe. Easy" "Lurk">><<replace "#ebb-scene">>
She's stretched up, arms over her head, dress riding high. One tendril round her waist and one up the inside of her thigh, and she freezes there on tiptoe with the box of gloves still in her hands.
<<speech "clinic-ebb">><<say "clinic-ebb" "Um! Sorry, I'll be— I'm nearly done, Doctor—">><</speech>>
Her markings flare before she's even turned round. Young, flustered Nerethis: she was halfway there just from the surprise. You press her against the shelves and she drops the box and holds on to the top shelf instead, gasping, as you slide inside her.
<<climax "Cum">>She comes almost at once, shaking against the shelves, and again as you fill her. Her belly rounds against the cool metal. She slides down to sit on the floor among the spilled gloves, beaming.
<<speech "clinic-ebb">><<say "clinic-ebb" "Did I do okay?">><</speech>>
<<gain_xp "lurk" 2>>
<<set $flags._ebbDone to true>><<claim_bred "clinic-ebb">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Musk" "let her get sleepy" "Musk">><<replace "#ebb-scene">>
You breathe. She yawns. Puts the box down. Sits on the edge of the exam table, //just for a second//.
<<speech "clinic-ebb">><<say "clinic-ebb" "Why am I so tired...">><</speech>>
She doesn't get up again. When you come to her she's lying back on the table, flushed and sleepy, and she opens her legs for you without quite knowing why.
<<climax "Cum">>She comes with a startled little cry as you fill her, her markings flashing violet, and her belly rounds on the paper sheet of the exam table.
<<gain_xp "musk" 1>>
<<set $flags._ebbDone to true>><<claim_bred "clinic-ebb">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<span id="ebb-scene"></span>/% Spotlight: Caspia and Phoebe (and Marea, if she was paged). Best: Caspia first by Influence (+2), or all at once (Lurk +3). Phoebe first, undosed, and Caspia shouts. %/
''EXAM ROOM 2 · CASPIA AND PHOEBE''
<<scene "missions/clinic/caspia-phoebe.webp">>
Phoebe sits on the edge of the exam table in a thin paper gown, knees together, hands in her lap, the nervous stillness of someone who hates doctors. Caspia stands beside her with a glowing scanner on her wrist, reading off numbers in a brisk, kind voice.
<<if $flags._mareaInExam2>>Marea stands at the counter, drying her hands, smiling at Phoebe to put her at ease.<</if>>
<<speech "clinic-caspia">><<say "clinic-caspia" "Heart rate's up a little. That's just nerves. Deep breath for me.">><</speech>>
<<if $flags._hvac>>Caspia keeps pausing between readings. Her own markings are drifting toward violet, and she hasn't noticed.<</if>>
''How do you take them?''
<<choose_do "Caspia first, in her head" "she's focused on her patient. Tell her everything's fine" "Influence">><<replace "#exam2-scene">>
You reach for the head nurse's mind while it's busy with numbers. //Your patient is doing well. Everything is fine. You can relax now.//
Caspia's shoulders drop. She smiles. Sets the scanner down. <<if $flags._mareaInExam2>>Marea turns from the counter, and you lay the same warmth in her, and she leans back against it with a soft sigh.<</if>>
<<speech "clinic-caspia">><<say "clinic-caspia" "You know, Phoebe, I think we're all done here. You're perfectly healthy.">><</speech>>
Phoebe looks from her nurse's dreamy face to the purple tendril sliding up over the edge of the table, and opens her mouth, and Caspia lays a calm hand on her shoulder.
<<speech "clinic-caspia">><<say "clinic-caspia" "Shh. It's all right. Lie back for me.">><</speech>>
And Phoebe, who always does what the nurse says, lies back.
You take her on the exam table, slow, her gown rucked up, Caspia stroking her hair and murmuring that she's doing wonderfully. Then Caspia herself, bent over the table beside her patient, her neat pinned hair coming loose, her composure going with it.<<if $flags._mareaInExam2>> Marea last, kneeling on the floor between them, her sea-green hair everywhere, laughing softly.<</if>>
<<climax "Cum">>They come one after another as you fill them, Phoebe with a high astonished gasp, Caspia with a long shudder she tries and fails to keep professional<<if $flags._mareaInExam2>>, Marea with a warm, delighted moan<</if>>. Their bellies round together.
<<speech "clinic-caspia">><<say "clinic-caspia" "...I'll make a note on her chart.">><</speech>>
<<gain_xp "influence" 2>>
<<set $flags._caspiaDone to true>><<set $flags._phoebeDone to true>><<claim_bred "clinic-caspia">><<claim_bred "clinic-phoebe">>
<<if $flags._mareaInExam2>><<set $flags._mareaDone to true>><<claim_bred "clinic-marea">><</if>>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "All at once" "split yourself. A tendril for every one of them" "Lurk" "Premium">><<replace "#exam2-scene">>
You come down from the ceiling grille in one smooth pour and divide on the way down: <<= $flags._mareaInExam2 ? "three" : "two">> streams of you, landing on <<= $flags._mareaInExam2 ? "all three" : "both">> at the same instant.
One coils round Phoebe's ankles and up under her gown. One wraps round Caspia's waist from behind and finds her mouth with a breath of musk.<<if $flags._mareaInExam2>> One catches Marea's wrists at the counter.<</if>> They gasp in unison. Nobody has time to shout.
<<speech "clinic-phoebe">><<say "clinic-phoebe" "Is this— is this a normal part of—">><</speech>>
<<speech "clinic-caspia">><<say "clinic-caspia" "No. Absolutely— not— oh.">><</speech>>
You take them together, in the one small room, every part of you busy. Phoebe on the table with her gown up round her waist. Caspia bent beside her, gripping the edge, her scanner beeping unheeded on the floor.<<if $flags._mareaInExam2>> Marea against the counter, her head tipped back.<</if>> Their gasps rise together, in time with you.
<<climax "Cum">>You fill them all at once. The room fills with their cries, muffled by the clinic's soundproofed walls, and <<= $flags._mareaInExam2 ? "three" : "two">> bellies round together under white cotton and thin paper.
<<gain_xp "lurk" 3>>
<<set $flags._caspiaDone to true>><<set $flags._phoebeDone to true>><<claim_bred "clinic-caspia">><<claim_bred "clinic-phoebe">>
<<if $flags._mareaInExam2>><<set $flags._mareaDone to true>><<claim_bred "clinic-marea">><</if>>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Phoebe first" "under the table, up through the gown" "Musk">><<replace "#exam2-scene">>
You slide under the exam table and come up through the gap in Phoebe's gown. She jolts and grabs the edge of the table, and Caspia looks up from her scanner.
<<if $flags._hvac>>
Caspia's reflexes are slow with the dosed air. She sees something purple and glistening under her patient's gown and just stares at it, her lips parted, while Phoebe moans.
<<speech "clinic-caspia">><<say "clinic-caspia" "Phoebe? Are you... is that...">><</speech>>
By the time she thinks to step back you have her too.
<<else>>
<<speech "clinic-caspia">><<say "clinic-caspia" "Phoebe? What on— //get away from her!//">><</speech>>
Her shout goes straight through the wall. You flood her with musk to stop the next one, and it takes, but the first is already out.
<<gain_sus 2 "Caspia shouted in exam room 2">>
<<cl_alert 2>>
<</if>>
You take Phoebe on the table, her gown round her waist, her nervous gasps turning to moans, and then Caspia against the counter, her composure in pieces.<<if $flags._mareaInExam2>> Marea, by then, has stopped pretending to dry her hands.<</if>>
<<climax "Cum">>They come one after another as you fill them, and their bellies round together.
<<gain_xp "musk" 1>>
<<set $flags._caspiaDone to true>><<set $flags._phoebeDone to true>><<claim_bred "clinic-caspia">><<claim_bred "clinic-phoebe">>
<<if $flags._mareaInExam2>><<set $flags._mareaDone to true>><<claim_bred "clinic-marea">><</if>>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<span id="exam2-scene"></span>/% Spotlight: Val, Gemlith, damaged crystals. Best: musk through the damage if dosed, or touch the bare patches (both +2). Resonance works, but rings through the wall if her neighbours are still in their rooms. %/
''EXAM ROOM 4 · VAL''
<<scene "missions/clinic/val-exam.webp">>
Val sits alone on the exam table, upright and still, holding one arm carefully away from her body. The crystals along that forearm are chipped and cracked, two of them snapped off at the base, and where they broke there's skin: pale, smooth, never touched.
She came here because it hurts. She's been waiting forty minutes. She hasn't complained once.
<<if $flags._hvac>>She keeps glancing at the bare patches on her arm with a frown. They're flushed. They're //tingling//.
<<speech "clinic-val">><<say "clinic-val" "That's not supposed to happen.">><</speech>><</if>>
''How do you take her?''
<<choose_do "Musk through the damage" `$flags._hvac ? "she's been drinking it through that bare skin for ten minutes" : "breathe it over those open patches"` "Musk">><<replace "#val-scene">>
<<if $flags._hvac>>The air has been working on her the whole time she's sat here, soaking straight into the skin her crystals used to cover. Gemlith skin that has never been exposed has never learned to be anything but //sensitive//.<<else>>You breathe a slow cloud of musk across her damaged arm. It soaks into the bare patches like water into dry ground.<</if>>
She grips the edge of the table.
<<speech "clinic-val">><<say "clinic-val" "Why does my body feel like—">> She stops. Swallows. <<say "clinic-val" "Like it's on fire. In a good way. That's not a medical term.">><</speech>>
When you touch the first bare patch she goes rigid and makes a sound that's half a sob. The crystals across her shoulders shiver and, one by one, start to fold back, retracting into her skin, laying more of her open. She doesn't try to stop them. She lies back on the table, stoic face cracking into something helpless and astonished, and lets you have her.
<<climax "Cum">>She comes with a deep, ringing groan as you fill her, every remaining crystal on her body chiming softly at once. Her belly rounds beneath her tunic. When the crystals finally creep back, the cracked ones look somehow less cracked.
<<if $flags._hvac>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<set $flags._valDone to true>><<claim_bred "clinic-val">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Touch the bare patches" "where the crystals broke. Nobody has ever touched her there" "Lurk">><<replace "#val-scene">>
You rise up beside the table, slow, and lay the very tip of a tendril on the smallest bare patch on her arm.
She gasps like you've struck her. Her eyes go wide. Her whole body locks.
<<speech "clinic-val">><<say "clinic-val" "Don't— don't stop. Please don't stop.">><</speech>>
You don't. You trace every patch, one after another, and each one makes her shudder harder, the crystals across her shoulders retracting into her skin as if her body's decided the armour is in the way. By the time you slide between her thighs she's trembling all over and pulling you closer with her good arm.
<<climax "Cum">>She comes with a low, ringing cry as you fill her, her crystals chiming, and lies back on the table afterwards with her belly rounding and her stoic face completely undone.
<<gain_xp "lurk" 2>>
<<set $flags._valDone to true>><<claim_bred "clinic-val">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<<choose_do "Resonance" "match the frequency of her broken crystals" "Influence">><<replace "#val-scene">>
Her cracked crystals hum at an unstable pitch, just audible. You find it, and match it, and push.
They respond at once, far faster than whole crystals would. Within thirty seconds the remaining plates are folding away across her shoulders and down her arms, and Val sits frozen on the table, staring at her own body as it opens.
<<speech "clinic-val">><<say "clinic-val" "What are you doing to me? What //is// that—">><</speech>>
But her voice has gone soft. You take her on the exam table with her armour gone and her bare skin flushed, and she meets every stroke.
<<climax "Cum">>She comes with a deep ringing cry as you fill her, and her belly rounds beneath her tunic.
<<if not $flags._caspiaDone or not $flags._ebbDone>><<gain_sus 1 "Val's crystals rang through the wall">><<cl_alert 1>><</if>>
<<gain_xp "influence" 2>>
<<set $flags._valDone to true>><<claim_bred "clinic-val">>
----
<<cl_next>><</climax>>
<</replace>><</choose_do>>
<span id="val-scene"></span>/% CORAL: the centrepiece. Calm: Influence (+3, premium), Musk (+2 if dosed), from behind (Lurk +2), or the "medical" approach (dosed + two rooms taken: Musk +2, Lurk +2).
On her guard (loud building, alarm, lockdown): talk her down (Influence +2), musk (+2 if dosed), or rush her and she calls Meridia. %/
<<set _coralUp to setup.coralAlerted()>>
<<set _isla to $flags._islaWithCoral and not $flags._islaDone>>
''EXAM ROOM 1 · CORAL MA ONDINE''
<<if _coralUp>>
<<scene "missions/clinic/coral-standoff.webp">>
The door opens on Coral standing behind her desk, white coat on, a small personal communicator in her hand and her thumb above its button. Her markings are blazing violet up both arms. She's breathing hard.
<<speech "clinic-coral">><<say "clinic-coral" "I know what you are.">> Her voice is level. Her hand isn't. <<say "clinic-coral" "I've been watching the air composition for ten minutes. One press, and Meridia knows everything within the hour.">><</speech>>
<<elseif $flags._hvac>>
<<scene "missions/clinic/coral-diagnosing.webp">>
Coral has half risen from her desk. She's staring at her own raised hand, at the faint tremor in it, at the teal markings along her wrist sliding toward violet without her permission.
<<speech "clinic-coral">><<say "clinic-coral" "Elevated oxytocin. Vasodilation. A synthetic compound in the... the ventilation?">> She frowns at the grille. <<say "clinic-coral" "That's not possible. I need to check the filtration.">><</speech>>
<<else>>
<<scene "missions/clinic/coral-office.webp">>
Coral sits at her desk reviewing a scan, stylus tapping, the quiet authority of a woman who has saved lives today and will again tomorrow. Her coat hangs on the back of the door. The communicator is in its pocket.
<</if>>
<<if _isla>>Isla is perched on the end of the exam couch in her clothes, swinging her legs, waiting to be seen.<</if>>
<<psi_from "evelyn" "That's her. Meridia's own. Take your time with this one.">>
''How do you take her?''
<<if _coralUp>>
<<choose_do "Talk her down" "into her mind, through all that training. She doesn't want to press it" "Influence">><<replace "#coral-scene">><<set _way to "talk">><<include "Clinic_Coral_Take">><</replace>><</choose_do>>
<<choose_do "Musk" `$flags._hvac ? "she's been breathing you for twenty minutes. She can't make her thumb move" : "flood the room before she presses it"` "Musk">><<replace "#coral-scene">><<set _way to "muskUp">><<include "Clinic_Coral_Take">><</replace>><</choose_do>>
<<choose_do "Rush her" "across the room before her thumb comes down" "Strength">><<replace "#coral-scene">><<set _way to "rush">><<include "Clinic_Coral_Take">><</replace>><</choose_do>>
<<else>>
<<choose_do "Through her diagnostic senses" "she's always listening for a patient in distress. Be one" "Influence" "Premium">><<replace "#coral-scene">><<set _way to "influence">><<include "Clinic_Coral_Take">><</replace>><</choose_do>>
<<choose_do "Musk" `$flags._hvac ? "she knows exactly what it is. She can't stop it" : "she'll taste it before she feels it"` "Musk">><<replace "#coral-scene">><<set _way to "musk">><<include "Clinic_Coral_Take">><</replace>><</choose_do>>
<<choose_do "From behind" "while she's bent over her notes" "Lurk">><<replace "#coral-scene">><<set _way to "lurk">><<include "Clinic_Coral_Take">><</replace>><</choose_do>>
<<if $flags._hvac and setup.clinicTaken() gte 2>><<choose_do "Let her find what you've done" "she'll go to check on her patients. Be waiting" "Musk" "Lurk">><<replace "#coral-scene">><<set _way to "medical">><<include "Clinic_Coral_Take">><</replace>><</choose_do>><<else>><<choose_locked "Let her find what you've done" "the vents dosed and two rooms taken" "she goes to check on her patients">><</if>>
<</if>>
<span id="coral-scene"></span>/% Included by Clinic_Coral. _way: influence | musk | lurk | medical | talk | muskUp | rush %/
<<set _isla to $flags._islaWithCoral and not $flags._islaDone>>
----
<<if _way is "influence">>
You don't come in. You reach in. Coral's training keeps a channel open in her at all times, a quiet listening for patients in pain, and you send something down it: //patient, close by, in distress, needs you//.
She stops tapping. Lifts her head. Gets up from her desk and comes to the door on instinct, a doctor going toward a cry for help, and opens it, and looks up at the ceiling where you are.
<<speech "clinic-coral">><<say "clinic-coral" "There's someone— you're hurt, I can feel—">> Her diagnostic sense reaches for you to assess you, and you let it in, and follow it back. <<say "clinic-coral" "That's not a patient. That's— what //are// you—">><</speech>>
Too late. She opened the door herself. Her markings flare violet from her collar to her fingertips.
<<speech "clinic-coral">><<say "clinic-coral" "Oh. Oh, I see.">><</speech>>
<<elseif _way is "musk">>
<<if $flags._hvac>>
You come in under the door and rise up in front of her, and she doesn't run. She looks at you with sharp, furious, fascinated eyes.
<<speech "clinic-coral">><<say "clinic-coral" "It's you. In the air. Synthetic pheromone, oxytocin agonist, autonomic arousal response. I can //name// every receptor you're hitting.">> She grips the desk. <<say "clinic-coral" "And my body doesn't care at all.">><</speech>>
A breath of you, point-blank, on top of twenty minutes of it. Her knees go.
<<else>>
You breathe musk under the door. She tastes it before she feels it: lifts her head, sniffs, and is on her feet and reaching for her coat before you're through.
You catch her wrist an inch from the pocket. She twists, quick and strong, and her elbow cracks the door frame. Then the musk reaches her properly.
<<speech "clinic-coral">><<say "clinic-coral" "No. No, I know what this is, I know—">><</speech>>
<<gain_sus 1 "Coral fought you in her office">>
<</if>>
<<elseif _way is "lurk">>
She's bent over her scan, absorbed. You come in under the door and up the wall behind her chair, and lay a tendril across the back of her neck.
She startles, fast, Nerethis-fast, half out of her chair. But skin contact is quicker still. The pheromones are in her before she's turned round, and her markings flood violet.
<<speech "clinic-coral">><<say "clinic-coral" "Contact transmission. Through the dermis. That's—">> She sways. <<say "clinic-coral" "That's very efficient.">><</speech>>
<<elseif _way is "medical">>
<<scene "missions/clinic/coral-aftermath.webp">>
You leave her alone. She diagnoses the air, frowns at the grille, and goes, as you knew she would, to check on her patients first.
You're waiting in the room she opens. She stops dead in the doorway. Her nurse, her patient, flushed and dreamy on the floor, a hand on a belly that wasn't round this morning, glossy pink on the tiles.
<<speech "clinic-coral">><<say "clinic-coral" "What have you done to them?">><</speech>>
She turns to run. You're behind her. The door swings shut.
<<elseif _way is "talk">>
You come in slowly, in plain sight, and stop. You don't touch her. You reach for her mind instead: not a push, a question. //Do you want to press it?//
Her thumb trembles above the button.
<<speech "clinic-coral">><<say "clinic-coral" "What I've been breathing has compromised my capacity to make rational decisions about this button.">> She swallows. <<say "clinic-coral" "That's my professional opinion.">><</speech>>
Her thumb doesn't press. Her hand lowers, very slowly, and the communicator slips out of her fingers onto the desk.
<<speech "clinic-coral">><<say "clinic-coral" "Oh. That's not fair.">><</speech>>
<<elseif _way is "muskUp">>
<<if $flags._hvac>>
You breathe out, a slow heavy cloud, and she sees it coming and doesn't move. Twenty minutes of you in her lungs. Her thumb sits on the button and simply won't come down.
<<speech "clinic-coral">><<say "clinic-coral" "Press it. Press it, Coral.">> She stares at her own hand. <<say "clinic-coral" "...I'm not going to, am I.">><</speech>>
<<else>>
You flood the room. She holds her breath, glares at you, and presses the button with her eyes watering.
//Fed-Health, Dr Meridia's office.//
<<speech "clinic-coral">><<say "clinic-coral" "This is Coral. There's something in my clinic, it's—">><</speech>>
Then she has to breathe.
<<cl_coral_called>>
<</if>>
<<elseif _way is "rush">>
You hurl yourself across the room. She's quicker. Her thumb comes down.
//Fed-Health, Dr Meridia's office.//
<<speech "clinic-coral">><<say "clinic-coral" "Coral. Block 9 clinic. Send—">><</speech>>
Your tendril closes over her mouth. Too late.
<<cl_coral_called>>
<</if>>
<<if _isla>>Behind you, on the exam couch, Isla has watched the whole thing with her mouth open. <<speech "clinic-isla">><<say "clinic-isla" "Do I still get seen?">><</speech>><</if>>
She goes down slowly, gracefully, onto her own exam couch, a doctor studying her own collapse with professional interest until the pleasure overwhelms the science. Her markings are blazing violet from her throat to her ankles. Her coat falls open.
<<speech "clinic-coral">><<say "clinic-coral" "Arousal response at... I can't... the numbers don't...">><</speech>>
When you slide into her she arches off the couch with a sound that has no clinical vocabulary at all. Her body is Nerethis to its core: cool and slick, gills fluttering at her ribs, gripping you in long tidal waves. And her mind, trained to monitor every sensation in a patient, is monitoring every one of her own, and narrating them to herself in fragments, and losing the thread.
<<speech "clinic-coral">><<say "clinic-coral" "I know exactly what's happening. Every step. I can feel the mechanism working and I still can't—">> She grabs your tendril and pulls you deeper. <<say "clinic-coral" "//Don't stop.//">><</speech>>
<<if _isla>>Isla, at the end of the couch, doesn't wait to be asked. You take her too, beside her doctor, and she laughs into Coral's shoulder.<</if>>
<<climax "Cum">>Coral comes with a long, ringing cry that the clinic's soundproofing was never designed for, and you fill her until she's shaking. Her belly rounds beneath her open coat. She lays her palm on it and, even now, feels for the heartbeat.
<<speech "clinic-coral">><<say "clinic-coral" "For the record,">> she whispers, <<say "clinic-coral" "I knew exactly what you were doing. The whole time.">><</speech>>
<<if _isla>><<set $flags._islaDone to true>><<claim_bred "clinic-isla">><</if>>
<<if _way is "influence">><<gain_xp "influence" 3>>
<<elseif _way is "musk">><<if $flags._hvac>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<elseif _way is "lurk">><<gain_xp "lurk" 2>>
<<elseif _way is "medical">><<gain_xp "musk" 2>><<gain_xp "lurk" 2>>
<<elseif _way is "talk">><<gain_xp "influence" 2>>
<<elseif _way is "muskUp">><<if $flags._hvac>><<gain_xp "musk" 2>><<else>><<gain_xp "musk" 1>><</if>>
<<else>><<gain_xp "strength" 1>><</if>>
<<set $flags._coralDone to true>><<claim_bred "clinic-coral">>
----
<<cl_next>><</climax>>/% Assault: the drones take the building in ninety seconds; you take Coral yourself %/
<<set $flags._lockdown to true>><<set $flags._hvac to true>>
<<set _sentinel to ($currentRun.colony.drones["Sentinel"] || 0) gte 1>>
<<set _scout to ($currentRun.colony.drones["Scout"] || 0) gte 1>>
<<set _siren to ($currentRun.colony.drones["Siren"] || 0) gte 1>>
<<scene "missions/clinic/lockdown.webp">>
<<psi_from "evelyn" "Drones. Lock it down.">>
Two minutes in the roof vents first: you dose the whole building. Then the front door opens, and your drones walk in.
<<if _sentinel>>A Sentinel plants herself in the front doorway and another at the staff entrance. Nobody is leaving.<<else>>Workers brace both doors. It'll hold. These are civilians.<</if>> <<if _scout>>A Scout is over the front desk before Lina can blink, and the communicator's line goes dead in a neat little snip.<<else>>Lina's hand gets to the communicator before a Worker gets to Lina. The line rings out, once, before it's pulled from the wall.<</if>>
<<gain_sus 2 "Drones in the clinic">>
<<if not _scout>><<gain_sus 1 "The front desk line rang out">><</if>>
Then you go room to room behind them, and the drones hold each woman for you.
Lina, pinned in her chair, gasping. Isla in the waiting room, who looks up from her phone and says //finally//. <<if _siren>>A Siren drifts into the break room and Marea looks up and simply sets her tea down, and in exam 2 Caspia lowers her scanner at the sight of another water-born face, and Phoebe follows her nurse's lead.<<else>>Marea, startled in her armchair. Caspia and Phoebe in exam 2, the head nurse trying to put herself between her patient and the door.<</if>> Ebb in exam 3, frozen mid-restock, her markings going violet before anyone touches her. Val in exam 4, curling round her cracked crystals, and then uncurling.
<<climax "Cum">>Seven women, seven rooms, one after another as fast as you can move. You leave every one of them flushed and dazed and carrying.
<<gain_xp "musk" 2>>
<<if _siren>><<gain_xp "influence" 1>><</if>>
<<gain_xp "endowment" 1>>
<<set $flags._linaDone to true>><<set $flags._islaDone to true>><<set $flags._mareaDone to true>><<set $flags._ebbDone to true>>
<<set $flags._caspiaDone to true>><<set $flags._phoebeDone to true>><<set $flags._valDone to true>>
<<claim_bred "clinic-lina">><<claim_bred "clinic-isla">><<claim_bred "clinic-marea">><<claim_bred "clinic-ebb">>
<<claim_bred "clinic-caspia">><<claim_bred "clinic-phoebe">><<claim_bred "clinic-val">>
<<target "clinic-coral" "alerted" "Exam 1 · door shut, listening">>
----
Everyone but Coral. Her door is shut. She heard all of it.
<<choose "Exam room 1" "Clinic_Coral" "she's waiting for you">><</climax>>/% Every woman claimed: close up, close the op, then the report %/
<<set $flags.clinicDone to true>>
<<scene "missions/clinic/corridor.webp">>
Five o'clock. You flip the sign on the front door to Closed and turn the lights down, room by room. Behind every door, a woman sleeping or humming or staring at the ceiling with her hand on her belly.
Out through the supply door, into the reef garden's long shadows.
<<psi_from "evelyn" "Eight. And Coral. Come home, love. I want to hear everything.">>
<<mission_finish>>
<<choose "Debrief" "Mission_Report" "what it cost, what it earned">>/% Security arrived: whoever's left gets away %/
<<set $flags.clinicDone to true>>
<<for _id range setup.clinicLeft()>><<target `"clinic-" + _id` "gone" "Got away">><</for>>
<<if not $flags._coralDone>><<set $flags.meridiaWatchful to true>><</if>>
<<scene "missions/clinic/entry-drain.webp">>
Blue lights at the front windows. Boots on the reef-garden path. You pour yourself down the nearest sink and away through the pipes as the front door bangs open.
<<set _gone to setup.clinicLeft().map(function (id) { return setup.characters["clinic-" + id].name; })>>
Behind you, <<= _gone.length is 1 ? _gone[0] : _gone.slice(0, -1).join(", ") + " and " + _gone[_gone.length - 1]>> will be telling security everything they saw.
<<psi_from "evelyn" "Not the night we wanted. Come home. Carefully.">>
<<mission_finish>>
<<choose "Debrief" "Mission_Report" "what it cost, what it earned">>/% Evening at the safehouse: Evelyn frames the choice, Coral first. Mission_Report sends you here. %/
<<scene "missions/clinic/debrief-evening.webp">>
Evening. The safehouse living room, lamps on. <<name "evelyn">> is on her feet, pacing, datapad in hand. She's actually excited.
<<if $flags._coralDone>>
<<speech "evelyn">><<say "evelyn" "Coral ma Ondine. One of Meridia's own.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Every health scan, every blood test, every anomaly report in this sector goes across her desk. Unusual hormones. Unexpected pregnancies. Coral decides what gets flagged and what gets filed as routine.">><</speech>>
<<speech "evelyn">><<say "evelyn" "So here's my view. Send her back. Let her open the clinic tomorrow, smile at her patients, and write whatever we need her to write. A thrall in that chair is worth more than any pod.">> She shrugs. <<say "evelyn" "A pod gets us a Nerethis doctor's drones. And Meridia, asking where her doctor went.">><</speech>>
<<else>>
<<speech "evelyn">><<say "evelyn" "Coral got out.">> She stops pacing. <<say "evelyn" "Which means Meridia hears about tonight from her own doctor. That's going to cost us.">><</speech>>
<</if>>
<<if $flags._called>><<speech "evelyn">><<say "evelyn" "And Fed-Sec has a call logged from that front desk. We'll be feeling that for a while.">><</speech>><</if>>
<<speech "evelyn">><<say "evelyn" "The rest are easier. Patients go home and nobody blinks. Staff go missing and the clinic notices by morning.">><</speech>>
<<choose "Decide" "Mission_Resolve" "thrall or seedbed, one each">>/% After Mission_Resolve: the seedbeds come home after dark; Coral back at her desk, or in a pod. Reads $lastResolve. %/
<<set _lr to $lastResolve or { seedbeds: [], thralls: [] }>>
<<set _sb to _lr.seedbeds>>
<<if _sb.length is 0>>
<<speech "evelyn">><<say "evelyn" "Everyone goes home. Clean. The clinic opens on time tomorrow.">><</speech>>
<<else>>
After dark, one at a time, by the back streets. They each find their way to the safehouse basement.
<</if>>
<<if _sb.includes("clinic-coral")>>
----
<<scene "missions/clinic/coral-seedbed.webp">>
Coral examines her pod before she gets into it, running her fingers along the membrane, the feeding vines, the warm cradle. Professional to the last. Then she lies down in it with a small, satisfied sigh.
<<speech "clinic-coral">><<say "clinic-coral" "Remarkable design. I'd love to see the literature.">><</speech>>
<</if>>
<<if _sb.includes("clinic-caspia")>>
----
<<scene "missions/clinic/caspia-seedbed.webp">>
Caspia checks the pod's seals, the vines, the membrane, and pronounces it adequate. She settles in like a head nurse taking the one bed she'd assign herself.
<</if>>
<<if _sb.includes("clinic-marea")>>
----
<<scene "missions/clinic/marea-seedbed.webp">>
Marea strokes the membrane as it closes over her, as if it were a nervous patient, and smiles herself to sleep.
<</if>>
<<if _sb.includes("clinic-ebb")>>
----
<<scene "missions/clinic/ebb-seedbed.webp">>
Ebb is in her pod before anyone else, beaming, desperate to be good at this too.
<</if>>
<<if _sb.includes("clinic-phoebe")>>
----
<<scene "missions/clinic/phoebe-seedbed.webp">>
Phoebe, who hates doctors, takes one look at the pod and climbs into it without a single nervous word.
<</if>>
<<if _sb.includes("clinic-isla")>>
----
<<scene "missions/clinic/isla-seedbed.webp">>
Isla settles into her pod with a yawn. For the first time all day, she isn't bored.
<</if>>
<<if _sb.includes("clinic-val")>>
----
<<scene "missions/clinic/val-seedbed.webp">>
Val lowers herself into her pod carefully, cracked arm held clear. The warmth seeps into the bare patches and her crystals chime, softly, once, in something like relief.
<</if>>
<<if _sb.includes("clinic-lina")>>
----
<<scene "missions/clinic/lina-seedbed.webp">>
Lina arrives with her appointment book still under her arm. She puts it on the shelf beside her pod, squares it neatly, and climbs in.
<</if>>
<<if _lr.thralls.includes("clinic-coral")>>
----
<<scene "missions/clinic/coral-desk-morning.webp">>
The next morning, the clinic opens at nine on the dot. Coral is at her desk with her coat on and her markings a calm teal, a faint violet edge to them if you know to look.
She writes up last night's scans. Every single one of them: //routine fluctuation, no further action//.
<<psi_from "evelyn" "Our doctor. Now that's useful.">>
<</if>>
<<set _others to _lr.thralls.filter(function (id) { return id !== "clinic-coral"; })>>
<<if _others.length gt 0>>
<<set _tn to _others.map(function (id) { return (setup.characters[id] || { name: id }).name; })>>
----
//<<= _tn.length is 1 ? _tn[0] : _tn.slice(0, -1).join(", ") + " and " + _tn[_tn.length - 1]>> <<= _tn.length is 1 ? "goes" : "go">> home as if from an ordinary day, carrying, and <<= _tn.length is 1 ? "comes" : "come">> back to the clinic tomorrow as if nothing happened.//
<</if>>
----
<<choose "Sleep" "DayEnd_Transition" `"end day " + $gamestate.day`>>/* ============================================
GENERAL
<<sfx "gain-drone">> a sound (once per turn, never on reload)
<<sfx "wet-impact" 0.5>> at half its level
<<ambient "nest-hum">> pin this passage's ambience bed
<<ambient_stop>> silence the bed for this passage
VOCALS (race: human aetheri nerethis drakhari gemlith vyx faelix,
or a character id; intensity: soft medium intense climax afterglow)
<<moan "nerethis" "soft">> a random take
SCENES (race optional everywhere; without one there are no vocals)
<<sex_ambient "nerethis">> scene bed for her race + the wet loop
<<sex_ambient_stop>> loop off, bed back to the screen's own
<<sex_thrust "soft" "vyx">> thrust + her moan at that intensity
<<sex_climax "aetheri">> gush + her climax cry, loop off
<<sex_finish "aetheri">> creampie + her afterglow
<<seedbed_ambient>> the seedbed bed
<<seedbed_implant "human">> slime, insertion, intense moan
<<seedbed_pulse "human">> membrane, tendrils, medium moan
The wet loop lasts until the next passage; call <<sex_ambient>> again
in each passage of a long scene to keep it going.
<<climax>> (missions/mission-hud.twee) plays its own release.
Keys: setup.sfx.catalogue / scripts/sound.twee
============================================ */
<<widget "sfx">><<run setup.sfx.event(_args[0], _args.length gt 1 ? { vol: Number(_args[1]) } : undefined)>><</widget>>
<<widget "ambient">><<run setup.sfx.ambient(_args[0])>><</widget>>
<<widget "ambient_stop">><<run setup.sfx.ambient(null)>><</widget>>
<<widget "moan">><<run setup.sfx.moan(_args[0], _args[1], _args.length gt 2 ? { vol: Number(_args[2]) } : undefined)>><</widget>>
<<widget "sex_ambient">><<run setup.sfx.ambient(setup.sfx.sceneBed(_args[0]))>><<run setup.sfx.loop("wet-loop")>><</widget>>
<<widget "sex_ambient_stop">><<run setup.sfx.loop("wet-loop", false)>><<run setup.sfx.ambientRelease()>><</widget>>
<<widget "sex_thrust">><<run setup.sfx.event(_args[0] is "soft" ? "thrust-soft" : "thrust-hard")>><<if _args[1]>><<moan _args[1] _args[0]>><</if>><</widget>>
<<widget "sex_climax">><<run setup.sfx.event("climax-gush")>><<if _args[0]>><<moan _args[0] "climax">><</if>><<run setup.sfx.loop("wet-loop", false)>><</widget>>
<<widget "sex_finish">><<run setup.sfx.event("creampie")>><<if _args[0]>><<moan _args[0] "afterglow">><</if>><</widget>>
<<widget "seedbed_ambient">><<run setup.sfx.ambient("seedbed-ambient")>><</widget>>
<<widget "seedbed_implant">><<run setup.sfx.event("slime-spread")>><<run setup.sfx.event("insertion", { vol: 0.6, delay: 0.3 })>><<moan `_args[0] or "human"` "intense">><</widget>>
<<widget "seedbed_pulse">><<run setup.sfx.event("membrane-stretch", { vol: 0.5 })>><<run setup.sfx.event("tendril-wrap", { vol: 0.6 })>><<moan `_args[0] or "human"` "medium">><</widget>><<set $flags.contentEndSeen to true>>
<<set _dt to setup.droneTotal()>>
<<set _c to $currentRun.colony>>
<center>''THE SUBURBS ARE YOURS''</center>
<<scene "intro/colony-establishing.webp">>
----
Night. <<name "evelyn">> is at the tall arched window in the living room with the curtains open, a mug of tea going cold in her hands. Below the hill, Block 9 is dark and quiet. Every street of it.
<<speech "evelyn">><<say "evelyn" "Come here. Look at this.">><</speech>>
You flow up onto the sill beside her. She doesn't look away from the glass.
<<speech "evelyn">><<say "evelyn" `"Day " + $gamestate.day + ". That's all it took."`>> She counts on her fingers against the window. <<say "evelyn" "The house next door. The flats on Cypress Lane. Coral's clinic. The gym. The game shop on the parade.">> A breath. <<say "evelyn" "Every one of them, love. Every single one.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Down in that basement there's a nest that breathes. There are women in it who'll never want to leave, and women out there walking around with us in their heads, doing their jobs, telling nobody.">> Finally she turns. Her eyes are bright. <<say "evelyn" "And nobody knows. Not Fed-Sec. Not the council. Not her.">><</speech>>
She sets the mug down and turns the datapad round to show you the colony map. The suburbs glow. Everything past them is grey.
<<speech "evelyn">><<say "evelyn" "That's the rest of it. The university. The theatres. The hospital. The palace.">> She taps the grey, one district at a time. <<say "evelyn" "Not yet. We hold what we've got, we feed the nest, we grow. And when it's time, we go bigger.">><</speech>>
----
<center>''STATUS''</center>
<div class="chapter-summary">\
- Days on Elysara: <<= $gamestate.day>>
- Drones: <<= _dt>>
- Seedbeds: <<= _c.seedbeds.length>> · Broodmares: <<= _c.broodmares.length>> · Thralls: <<= _c.thralls.length>>
- Suspicion: <<= $gamestate.suspicion>>/100\
</div>
----
<<speech "evelyn">><<say "evelyn" "Rest. The suburbs aren't going anywhere.">> She kisses the tip of a tendril. <<say "evelyn" "Neither are we.">><</speech>>
//That's the end of this version's story. You can keep playing: breed Evelyn, grow the nest and the hatchery, and replay the missions you like. More of the colony is coming in later versions.//
<<choose "Back to the colony" "ColonyMap">><<set $flags.councilFirstSeen to true>>\
/% First council event - introduces all leaders %/
/% See development/lore/gameplay/council-events.md for full dynamics reference %/
<<scene "intro/council-chamber.webp" "Colony council · in session">>
The feed shows a bright, airy chamber — floor-to-ceiling windows overlooking Elysara's skyline. Seven seats around a curved table. Each occupied by a leader of a different species.
<<name "evelyn">> settles on the floor next to you to watch. One of your tendrils slides between her legs without either of you thinking about it. She shifts to give you access without taking her eyes off the screen.
----
At the head of the table: Princess <<name "lysara">>.
<<scene "council/council-lysara.webp" "Council · Governance · Princess Lysara">>
Tall. Silver hair past her waist. Skin like warm gold. Sheer Aetheri formal-wear that hides nothing — the shape of her breasts clearly visible through the fabric.
<<slime "Breed. Breed. BREED. Fill her. Pump her full. Make her swell—">>
And behind her — one step back, hands clasped, blank — <<name "seraphine">>. Same golden skin, silver-white hair in a severe updo. Lean, watchful, eyes scanning constantly.
<<slime "That one too. Both. Pin them. Seed them. Claim—">>
She looks tired. Shadows under the violet eyes, a smile held up by effort alone.
<<speech "lysara">><<say "lysara" "Good evening, council. It is //so// good to be home.">> She sinks into her chair with something close to a sigh. <<say "lysara" "After all that... //dreadful// business, I'd very much like one meeting where nothing goes wrong.">> A brittle little laugh. <<say "lysara" "So. Let's keep this nice and simple. Meridia — health report?">><</speech>>
----
<<name "meridia">>. The Chief of Medicine. To <<name "lysara">>'s left. A Nerethis.
Pale blue skin glowing in the chamber light. Bioluminescent markings tracing down her neck beneath a medical wrap that clings like wet silk. Full, heavy breasts swaying gently. Teal nipples visible through the fabric. Ancient. Ageless. Serene.
<<scene "council/council-meridia.webp" "Council · Health · Meridia">>
<<slime "Fertile. Ripe. Those markings will pulse when you finish inside her—">>
<<speech "meridia">><<say "meridia" "Of course, //my lady, Princess Lysara, Royal Highness of the Seven Moons, Shepherd of the New Accord, Jewel of the—//">><</speech>>
<<speech "lysara">><<say "lysara" "//Meridia//.">> Cheeks flushing gold.<</speech>>
<<name "meridia">>'s smile widens. Pure auntie energy. She gives her report — colony health excellent. Then:
<<speech "meridia">><<say "meridia" "Several human women have expressed dissatisfaction regarding your recent announcement. Forty-seven formal complaints. I think it would be wise if you—">><</speech>>
<<speech "lysara">><<say "lysara" "//Ugh//. Meridia, I have //apologised//.">> She rubs her temple. <<say "lysara" "Publicly. Twice. I've sat through three closed sessions with the High Council and recorded a statement for every species broadcast in the Federation. Mother has made her position //extremely// clear.">> A tight breath. <<say "lysara" "It has been addressed. Moving on.">><</speech>>
<<speech "meridia">><<say "meridia" "Moving on?">><</speech>>
<<stare "council/council-meridia-stare.webp" "meridia" "Meridia's eyes, close up. Calm, ancient, and entirely patient.">>
The warmth leaves the room. What's left is something ancient and patient. <<name "lysara">> goes rigid.
<<speech "meridia">><<say "meridia" "Forty-seven women. Frightened. Angry. Coming to MY clinics asking if their husbands and sons on Earth are going to be sterilised.">> She pauses. Lets it sit. <<say "meridia" "Your mother's public statement helped. But these women need to hear it from YOU personally, face to face — that it won't happen. That their families are safe. They need their princess - their future //queen// - to look them in the eye and say it.">><</speech>>
<<speech "lysara">><<say "lysara" "I— Meridia, my schedule this week is—">><</speech>>
The gaze doesn't move.
<<speech "lysara">><<say "lysara" "The Erebus fallout alone is going to take—">><</speech>>
Nothing. Not a blink. <<name "lysara">>'s shoulders creep up toward her ears.
<<speech "lysara">><<say "lysara" "And Mother's statement really did cover most of—">><</speech>>
<<name "meridia">> just waits. The way the tide waits.
<<name "lysara">> sinks into her chair. The gold drains out of her cheeks. Her hands find each other in her lap.
<<speech "lysara">><<say "lysara" "...anything you want, Auntie.">> Barely a whisper.<</speech>>
<<speech "meridia">><<name "meridia">>'s warmth returns instantly. <<say "meridia" "Wonderful. Forty-seven visits, then.">> She turns to <<name "seraphine">> with a fond smile. <<say "meridia" "Seraphine, dear — would you fit them into her schedule this week? Mornings are best. Before she thinks of excuses.">><</speech>>
<<speech "seraphine">><<say "seraphine" "Of course, Lady Meridia. I'll have it arranged tonight.">><</speech>>
<<name "lysara">> straightens. A little colour comes back.
<<speech "lysara">><<say "lysara" "Hold on. I didn't agree to //forty-seven//—">><</speech>>
<<speech "meridia">><<say "meridia" "You said anything I want, dear. We all heard you.">> She doesn't even look at <<name "lysara">>. <<say "meridia" "Thank you, Seraphine. You're a treasure.">><</speech>>
<<name "lysara">> looks at <<name "seraphine">>. Already filed. Already scheduled.
<<speech "lysara">><<say "lysara" "...meddling old jellyfish.">> Mumbled into her hand. Quiet enough to pretend she didn't say it. Her eyes flick to <<name "meridia">>.<</speech>>
<<name "meridia">> raises one eyebrow. Just one. Sighs and sits back.
----
<<speech "lysara">><<say "lysara" "Security?">><</speech>>
<<name "valkra">>. Head of Security. Drakhari. To <<name "lysara">>'s right.
Compact. Muscular. A weapon at rest. Drakhari military-issue "uniform" — armoured plates on chest and hips, everything else bare. Crimson skin over powerful muscle. Prehensile tail. Sharp yellow eyes.
<<scene "council/council-valkra.webp" "Council · Security · Valkra">>
<<slime "Strong mate. Hot inside. Force her down. Fill her. She'd fight and lose—">>
<<speech "valkra">><<say "valkra" "Nothing to report.">> Three words. Arms fold.<</speech>>
Then her eyes slide to <<name "lysara">>.
<<speech "valkra">><<say "valkra" "The outburst on the broadcast. I saw your loss of composure, Princess.">> Arms fold tighter. <<say "valkra" "I thought I trained you better than this sort of thing.">><</speech>>
<<name "lysara">>'s nails drag slowly across the table surface. Her eyes close. Open. Roll ceiling-ward.
<<speech "lysara">><<say "lysara" "Meridia already—">><</speech>>
<<speech "valkra">><<say "valkra" "Meridia is medicine. I am security. There is a difference.">> Her expression softens as it turns to <<name "seraphine">>. <<say "valkra" "Seraphine. Training hall, tomorrow at dawn. Would you see that she is there? Thank you.">><</speech>>
<<speech "seraphine">><<say "seraphine" "Yes, Lady Valkra.">><</speech>>
<<speech "valkra">><<say "valkra" "If she has genuine business — Meridia's visits, for instance — tell me, and we will move the session.">> A pause. <<say "valkra" "If she simply does not //feel// like it, contact me directly.">><</speech>>
<<speech "seraphine">><<say "seraphine" "Understood, Lady Valkra.">><</speech>>
<<speech "valkra">><<say "valkra" "Thank you, Seraphine.">> Her gaze slides back to <<name "lysara">>. <<say "valkra" "If only your discipline would rub off on the princess.">><</speech>>
<<name "lysara">> exhales through her nose. Her jaw tightens. She doesn't look at anyone.
<<speech "lysara">><<say "lysara" "Wonderful.">> To nobody in particular. <<say "lysara" "Home for an hour, and I've been told off by my two most senior members of staff.">><</speech>>
A glance at the two of them. Neither looks remotely sorry. She straightens, gathers up what's left of her smile.
----
<<speech "lysara">><<say "lysara" "Engineering? Is the Eastern expansion ... on schedule?">><</speech>>
<<name "prisma">>. Head of Engineering. A Gemlith.
Small. Delicate. Porcelain-white skin. Crystal formations growing from her shoulders and crown — purple and teal, casting tiny rainbows. Clothing entirely crystal plates, leaving midriff, arms, and legs bare. Like a sculpture someone forgot to finish dressing.
<<scene "council/council-prisma.webp" "Council · Engineering · Prisma">>
<<slime "Soft. Exposed. Mount her. Crack through that crystal shell—">>
<<speech "prisma">><<say "prisma" "The eastern expansion is //on schedule!//">> Her voice is soft, precise, ladylike. She gestures and a holographic model of a building complex appears above the table. <<say "prisma" "I've added a decorative crystal motif to the central atrium that I think really //elevates// the space. And the foundation work on Block 14 used a new volcanic basalt composite I've been developing that's seventeen percent stronger than standard—">><</speech>>
<<speech "lysara">><<say "lysara" "That's very nice, Prisma, but is it—">><</speech>>
<<speech "prisma">><<say "prisma" "—and the residential units in the southern wing have crystal-vein heating throughout the floors, which I'm very proud of because usually veins that thin fracture under thermal stress but I found a way to—">><</speech>>
<<speech "lysara">><<say "lysara" "Prisma. Is. It. On. schedule?">><</speech>>
<<speech "prisma">><<say "prisma" "...yes, my lady. That was the first thing I said.">><</speech>>
<<speech "lysara">><<say "lysara" "Oh. I, er— well. That's wonderful, then. Thank you.">> She's already looking at the next seat.<</speech>>
<<name "prisma">> pouts. The hologram flickers out, half the southern wing still unexplained. Her crystals dim with visible disappointment.
----
<<speech "lysara">><<say "lysara" "Entertainment?">><</speech>>
<<name "kira">>. Head of Entertainment and Culture. Vyx. Practically bouncing — fluffy auburn ears perked up, tail swishing.
Warm golden skin. Crop top and mini-skirt. Fox ears enormous and expressive. Tail a vast plume of copper fur. Amber eyes sparkling with perpetual amusement.
<<scene "council/council-kira.webp" "Council · Media · Kira">>
<<slime "Eager. Willing. She'd take it without a fight. Pump her. Again. And again, and—">>
<<speech "kira">><<say "kira" "Everything's AMAZING! Festival ratings through the ROOF! New nightclub fully booked! Oh and I'm launching a cook—">><</speech>>
<<speech "lysara">><<say "lysara" "Wonderful, Kira.">><</speech>>
<<speech "kira">><<say "kira" "—ing show, and I was thinking, a royal guest segment! You could do your—">><</speech>>
<<speech "lysara">><<say "lysara" "//No//. Moving on.">><</speech>>
<<name "kira">> beams. Already scrolling her communicator. Tail still wagging. Unbothered.
----
<<speech "lysara">><<say "lysara" "Technology?">><</speech>>
<<name "miri">>. Head of Technology and Communications. Faelix. Tiny. Iridescent skin. Translucent butterfly wings.
<<scene "council/council-miri.webp" "Council · Tech & Comms · Miri">>
<<slime "Small. Fragile. One tendril. Hold her still. Flood her—">>
<<speech "miri">><<say "miri" "Network throughput up fourteen percent since the new relay tower went online. Pix finished the firmware push for the eastern grid ahead of schedule. Latency down across all sectors.">><</speech>>
<<speech "valkra">><<say "valkra" "Miri.">> <<name "valkra">>'s voice cuts across the table.<</speech>>
<<speech "miri">><<name "miri">>'s wings slow. <<say "miri" "...yes?">><</speech>>
<<speech "valkra">><<say "valkra" "The security cameras. Sectors seven through twelve.">> Yellow eyes fixed on the Faelix like targeting lasers. <<say "valkra" "Still down. It is now week three.">><</speech>>
<<speech "miri">><<say "miri" "I delegated that to Ziri. She said—">><</speech>>
<<speech "valkra">><<say "valkra" "Ziri.">> Tail lashes once. <<say "valkra" "You gave critical security infrastructure to //Ziri//.">><</speech>>
<<speech "miri">><<say "miri" "She's perfectly capable when she—">><</speech>>
<<speech "valkra">><<say "valkra" "I went down to the server room myself. Last week. To ask about my cameras.">> A pause. <<say "valkra" "She was playing a game. On the //main// monitor. She held up one finger and told me to wait, because she was 'in a ranked match.'">><</speech>>
<<speech "miri">><<name "miri">>'s wings droop. <<say "miri" "...I'll talk to her.">><</speech>>
<<speech "valkra">><<name "valkra">> leans forward. <<say "valkra" "Your mother put //you// in charge of tech on Elysara, Miri. Not Ziri.">> Her tail curls, slow and thoughtful. <<say "valkra" "If you cannot make your own sister work — on security, of all things — perhaps the Queen of Glittervale would want to know. Perhaps she would think a change of leadership was in order.">> A beat. <<say "valkra" "Pix seems very diligent.">><</speech>>
<<speech "miri">><<name "miri">>'s antennae shoot straight up. <<say "miri" "You wouldn't. //Pix?// She colour-codes her //clipboard//—">><</speech>>
At the head of the table, <<name "lysara">> has sunk her chin into her hand. She watches the two of them go back and forth like a show she doesn't have to be in. For once, somebody else is getting it. Between <<name "miri">> and <<name "valkra">>, <<name "prisma">> has gone very still. Crystals dimming as tension crackles across the table on either side of her.
<<speech "meridia">><<say "meridia" "Valkra.">> From across the table. Gentle. Pointed. <<say "meridia" "Don't bully the girl. You don't mean a word of that, and she knows it.">> A sip of her tea. <<say "meridia" "And I am //not// having my Thursday tea with Aurelia turned into tattle time.">><</speech>>
<<name "valkra">>'s jaw tightens. Her eyes flick to <<name "meridia">> — a silent exchange. Something that might, on anyone else, be the corner of a smile.
<<speech "valkra">><<say "valkra" "The cameras will be fixed by end of week.">> Not a question. Eyes back to <<name "miri">>. <<say "valkra" "You will do it personally. Not Ziri.">><</speech>>
<<speech "miri">><<say "miri" "...Yes ma'am.">> Quiet. A little stung.<</speech>>
<<speech "valkra">><<name "valkra">> sits back. When she speaks again, the edge is gone. <<say "valkra" "Miri. You do good work. When it is //your// work.">> A beat. <<say "valkra" "Do not let her walk over you. Laziness spreads if you let it. Discipline her a little.">> Her tail flicks. <<say "valkra" "I can show you how, if you want.">><</speech>>
<<speech "miri">><<name "miri">>'s wings give a small, surprised flutter. <<say "miri" "...thank you. I think?">><</speech>>
<<name "lysara">> lifts her chin from her hand. Sits up a little straighter. The corner of her mouth twitches — the first smile she's managed all evening.
<<speech "lysara">><<say "lysara" "Great. So that's sorted.">> Brighter than anything she's said tonight.<</speech>>
----
<<speech "lysara">><<say "lysara" "Education?">><</speech>>
<<name "natsuki">>. Head of Education. Human. Young — early twenties. Japanese heritage. Sharp dark eyes, long black hair. The most dressed person in the room (a button-down and skirt — still showing more skin than she would have on Earth).
<<scene "council/council-natsuki.webp" "Council · Education · Natsuki">>
<<slime "Human. Compatible. Quick. Efficient. Breed now—">>
<<speech "natsuki">><<say "natsuki" "Enrollment up three percent. Integration metrics trending positive. The new mixed-species curriculum—">><</speech>>
<<speech "lysara">><<say "lysara" "Lovely, thank you.">><</speech>>
<<name "lysara">> doesn't look up. Her eyes are already on the door.
<<name "natsuki">>'s mouth closes. Her fingers tap the table once. Twice. Her foot shifts under the desk.
<<speech "meridia">><<say "meridia" "Lysara.">> Mild. Far too mild. <<say "meridia" "Natsuki has been building that curriculum for four months. You let her speak for five seconds.">><</speech>>
<<name "lysara">> freezes. The smile from a moment ago is gone. Her eyes flick toward <<name "meridia">>, bracing for it again—
<<speech "natsuki">><<name "natsuki">> sighs. Small and tired, and entirely deliberate. <<say "natsuki" "It's fine, Lady Meridia. Really. It's fine.">> She squares her tablet against the edge of the table. <<say "natsuki" "It's all in the written report. Her Highness can read it when she's rested.">><</speech>>
<<name "meridia">> holds the look a moment longer. Then lets it go, and gives <<name "natsuki">> the smallest nod.
<<speech "lysara">><<name "lysara">>'s cheeks warm gold. She clears her throat. <<say "lysara" "...I will. Thank you, Natsuki.">> And for once, it doesn't sound rehearsed.<</speech>>
<<name "natsuki">> just inclines her head. She doesn't make anything of it.
----
<<speech "lysara">><<say "lysara" "And //that's// the final report. Which is great, because I, er—">> Her eyes dart to the door. <<say "lysara" "—have a... //thing//. That I need to do. Urgently. Thank you all—">><</speech>>
She's out of her chair before the last word is out, already half-turned, already moving. <<name "meridia">> doesn't even rise. One hand shoots out and snaps around her wrist and <<name "lysara">> jerks to a halt mid-stride. <<name "meridia">> leans close and murmurs something too low for the council microphone to hear.
The feed cuts.
<<name "evelyn">> lets out a long, shaky exhale — your tendril has been //very// busy without you consciously directing it. She's flushed, breathing hard.
<<speech "evelyn">><<say "evelyn" "You just made me cum twice during a government briefing.">> She pants. <<say "evelyn" "Not sure if that's multitasking or disrespect.">><</speech>>
<<psi_to "Both.">>
She composes herself.
<<speech "evelyn">><<say "evelyn" "Now we've seen them. Six leaders between us and Lysara. Each one controls something we need.">> She pauses. <<say "evelyn" "And Seraphine — not a leader, she's a lock. Can't get to Lysara without dealing with the shadow first.">>
<<say "evelyn" "Let me break it down.">><</speech>>
<<choose "The Detailed Plan" "Intro_ThePlan">>/% Game Over — Valkra assaults the nest. Suspicion reached 100. %/
<center>''— GAME OVER —''</center>
You feel it before you hear it.
The outer perimeter goes first. Three Scouts on patrol — bright pings of awareness at the edge of your range — snuffed out in quick succession. Their signals muddling, softening, fading to sleep. The Faelix were faster.
<<thought "They're here.">>
----
//Ground floor.//
Your two Charmers are stationed at the exits — early warning, disguise-ready, your first line of deception. Through the link you feel them //see// it: the front door ripped from its frame by a Gemlith enforcer. <<name "valkra">> striding through first, wings spread, gold armour catching the early light. Behind her — Drakhari warriors fanning left and right. Aetheri peacekeepers phasing through the walls with barriers already raised. A Nerethis medical team coming through the back entrance, arms full of sedative kits. Faelix buzzing overhead, mapping the floorplan. Vyx at the perimeter, projecting calm.
Every species. Every discipline. The full weight of the colony's security apparatus walking into your home.
Through the link, the Charmers' panic hits like a wave — and your Officers downstairs feel it too. The hive floods with alarm. You feel them scrambling below — Warriors moving to defensive positions, Sentinels hardening, Officers trying to coordinate through the sudden chaos of a dozen panicked signals at once.
The Charmers don't panic outwardly. They're built for this — deception is what they //are//. One ripples into a Drakhari soldier shape, the other reshapes into a Nerethis doctor. They step out of their hiding spots and walk calmly toward the door. Just two more peacekeepers. Nothing to see.
The Vyx at the perimeter barely glance at them. Then one tilts her head. Sniffs. Amber eyes narrowing.
<<speech "vyx">><<say "vyx" "Nice try, sweetie.">><</speech>>
The link carries their spike of //oh no// half a second before it goes soft.
Two more links dimmed. The hive is getting quieter.
----
//Upstairs.//
<<name "evelyn">> doesn't run.
She's sitting at the kitchen table. Datapad in front of her. Hands flat on the surface. She knew this was coming — the moment the suspicion reports started climbing, she started preparing. Not to escape. To protect you.
<<speech "evelyn">><<say "evelyn" "The creatures in the basement are sentient. All of them. They have rights — they feel pain, they feel fear, they have //names//. Please—">> her voice cracks, <<say "evelyn" "—please don't hurt them.">><</speech>>
<<speech "drakhari">><<say "drakhari" "Ma'am. Hands behind your back, please.">><</speech>>
She complies. Doesn't resist. Watches them file past her and down the stairs with an expression that's equal parts defeat and //relief//. At least it's over.
----
//The stairway.//
This is where every combat-capable drone in the nest has gathered. Your Officers coordinated it the moment the alarm hit — Warriors, Sentinels, and Officers packed into the narrow stairwell, the single entrance to the basement, the chokepoint they were //born// to defend. Through the link you feel their resolve: hot, crystalline, golden. //Here. We hold HERE.//
For a moment, you let yourself believe.
<<name "valkra">> comes down the stairs first. Alone.
She doesn't rush. Doesn't need to. Wings folded tight against her back in the narrow space, tail swaying behind her, those yellow predator eyes sweeping across your assembled forces. Every combat drone you have — Warriors bristling with heat, Sentinels hardened to maximum density, Officers blazing gold — all packed into this corridor, all ready to fight.
She looks at them. And through the link, you feel every single one of your drones //wilt//.
It's not a psychic attack. It's not pheromones. It's just //her// — centuries of combat experience radiating from every line of her body. The way she stands. The absolute absence of fear. The predator confidence of someone who's walked into a hundred fights worse than this and never once lost.
Your Warriors hesitate. Your Sentinels hold, but their barriers //flicker//. Your Officers' golden light dims — just slightly — as their calculations run the numbers and come back with nothing good.
Then a Warrior lunges anyway. Brave. Stupid. Tendrils lashing, heat blazing—
<<name "valkra">> catches the strike on her forearm like swatting a fly. Pins the Warrior against the wall with one hand. Doesn't even change her expression. A Nerethis combat-medic steps in behind her, sedative pressed to the drone's neck. Down. Asleep.
That breaks the dam. The rest of your Warriors charge — and <<name "valkra">>'s peacekeepers pour down the stairs behind her. A Gemlith enforcer walks straight into a Sentinel's crystal barrier. The barrier cracks against her body like glass hitting marble. She wraps her arms around the Sentinel and holds until the medic arrives. Your Officers project force — telekinetic barriers, psychic pressure, everything they have — and an Aetheri peacekeeper dismantles all of it in three seconds flat.
One by one, the combat drones fall. Not to violence — to overwhelming skill. <<name "valkra">> moves through the corridor like she's walking through a garden, directing her team with gestures. Every drone is caught, held, sedated. No membrane torn. Just //outclassed// so completely that resistance is a formality.
The survivors are pushed deeper. Retreating. The stairway is taken.
----
//Outer nest chambers.//
The Workers knew the moment the stairway fell. They felt it through the link — the combat drones going silent one by one, the hope draining from the hive like water from a cracked basin.
They're not working anymore. They've stopped. Huddled together in clusters in their separate chambers — three in one room, four in another — holding each other's hands and making soft bubbling sounds. Scared. Confused. Waiting.
When the peacekeepers enter each room, they don't sedate. There's no need. A Drakhari warrior kneels beside a group of Workers and speaks gently.
<<speech "drakhari">><<say "drakhari" "Hello. Can you stand up for me? Nobody is going to hurt you. We're going to take you somewhere safe.">><</speech>>
The Workers comply. They stand. They follow. One by one, each gets a slim metallic collar clipped around her neck — you feel the link //sever// as each one clicks shut. A psi-dampener. Their signals don't fade to sleep — they just //vanish//. Cut off. Like a door slamming shut.
Some of them reach for the peacekeepers' hands like children being led from a schoolyard. One trips on a resin ledge and a Gemlith catches her elbow.
<<speech "gemlith">><<say "gemlith" "Careful, little one.">><</speech>>
<<name "slimey">> is found behind a resin pillar. You feel her signal — bright, scared, but somehow still cheerful underneath it all. When a peacekeeper approaches, she holds out both wrists.
<<speech "slimey">><<say "slimey" "Am I in trouble?">><</speech>>
The peacekeeper — a young Aetheri with kind eyes — crouches to her level.
<<speech "aetheri">><<say "aetheri" "Yes, darling. A little bit. Please stand up for me.">><</speech>>
<<name "slimey">> stands. Follows. A collar clinks into place around her neck and her thoughts vanish from you.
The hive is so quiet now.
----
//The seedbed chamber.//
Your Sirens can't fight. They know it. Everyone knows it. But they plant themselves in front of the alcoves anyway — bioluminescent markings flaring with distress, arms spread wide, shielding the seedbed occupants with their own bodies. These women are //family//. They've fed them, monitored them, sung to them through the resin every night.
The Nerethis combat-medics enter. Same species. Same bioluminescent markings — but brighter, steadier. Sedation kits on their belts. Centuries of field experience in their posture. Both sides know how this ends if the Sirens resist. The combat-medics could dispatch them in seconds without breaking stride.
<<speech "nerethis">><<say "nerethis" "Step aside, please.">> The lead medic's voice is firm. Not unkind — but not a request either. <<say "nerethis" "We're here to extract these women. You can help us do this gently, or I can do it without you. Your choice.">><</speech>>
Through the link you feel the Sirens' anguish — a keening frequency of //they're taking them, they're taking our family, we can't stop them//. They know the stairway is gone. They know the Workers are collared. They know what happens if they refuse.
One Siren's arms lower. Then another. Heads bowed. Keening softly. Not because they want to — because there is no alternative that doesn't end with them unconscious on the floor and the women taken anyway.
<<speech "nerethis">><<say "nerethis" "Thank you.">> The lead medic's tone softens. She pauses — watching the Sirens' distress, the way their markings pulse with grief. Something flickers across her face. Despite everything — despite the //strangeness// of what this nest is — she can see these creatures genuinely love the women in those pods. <<say "nerethis" "I know this is hard. I can see how much you care about them. We'll be gentle. I promise.">><</speech>>
The Sirens comply. Hands shaking. Helping extract the women they've cared for — lifting them from the alcoves, supporting their heads, whispering apologies into unhearing ears. The medics work alongside them with quiet respect, handling the seedbed women carefully, narrating what they're doing.
<<speech "nerethis">><<say "nerethis" "Easy now. Supporting her neck. Good — you've kept her vitals stable. Well done.">><</speech>>
As they work, slim collars click around each Siren's neck. One by one, their links sever cleanly from the hive.
You feel them vanish.
----
//The breeding chamber. The last room.//
Three Officers and two Warriors. The last combat-capable drones in the nest. They've been fighting since the stairwell — retreating room by room, buying time, losing ground. You can feel them through the link: exhausted. Bruised. Membranes dulled with fatigue. But still standing. Still between the peacekeepers and you.
<<name "valkra">> steps through the doorway. Alone.
She surveys them. Arms crossed. Tail still. Those yellow eyes moving from one battered drone to the next — taking in the defensive postures, the raised barriers, the defiance in their flickering gold eyes.
<<speech "valkra">><<say "valkra" "It's over.">><</speech>>
Silence. The Officers hold their barriers. Waiting.
<<speech "valkra">><<say "valkra" "Your workers are in custody. Unharmed. Your sirens are helping my medical team. Your scouts and charmers are sedated and safe.">> She unfolds her arms. Not a fighting stance — an open one. <<say "valkra" "Every drone in this nest is accounted for except you five. There is nowhere left to retreat to.">><</speech>>
The lead Officer — your oldest, your strongest — holds for a moment longer. You feel her thoughts through the link: calculations, possibilities, escape routes. There are none.
<<speech "valkra">><<say "valkra" "I don't want to hurt you. You've fought well — better than I expected from organisms this young.">> A pause. Something that might be respect in her voice. <<say "valkra" "Stand down. Let the medics do their work. You have my word: no harm will come to any of you.">><</speech>>
The Officer looks at her sisters. At the Warriors, barely standing. At the barriers she's maintaining through sheer will.
She drops them. The gold light fades. She moves her arms up in surrender.
The others follow. One by one. Warriors last — still bristling, still hot, still //angry// — but compliant. The sedation team moves in quietly. Quick. Professional. The last five links go soft together.
//Sorry, father. We held as long as we could.//
----
You're last.
They find you compressed into a corner. Still. Trying to be inert matter — the same trick that worked on <<name "coral">>'s scanner a lifetime ago. It doesn't work on <<name "valkra">>.
She stands over you. Arms crossed. Tail lashing once — then still. Those yellow predator eyes taking in the nest you built. The resin walls. The empty seedbed alcoves. The evidence of everything you've done.
She doesn't speak. She doesn't need to. A containment team moves in with a sealed transport unit — humane, temperature-controlled, designed for xenobiological specimens. They're careful. Professional. Even //gentle//.
<<name "valkra">> watches them seal the unit. Then turns and walks away. Barks into her comm:
<<speech "valkra">><<say "valkra" "Good work everyone.">><</speech>>
----
<<choose "..." "GameOver_Captured">>/% Game Over — Milk ran out for 3+ days. Meridia calls it off and surrenders the nest. %/
<center>''— GAME OVER —''</center>
----
The nest is dying.
You can feel it through the hive-link — every drone growing weaker by the hour. Their movements sluggish. Their glow fading from vibrant colours to a dull, sickly grey. <<name "slimey">> hasn't bounced in two days. She just sits in the corner of the basement, arms wrapped around her knees, making small bubbling sounds that might be crying.
The seedbeds are worse. Without milk to sustain the drones who maintain them, the resin is cracking. The women inside are stirring — groggy, confused, starting to wake.
<<name "evelyn">> finds you in the breeding chamber. She looks exhausted — breasts aching, body pushed past its limits trying to feed an army alone. But it's not her voice that breaks the silence.
It's <<name "meridia">>'s.
<<speech "meridia">><<say "meridia" "$names.player.">> Gentle. Warm. Sad. She's standing at the top of the basement stairs, bioluminescent markings pulsing low and steady. <<say "meridia" "I can feel them dying. All of them.">><</speech>>
She descends the steps slowly. Looks at the drones — slumped against walls, barely glowing. Looks at the seedbeds — the resin flaking, the occupants twitching in half-consciousness.
<<speech "meridia">><<say "meridia" "This ends now.">> Not angry. Not disappointed. Just //certain//. The voice of a doctor making a difficult call. <<say "meridia" "I won't watch them starve, $names.player. I won't watch these women wake up in failing pods with no one to tend to them. And I won't let your drones suffer any longer.">><</speech>>
<<name "evelyn">> opens her mouth to argue — then closes it. She knows. She's known for days.
<<speech "meridia">><<say "meridia" "I'm calling Valkra.">><</speech>>
----
The peacekeepers arrive within the hour. There is no assault. There is no need.
<<name "valkra">> walks into the nest and finds nothing to fight. Warriors too weak to raise a fist. Sentinels crumbling where they stand. Officers slumped against walls, barely conscious. <<name "slimey">> holds out her wrists before anyone even asks.
<<name "meridia">> guides the medical team through — doctors moving between seedbeds, gently extracting the women, wrapping them in thermal blankets, starting IV fluids. Others kneel beside the weakest drones, offering nutrient pouches — the drones latch on immediately, desperate, too hungry to be afraid. Professional. Kind. Efficient. The drones are collected without resistance. Some of them thank the peacekeepers. One Worker offers a Drakhari soldier a hug. The soldier — to her visible confusion — accepts it.
<<name "evelyn">> sits at the kitchen table upstairs. Hands flat. Cooperating. She doesn't cry until they take you away.
<<name "meridia">> is the last to leave. She pauses at the top of the stairs. Looks back at the empty nest — the resin already dulling without living things to sustain it.
<<speech "meridia">><<say "meridia" "I'm sorry.">> Quiet. To no one in particular. Or maybe to everyone.<</speech>>
----
<<choose "..." "GameOver_Captured">>/% Shared aftermath for Suspicion and Starvation game overs — life in captivity %/
----
//Three days later.//
You're processed at a Federation holding facility on the edge of the colony. Temporary. Clinical. White walls and humming scanners. They catalogue everything — every drone, every sample, every scrap of resin scraped from the basement walls. They're thorough. They're professional. They're //fascinated//.
You and the drones are kept together in a holding bay. Slim tracking collars on every drone — silver bands that sit flush against their membranes. They can track every drone's location in real time, listen to hive-link traffic, and if they ever need to, shut the connection down with a single remote command.
They don't. Not yet. They want to //study// you.
----
//Two weeks later.//
You're moved again. This time to somewhere permanent.
The facility is purpose-built. A large enclosed compound on the outskirts of the colony — high walls, but no roof over the central courtyard. Open sky. Real sunlight. An indoor wing with temperature-controlled chambers, observation labs, and living quarters. An outdoor area with actual //ground// — grass, rocks, a small pond that the Sirens discover within thirty seconds of arrival and refuse to leave.
It's a zoo. A very nice, very humane, very well-funded zoo.
A small science team is assigned — four researchers, rotating shifts. A security detail of six peacekeepers, mostly Drakhari, overseen by an Aetheri liaison. They're not hostile. They're not cruel. They bring food. They provide resin — measured amounts, on a schedule. Occasionally they bring //entertainment//: holopads loaded with nature documentaries, puzzle toys, art supplies that <<name "slimey">> immediately covers in purple handprints.
The drones are allowed to build. Within days, the indoor wing sprouts resin walls — a nest taking shape in the chambers they've been given. The researchers watch through observation windows, taking notes, whispering excitedly to each other. The security team watches too — but they're mostly bored. Your drones aren't a threat. Everyone knows it.
The seedbed alcoves go up. Smooth. Curved. Empty.
<<name "slimey">> puts a pillow in one of them. Tucks it in. Pats it. It's not the same. But it makes her feel better.
----
//The collars.//
Every drone wears one. Silver-grey, slim, flush against the membrane. They can't remove them — the material is bonded at a molecular level. Each collar tracks location, monitors hive-link activity, and contains a psi-dampener that can sever the link remotely.
They don't activate them. The researchers want to observe the hive functioning naturally. But the //option// is always there — a reminder, humming against every drone's neck. You can feel it through the link: a faint background buzz in every signal. The sound of surveillance.
On rare occasions — supervised outings, medical appointments, the time <<name "slimey">> escaped into the garden next door and had to be retrieved — the security team activates a single collar. The drone goes silent on the link. Isolated. Alone. It lasts minutes at most. It feels like hours.
They always reactivate it. They're not cruel. But they //can// be, and everyone remembers that.
----
//<<name "evelyn">>.//
Converted colonists are identified through medical screening and undergo deprogramming. A gradual process — gentle, clinical, unhurried. Overseen by <<name "meridia">> personally. They all make full recoveries. None remember what happened to them.
<<name "evelyn">> is different.
Federation psychologists assess her for weeks. Their conclusion: permanent xenobiological bonding. Irreversible. She cannot be deprogrammed because there is nothing //to// deprogram — her devotion to you is indistinguishable from genuine love.
They classify her as a victim. No charges.
She visits three times a week. The visits are... intimate. Explicitly so. The research ethics board approved it as "conjugal interaction for the ongoing psychological wellbeing of the bonded subject." What that means in practice is: <<name "evelyn">> comes in, the observation glass goes opaque on her side (not theirs), and the researchers watch through their instruments while you breed her on the nest floor.
They take //extensive// notes. Pheromone levels. Bonding reinforcement metrics. Reproductive behaviour. <<name "evelyn">> stopped being embarrassed about the audience weeks ago. She waves at the camera sometimes. The researchers pretend they don't see it.
<<name "slimey">> cries every time she leaves. Every single time.
----
//Settling in.//
The days settle into routine. And something unexpected happens: the walls between captor and captive start to blur.
It begins with the science team. Four researchers — a Faelix, an Aetheri, a Nerethis, and a human — rotating shifts, twelve hours each. At first they observe from behind glass. Clipboards. Scanners. Professional distance.
Then <<name "slimey">> waves at the Faelix. The Faelix waves back. The next day, <<name "slimey">> presses her face to the glass and makes a funny expression. The Faelix laughs. The day after that, she brings a ball.
Within a month, the researchers spend more time //inside// the enclosure than out. The Faelix plays catch with <<name "slimey">> every morning. The Nerethis sits with the Sirens by the pond, comparing bioluminescent frequencies — they find it professionally fascinating. The human researcher teaches the Workers card games. The Aetheri and the Officers play chess — the Officers lose, but the gap narrows every week.
The security team takes longer. Drakhari pride. Professional walls. But eventually — the Warrior who keeps pacing the perimeter catches a guard's eye. They start sparring. Gently. The guard pulls her punches. The Warrior doesn't mind. It's //something//.
----
//Protocols.//
Everyone on the team wears pheromone blockers. Standard-issue nasal filters, replaced every shift. Mental conditioning refreshers every two weeks. A remote oversight team monitors biometrics from a separate facility — watching for elevated heart rates, unusual proximity patterns, compromised behaviour.
The job comes with risks. Everyone who signed up for this posting knew that.
The first incident happens in month three. An Aetheri peacekeeper — night shift, solo patrol of the inner perimeter — gets too close to the nest entrance. Your pheromones are strongest there, concentrated by the resin. She doesn't notice her filter has degraded. Doesn't notice the warmth spreading through her until your tendril is already around her ankle.
By the time the response team arrives, she's pinned against a resin wall with her uniform pushed aside, gasping, your tendrils already working inside her. It lasts maybe forty seconds before they pull you off. She's flushed, disoriented, //furious// with herself.
The oversight team reviews the footage. The security lead gives you a stern talking-to through the glass. You receive a formal warning — privileges restricted for a week. No outdoor time. No ball with the Faelix.
<<name "slimey">> is devastated about the ball.
The pheromone blocker replacement schedule is tightened from every shift to every four hours. The oversight team adds a proximity alarm to the nest entrance.
Life continues. The walls between captor and captive keep blurring anyway.
----
//Life.//
The Warriors pace the perimeter. Restless. Caged. But fed, and warm, and sparring with guards who are starting to respect them.
The Officers play chess. They're getting better. The Aetheri liaison brings harder puzzles. Debates philosophy with them between games. Calls them "formidable" in her reports.
The Sirens tend the empty seedbeds. They know they're empty. They tend them anyway. The Nerethis researcher sits with them sometimes, in silence, just //being there//.
<<name "slimey">> waves at everyone. Every morning. Without fail. The whole facility waves back.
You sit in the centre of your pretend nest and feel the hive around you — every drone's signal, every collar's hum. Alive. Together. Contained. The researchers know your name now. They use it. The guards nod at you when they pass.
<<name "evelyn">> comes on Tuesdays, Thursdays, and Saturdays. She brings contraband snacks and gossip from the colony. She curls against your membrane and talks about nothing. Sometimes she falls asleep inside the nest and the guards let her stay until morning.
It is comfortable. It is humane. The sky is real and the food is warm and the people watching you through the glass are starting to feel like //neighbours//.
It is a very nice cage.
----
<center>//The coronation proceeds on schedule. <<name "lysara">> takes the crown. Humanity's fate is sealed — not today, not tomorrow, but inevitably.//
//You watch it on the holopad they gave you. <<name "evelyn">> holds your tendril and says nothing.//
//You failed.//</center>
----
<center><<button "Restart">><<run UI.restart()>><</button>></center><div class="name-card">\
<div class="name-card-tag">Personnel file · reopened</div>\
<div class="name-card-q">Before we begin — who are you?</div>\
<div class="name-card-sub">Or rather, who //were// you, before?</div>\
<label class="name-card-label" for="textbox-namesplayer">Your name</label>\
<<textbox "$names.player" "Alex">>\
</div>
<<choose_do "Continue">><<set $names.player to String($names.player).trim() || "Alex">><<goto "Intro_Awakening">><</choose_do>>Darkness.
Not the absence of light — you can perceive //everything// around you in a 360-degree field of sensation. The hum of a shuttle's engine. The recycled air pushing through vents. The warmth of a body nearby.
It's the absence of //you// that's dark.
<<scene "intro/shuttle-deep-space.webp" "Deep space · Erebus shuttle">>
You don't have eyes. You don't have a face. You don't have hands, or skin, or bones, or anything that makes a person a //person//.
What you have is a mass of purple-red membrane, tendrils, and a growing awareness that something has gone catastrophically wrong.
<<speech "evelyn">><<say "evelyn" "$names.player?">><</speech>>
A voice. Familiar. Warm. Scared.
<<speech "evelyn">><<say "evelyn" "$names.player, can you hear me? Can you... I don't know how this works. Can you understand me?">><</speech>>
<<name "evelyn">>. Your fiancée. The woman you've spent years beside, out at the edge of nowhere.
She's sitting in the pilot seat of a small shuttle. You're on the floor in front of her. You're //purple//.
<<choose_do "Try to speak">><<set $introApproach to "speak">><<goto "Intro_Response">><</choose_do>>
<<choose_do "Move toward her">><<set $introApproach to "move">><<goto "Intro_Response">><</choose_do>>
<<if Config.debug>>
<<choose "⚡ Speedrun to Colony Map (DEBUG)" "Debug_Speedrun">>
<</if>><<if $introApproach is "speak">>You try to say her name. You have no mouth to say it with, no throat, no breath. What you have is twelve tendrils and a membrane that responds to your intention with a half-second delay. You manage a wet gurgle, and a slow ooze toward her across the shuttle floor. Neither is dignified.<<else>>You try to reach her. You have no legs to walk on, no arms to reach with. What you have is twelve tendrils and a membrane that responds to your intention with a half-second delay. You manage a slow ooze across the shuttle floor, and a wet gurgle that was meant to be her name. Neither is dignified.<</if>><<unset $introApproach>>
<<speech "evelyn">><<say "evelyn" "Oh god.">> She presses a hand to her mouth. Her eyes are red — she's been crying. Maybe for hours. <<say "evelyn" "You //are// in there.">><</speech>>
<<scene "intro/evelyn-awakening.webp" "Erebus shuttle · cabin">>
She slides out of the pilot seat and kneels on the floor in front of you. Her hand reaches out — hesitates — then gently touches the surface of your membrane. You feel it //everywhere//. Every nerve you don't have anymore fires at once.
<<speech "evelyn">><<say "evelyn" "The slime specimen from Lab 4. The one from the planet. You... merged with it. During the explosion. The drive core, the containment breach, it all happened at once and you—">><</speech>>
Her voice cracks. She takes a breath and tries again.
<<speech "evelyn">><<say "evelyn" "Your body is gone, $names.player. But your mind is in //this//.">><</speech>>
She strokes your surface. It feels... very good. Distractingly good.
<<speech "evelyn">><<say "evelyn" "I've been studying these organisms for years. I know what you are now. I know what you can do.">> She swallows. <<say "evelyn" "And mankind has a problem.">><</speech>>
<<choose "Curl a tendril around her wrist" "Intro_Background" "You can't ask. She understands anyway.">><<name "evelyn">> takes a slow breath. Settles on the floor beside you, cross-legged, back against the copilot's seat. She takes your nearest tendril in both hands — gently, like holding someone's hand — and starts talking.
<<speech "evelyn">><<say "evelyn" "Okay. Context. Because you've been unconscious for a while and I have no idea how much you remember.">>
<<say "evelyn" "It's 2055. Two years since First Contact.">><</speech>>
She says it like a date on a gravestone. Then she shakes it off and keeps going.
<<scene "intro/federation-arrival.webp" "Archive · First Contact · Earth orbit · 2053">>
<<speech "evelyn">><<say "evelyn" "Six alien species. Thousands of years old, spanning hundreds of star systems. They offered us everything we'd ever dreamed of. Technology that made ours look like cave paintings. Post-scarcity economics. Cures for every disease humanity had ever named. Access to the stars themselves.">><</speech>>
She squeezes your tendril.
<<speech "evelyn">><<say "evelyn" "And we took the deal. Of course we did. The UEG debated for months, but it was never really a question.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Remember where we were. Fifteen billion people, and we were managing, but only just. Everything stretched thin — power, water, hospitals, housing. The whole plan was the colonies. Dig up whatever we could out there and ship it home. That was it. That was all we had.">><</speech>>
<<speech "evelyn">><<say "evelyn" "We'd had interstellar travel for what, twenty years? Our FTL was a bicycle next to their jet. And they turned up offering enough food, power and medicine for every single one of us.">><</speech>>
<<scene "intro/first-contact.webp" "Archive · Treaty of Peace and Alliance · 2053">>
<<speech "evelyn">><<say "evelyn" "Two years later, nobody on Earth wants for anything. Homes, food, medicine, energy. All of it, practically overnight.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The catch — and there's always a catch — is that the Federation is matriarchal. Has been for millennia. All-female. The other species phased out their males a long time ago, different reasons for each, but the result is the same across all of them.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Humanity is the only species in the Federation that still has men.">><</speech>>
Your tendril tightens around her fingers before you mean it to. She looks down at it, then at you, and something in her face softens.
<<speech "evelyn">><<say "evelyn" "Yeah. I know. Wait till you hear the rest.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The whole thing is run by one woman — Queen Ilythiria. Aetheri. She's been on that throne for thousands of years, longer than most human civilisations have existed.">> A dry laugh. <<say "evelyn" "They call it the 'Federation' but let's be honest with ourselves — it's a monarchy with //very// good branding.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Women can go anywhere. Federation colonies, our old colony worlds, wherever we like. The men got asked to come home. Off the colonies, back to Earth. //For now//.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Not out of space entirely. There are still men on the ships, retraining on Federation tech while they refit what's left of our fleet. But nobody lives anywhere with a man except Earth.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The official line is that it's a transition. The Federation hasn't had men for thousands of years. Their colonies aren't used to them, and they're very wary about just dropping a few million into the mix. So, slowly. Men back onto human colonies first. Then, eventually, maybe, Federation ones.">><</speech>>
<<speech "evelyn">><<say "evelyn" "That's what it says on paper.">> She tilts her head. <<say "evelyn" "What everyone on Earth actually //thinks// is that the Queen's playing the long game. She thinks in millennia, not decades. Keep the men at home, keep pushing the timeline back, and over a few centuries humanity follows the same path as everyone else. Phases its males out. Voluntarily. Gradually. On our own terms.">><</speech>>
She shrugs, and the tendril in her hands rocks gently with it.
<<speech "evelyn">><<say "evelyn" "And honestly? If it happened over that kind of timescale, it probably wouldn't even be our problem. That's a decision for humans a thousand years from now to make for themselves.">>
<<say "evelyn" "That was the deal. That's what the UEG signed up for.">><</speech>>
A pause. Her expression shifts — something darker crossing her face.
<<speech "evelyn">><<say "evelyn" "But things have changed. Something happened while you were out and it changes //everything//.">> She holds up a hand. <<say "evelyn" "But first — let's talk about what happened to //you//. About Erebus. About yesterday.">><</speech>>
<<choose "Press closer and listen" "Intro_Erebus" "What happened to me?">><<scene "intro/erebus-station.webp" "Archive · Erebus Station · 2055">>
<<speech "evelyn">><<say "evelyn" "Erebus Station. Deep space research platform, built before First Contact. Twenty-six crew — you ran the drive lab, I handled xenobiology. You were building humanity a better FTL engine. Project Starfire. I was studying the things that lived on the planet below. Four years together on the edge of nowhere, just us and the stars and more coffee than any two people should consume in a lifetime.">><</speech>>
<<speech "evelyn">><<say "evelyn" "When the treaty was signed, men could still crew ships. But Erebus isn't a ship. It's a permanent station, halfway to being a colony, and men weren't supposed to be on it at all.">>
<<say "evelyn" "Except we're so far out in the black that nobody checked. Two years, and the bureaucracy never caught up.">><</speech>>
She half-smiles.
<<speech "evelyn">><<say "evelyn" "Until a few weeks ago, when someone in Federation bureaucracy finally read our crew manifest and sent peacekeepers to collect the men.">><</speech>>
She looks away. Jaw tightening.
<<speech "evelyn">><<say "evelyn" "They were polite about it. Non-violent. Professional. Just doing their job — come in, gather the human males, take them home to Earth where they belong.">>
<<say "evelyn" "But it was tense. Nobody on our crew wanted to leave. Nobody was violent either, though. Just... a standoff. Emotions running high, everyone scared, nobody making the first move.">><</speech>>
<<scene "intro/slime-release.webp" "Erebus Station · Lab 4">>
<<speech "evelyn">><<say "evelyn" "And then one of the peacekeepers — trying to be helpful, god bless her — started moving research materials that were 'in the way' of the evacuation. She found the slime containment pen. Looked at the specimen inside. Thought 'well that doesn't look dangerous.' And opened it.">><</speech>>
A bitter laugh.
<<speech "evelyn">><<say "evelyn" "What followed was exactly what you'd expect from an alien organism — whose sole purpose in life is to fuck — let loose among a group of women. Some of the peacekeepers got a very hands-on introduction to xenobiology.">><</speech>>
<<speech "evelyn">><<say "evelyn" "You and the other men went after it. Kept it on the run, trying to recapture the specimen before it caused any more chaos. You cornered it in the drive lab.">><</speech>>
Her grip on your tendril tightens.
<<speech "evelyn">><<say "evelyn" "And then you went in after it alone. Because that's who you are — the idiot who always has to be the hero.">><</speech>>
<<scene "intro/drive-explosion.webp" "Erebus Station · containment breach">>
<<speech "evelyn">><<say "evelyn" "The prototype drive core blew. Or maybe it imploded? Nobody really knows what exactly happened. But the result was that you and the organism merged. Your human body was destroyed completely, but your consciousness fused with the slime's biology.">><</speech>>
Something surfaces as she says it. Not a memory exactly — a feeling. Heat. White light swallowing the lab. Something cool and wet wrapping around you as the floor disappeared. Then nothing.
She wipes her eyes.
<<speech "evelyn">><<say "evelyn" "To everyone else on that station, it looked like you died in the explosion and the slime was recaptured. I'm the only person who understood what actually happened, because I'd spent four years studying that exact species. I could see you in there. I //knew//.">><</speech>>
<<speech "evelyn">><<say "evelyn" "And I was //terrified//. The second anyone else worked out what you'd become, the Federation would take you. A human mind fused into a live alien specimen? They'd lock you in a lab somewhere and I'd never see you again.">> Her voice cracks. <<say "evelyn" "Or they'd decide you were too dangerous to exist at all.">><</speech>>
<<speech "evelyn">><<say "evelyn" "So I went to the captain. She'd known us both since day one — she was going to be at our wedding. I told her everything.">>
<<say "evelyn" "She didn't even hesitate. Signed the Starfire test shuttle over to me, scrubbed my name off the crew manifest, and told me to go //now//, while nobody was looking.">><</speech>>
<<speech "evelyn">><<say "evelyn" "And nobody was. The whole station — our crew, the peacekeepers — everyone was fixated on the breach. Sealing decks. Counting heads. Making sure nobody else died.">><</speech>>
She lets out a breath.
<<speech "evelyn">><<say "evelyn" "I put you in a sealed unit and ran. Left everything behind. My career, my colleagues, my entire life.">><</speech>>
She swallows.
<<speech "evelyn">><<say "evelyn" "I'd do it again in a heartbeat.">><</speech>>
A tendril winds around her wrist before you decide to do it. She looks down at it and laughs, wet and shaky.
<<speech "evelyn">><<say "evelyn" "Everyone else from Erebus is fine, by the way.">><</speech>>
She pinches the bridge of her nose.
<<speech "evelyn">><<say "evelyn" "And the boys — our male crewmates — on the transport home, apparently between the residual slime pheromones still in everyone's system and the peacekeepers trying to 'comfort' traumatised colleagues... there's now a photo circulating Federation channels. Our entire male crew. Grinning. Thumbs up. While elite Federation peacekeepers are on their knees.">><</speech>>
A groan.
<<speech "evelyn">><<say "evelyn" "Those absolute //idiots// may have made everything significantly worse for all of humanity. You'll understand why in a moment.">><</speech>>
<<speech "evelyn">><<say "evelyn" "But you and me — we're gone. You are //dead//, and thanks to the captain, I was never on that station's crew manifest.">> She hesitates. <<say "evelyn" "Earth still has records of me, sure. Birth certificate, university, the Erebus posting. But the Federation's been replacing every human computer system since the treaty, and half the old records never made the jump.">>
<<say "evelyn" "The rest of me is on paper, in a filing cabinet, in some Earth office nobody's visited in two years. They'll find it eventually. It'll just take them a //long// while. By then, we'll be somewhere they'd never think to look. As far as the Federation is concerned, we no longer officially exist.">><</speech>>
She looks at you. At the purple mass on the shuttle floor that used to be her fiancé.
<<speech "evelyn">><<say "evelyn" "And then, while you were unconscious, I picked up a broadcast. And everything changed.">><</speech>>
<<choose "Ripple toward the holo-display" "Intro_Problem" "Show me.">><<name "evelyn">> pulls up a recording on the shuttle's holo-display. Her hands are shaking slightly as she scrubs to the right timestamp.
Then she stops. Glances down at you. Hesitates.
<<speech "evelyn">><<say "evelyn" "Wait. Can you even //see// this? You don't exactly have eyes anymore.">><</speech>>
You don't. But the light from the display is //there// — washing across your whole surface, colour and shape soaking through your membrane like warmth. Blurry for a second. Then sharp. Somehow, you can see it just fine.
You try to tell her so. What comes out is an enthusiastic full-body wobble, two tendrils flailing at the screen, and a wet //splorp// as you overbalance and slop sideways across the shuttle floor.
<<speech "evelyn">><<say "evelyn" "Okay! Okay. I'll take that as a yes.">> A small, startled laugh escapes her. <<say "evelyn" "Four years studying your species, and now I'm asking one questions. And it's //answering//.">> She shakes her head, grinning despite everything. <<say "evelyn" "Do you have any idea how many papers I could get out of you?">>
<<say "evelyn" "Now look, an official announcement from The Queen herself.">><</speech>>
The display flickers to life. A podium bearing the Federation seal — seven interlocking circles. Behind it stands <<name "queen">> <<name "ilythiria">>. She radiates calm the way a mountain radiates permanence — ageless and golden-skinned, silver hair swept into an elegant crown of braids, eyes that have watched civilisations rise and fall and found none of it particularly surprising.
<<scene "intro/queen-broadcast.webp" "Fed broadcast · Queen Ilythiria">>
She speaks. Unhurried. The voice of someone who has never needed to rush anything in three thousand years.
<<speech "queen">><<say "queen" "Citizens of the Federation. I address you today regarding the recent incident at the human research station designated Erebus.">><</speech>>
A pause. Her expression softens with practiced warmth.
<<speech "queen">><<say "queen" "A young man lost his life during a containment breach. These events are tragic, and they are being investigated with the gravity they deserve. I extend my personal condolences to the families and colleagues of Erebus Station.">><</speech>>
<<name "evelyn">> squeezes your tendril. You're the "young man" she's eulogising. Not dead — but nobody knows that.
<<speech "queen">><<say "queen" "I understand there are concerns about how this incident relates to our standing relocation protocols. Let me be direct.">><</speech>>
The <<name "queen">> folds her hands. Regal. Measured.
<<speech "queen">><<say "queen" "Yes, our peacekeepers were present on Erebus to carry out the agreed-upon relocation of human males to Earth. This is a standing order — one that humanity's own representatives agreed to at the time of the treaty. It is not punitive. It is an interim arrangement while we work together to determine what long-term coexistence looks like.">><</speech>>
<<speech "queen">><<say "queen" "The accident on Erebus does not change our position. Human males retain their freedom and dignity on Earth. I am actively working with human leadership to identify select colonies where male residents may be permitted to return in the coming years.">><</speech>>
A gentle smile.
<<speech "queen">><<say "queen" "We are not your enemies. We are your partners in building something that works for //everyone//. These things simply take time — and I have always believed that time is the one resource the Federation has in abundance.">><</speech>>
It's a strange thing to find comforting, coming from a woman who has ruled for longer than human history. But it is. For a moment, listening to her, you almost believe it's all going to be fine.
<<speech "evelyn">><<say "evelyn" "See? She's reasonable. She's diplomatic. She actually means well — I genuinely believe that.">> Evelyn's voice is tight. <<say "evelyn" "Keep watching.">><</speech>>
The <<name "queen">>'s expression shifts — warmer now. More personal.
<<speech "queen">><<say "queen" "On a separate matter — I have news of a personal nature.">><</speech>>
She straightens slightly.
<<speech "queen">><<say "queen" "After millennia of service, I have decided it is time to pass the crown to the next generation. My daughter, Princess Lysara, will be crowned Queen of the Aetheri. The ceremony will take place on Elysara — our most harmonious colony — later this year.">><</speech>>
<<speech "evelyn">><<say "evelyn" "'Queen of the Aetheri.' That's the official title.">><</speech>>
Evelyn snorts softly.
<<speech "evelyn">><<say "evelyn" "Nobody pretends it stops there. Whoever wears that crown runs the whole Federation.">><</speech>>
On the display, the <<name "queen">>'s expression warms. Genuine pride.
<<speech "queen">><<say "queen" "Lysara is everything I could have hoped for in a successor. She is compassionate, principled, and deeply committed to the wellbeing of every species under our care — humanity included.">><</speech>>
A pause.
<<speech "queen">><<say "queen" "She has spent these last two years studying human culture, human history, human potential. She understands you in ways that I perhaps never fully could.">>
<<say "queen" "I believe she is uniquely suited to guide the Federation and humanity into this new chapter together. With patience, with wisdom, and with the same love for all peoples that has defined my reign.">><</speech>>
She steps aside. Gestures gracefully to someone off-camera.
<<speech "queen">><<say "queen" "Lysara, my dear. Come say a few words.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Here we go.">> Evelyn's jaw tightens. <<say "evelyn" "//Watch//.">><</speech>>
<<choose "Keep watching" "Intro_Lysara">>Princess <<name "lysara">> steps to the podium.
<<scene "intro/lysara-broadcast-calm.webp" "Fed broadcast · Princess Lysara · live">>
Young — barely three hundred. Beautiful in the way that Aetheri always are — silver hair cascading past her waist, golden skin catching the broadcast lighting.
Violet eyes that hold the camera with quiet intensity. She looks every inch the queen-to-be.
<<speech "lysara">><<say "lysara" "Thank you, Mother.">> Her voice is clear and warm. Genuine gratitude. <<say "lysara" "It is my honour to accept this responsibility. And I want to speak directly to our human members today — because you deserve to hear from the woman who will be guiding your future.">><</speech>>
She folds her hands. Earnest. Open.
<<speech "lysara">><<say "lysara" "I have spent the last two years studying humanity. Your history. Your culture. Your art, your music, your literature.">><</speech>>
A soft smile.
<<speech "lysara">><<say "lysara" "And I want you to know — you are //remarkable//. Your capacity for creativity, for love, for passion — it moves me. Genuinely. I have read your poetry and wept. I have listened to your symphonies and felt things I cannot name.">><</speech>>
A slow, warm ripple runs across your surface. You didn't decide to do that. A princess of the Federation, weeping over human poetry — it's hard not to be moved.
<<speech "evelyn">><<say "evelyn" "She means this part. She really does.">> Evelyn. Quiet.<</speech>>
<<speech "lysara">><<say "lysara" "I came to this role wanting to be humanity's greatest champion within the Federation. And I believe I can be.">><</speech>>
Her expression is open. Vulnerable, almost. A young woman trying to connect.
<<speech "lysara">><<say "lysara" "Your species has so much potential. So much beauty waiting to flourish under the right guidance.">><</speech>>
A pause. Something shifts — subtle. The warmth still there, but a shadow moving behind it.
<<speech "lysara">><<say "lysara" "But I would be dishonest if I said my studies showed me //only// beauty.">><</speech>>
Her voice remains measured. Careful.
<<speech "lysara">><<say "lysara" "I also studied your wars. Your empires built on conquest and domination. The way your men — historically — treated women. For millennia. Systematically. Institutionally.">><</speech>>
<<name "evelyn">>'s thumb goes still on your tendril. She doesn't look at you.
<<speech "lysara">><<say "lysara" "I read accounts that kept me awake at night. Things done to women — to //girls// — in the name of male authority. Male entitlement. Male //desire//.">><</speech>>
She swallows. Composure holding — but tight now.
<<speech "lysara">><<say "lysara" "And I told myself: this is history. These are not the men alive today. Humanity has grown. They have changed. The sins of the past do not define the present.">><</speech>>
A beat. She looks directly into the camera.
<<speech "lysara">><<say "lysara" "I //wanted// to believe that. My mother raised me to be patient. To see the best in every species. To trust that given time and kindness, anyone can evolve.">><</speech>>
<<speech "evelyn">><<say "evelyn" "This is where it starts going wrong.">><</speech>>
<<speech "lysara">><<say "lysara" "Regarding the Erebus incident—">> Her expression firms. <<say "lysara" "—a young man died. A containment breach occurred. I was prepared to grieve alongside humanity. To stand with you in tragedy. To prove that the Federation is your //family//.">><</speech>>
Mourned twice in one broadcast. It doesn't get any less strange.
<<speech "evelyn">><<say "evelyn" "Still you.">> Barely a whisper.<</speech>>
<<speech "lysara">><<say "lysara" "And then—">> her hand moves to the podium controls. Something //deliberate// in the gesture. This isn't impulsive. She's been preparing for this. <<say "lysara" "—I saw what happened //after//.">><</speech>>
She taps. The holographic image appears behind her. Large. Federation-wide broadcast quality.
It's the photo.
<<choose "Stare at the display" "Intro_Lysara_Decree">><<scene "intro/lysara-broadcast-angry.webp" "Fed broadcast · Princess Lysara · live">>
The <<name "queen">>'s expression — just visible at the edge of frame — goes perfectly, completely still.
<<speech "lysara">><<say "lysara" "HOURS after a colleague died!">> <<name "lysara">>'s voice has changed. Louder. The composure //gone//. <<say "lysara" "HOURS after a containment breach nearly killed an entire station — and our finest officers are kneeling in their own uniforms with human //dicks// in their mouths! I spent TWO YEARS making excuses for this species and THAT is what they do the MOMENT they get the chance!">><</speech>>
She slams her hand on the podium. The sound cracks through the broadcast.
<<speech "lysara">><<say "lysara" "Which is why my FIRST decree as Queen will be the complete and total sterilisation of ALL human males on Earth!">><</speech>>
<<speech "lysara">><<say "lysara" "Every single one! Men, boys — even the INFANTS! No exceptions! The DAY I am crowned, I will order every Federation and human medical facility on Earth to carry out the procedure — and any resistance will be met with the full weight of Federation peacekeeping forces. This is not a request. It is a //directive//.">><</speech>>
The chamber erupts. Not applause — //horror//. A Nerethis woman in the third row is on her feet, bioluminescent markings flaring bright with distress.
<<speech "gallery-nerethis">><<say "nerethis" "The INFANTS?!">> Her voice cuts through the noise like a bell. <<say "nerethis" "You would sterilise //babies//? That is CRUELTY! We took OATHS—">><</speech>>
A Drakhari soldier slams her fist on her chair.
<<speech "gallery-drakhari">><<say "drakhari" "Dishonourable!">><</speech>>
A Gemlith near the aisle has gone the colour of chalk, the light under her skin guttering.
<<speech "gallery-gemlith">><<say "gemlith" "Princess, you //can't//. That isn't — we don't //do// that.">><</speech>>
The <<name "queen">> hasn't moved. Three thousand years of ruling and she is simply //frozen// — hands still folded, expression locked in place. Caught completely flat-footed by her own daughter on live broadcast.
<<speech "lysara">><<say "lysara" "You think this is EXTREME?">> <<name "lysara">> shouts over the noise. <<say "lysara" "Let me tell you what happens if I DON'T! Every Federation woman becomes a TARGET!">><</speech>>
A Vyx is on her feet, ears pinned flat, tail bristled to twice its size.
<<speech "gallery-vyx">><<say "vyx" "Your Highness, //please//! The Federation freed us from people who did things like this!">><</speech>>
<<speech "lysara">><<say "lysara" "They'll corner Nerethis nurses in hospital corridors!">> Her voice rising, the words coming faster now. She swings round and points straight at the Vyx. <<say "lysara" "They'll have Vyx waitresses bent over tables!">><</speech>>
A Faelix lifts off her seat, wings buzzing.
<<speech "gallery-faelix">><<say "faelix" "Highness, there hasn't been a single incident report in two years! Not //one//—">><</speech>>
<<name "lysara">> talks straight over her. She jabs a finger toward the wings where her mother stands.
<<speech "lysara">><<say "lysara" "They'd get my MOTHER alone and push her down and SPREAD her legs and—">> her breathing turns ragged, <<say "lysara" "—put themselves INSIDE her, their human //penis// pushing into mother's body, over and over, and she'd have to FEEL them finish — feel their seed PUMPING into—">><</speech>>
<<scene "intro/lysara-broadcast-rant.webp" "Fed broadcast · Princess Lysara · live">>
She's gasping. Knuckles white on the podium. She swallows hard and keeps going.
<<speech "lysara">><<say "lysara" "Then they'd do it to ME! Some — some fat, sweating human man with his gut hanging over his belt — not even a SOLDIER, just some — some office worker with //nothing// going for him — and he'd pin my wrists with one hand, just ONE hand, and I couldn't STOP him—">> her breathing is ragged now, <<say "lysara" "—and he'd be PANTING and GRUNTING on top of me while he forces himself inside and I'd have to FEEL every thrust of his disgusting— until he FINISHED and left me lying there FULL of his—">><</speech>>
She stops. The chamber is //silent//. Not angry-silent. Not shocked-silent. //Uncomfortable//-silent. Every face in the audience staring at her with an expression she can't quite read.
A voice from somewhere in the middle rows — quiet, genuinely confused:
<<speech "gallery-aetheri">><<say "aetheri" "...Your Highness, you and Seraphine are both psi-combat masters—">><</speech>>
Every head in the chamber turns briefly to <<name "seraphine">>, standing motionless at the side of the stage. Not a flicker of reaction — except that her knuckles have gone very slightly white.
<<scene "intro/lysara-broadcast-flustered.webp" "Fed broadcast · Princess Lysara · live">>
<<speech "evelyn">><<say "evelyn" "That's Seraphine. Lysara's handmaiden. Never leaves her side — literally never. Trained bodyguard disguised as a servant.">><</speech>>
<<speech "lysara">><<say "lysara" "This is NOT—">> <<name "lysara">> cuts across the voice, loud, fast, flush blazing down her neck. <<say "lysara" "—this is not about COMBAT PROFICIENCY! This is about what they WOULD DO if they COULD! The INTENT! I will NOT let my people be //degraded// by—">><</speech>>
Movement off-camera. A hand closing on <<name "lysara">>'s arm.
<<speech "queen">><<say "queen" "Lysara.">> Quiet. A command disguised as a name.<</speech>>
<<speech "lysara">><<say "lysara" "—but Mother they //CAN'T//— did you //SEE//—">><</speech>>
<<speech "queen">><<say "queen" "//Lysara.//">> The <<name "queen">> is at the podium now, grip firm enough to end conversations. The smile she gives the camera is flawless — warm, apologetic, regal. <<say "queen" "My daughter speaks with great passion for the welfare of all Federation citizens. We will continue this conversation privately.">><</speech>>
<<scene "intro/lysara-broadcast-exit.webp" "Fed broadcast · Princess Lysara · live">>
She guides <<name "lysara">> away. Gently. Firmly. <<name "lysara">>'s mouth is still moving but her microphone has been cut. The last thing visible before the feed ends is the <<name "queen">>'s face, turned toward her daughter, with an expression every child in the galaxy would recognise.
//You are in SO much trouble.//
<<name "lysara">> sees it too. The fury drains out of her — shoulders dropping, violet eyes going wide. A three-hundred-year-old princess reduced to a scolded child in half a second.
Feed cuts. The Federation seal. Silence.
<<choose "Turn toward Evelyn" "Intro_Reaction" "What happened next?">><<name "evelyn">> pulls up another feed. News channels. Social media. Earth.
<<speech "evelyn">><<say "evelyn" "Humanity's reaction.">><</speech>>
It's chaos. Protests on every continent. Men and women in the streets. Signs. Fury. Fear. But beneath the anger — helplessness. You can see it in their faces.
<<scene "intro/general-sweating.webp" "Earth press feed · Gen. Cockfosters">>
A clip: General Sir <<name "humphrey">> Cockfosters at a press conference. Short, pudgy, moustache wilting with sweat. His Aetheri peacekeeper escorts tower over him — golden, beautiful, armed.
<<speech "humphrey">><<say "humphrey" "The Federation are our PARTNERS. Our FRIENDS. We share a bond of mutual—">><</speech>>
A reporter cuts in.
<<speech "press-reporter">><<say "human" "General Cockfosters — your personal bodyguards were replaced last month with Federation peacekeepers. If the sterilisation order came down, your own security detail would be the ones holding you down. Comment?">><</speech>>
Silence. <<name "humphrey">> looks right. The peacekeeper smiles at him. Warm. Fond. The way you'd smile at a favourite pet.
<<speech "humphrey">><<say "humphrey" "I — that is — they're lovely girls. //Lovely// girls. Very—">> His eyes drift downward. Linger. He catches himself with visible effort. <<say "humphrey" "—//professional//. Extremely professional. I have nothing but the utmost respect for their — their—">> He cups his hands in front of his chest. <<say "humphrey" "-hearts. Their warm, //kind// hearts.">><</speech>>
The peacekeeper on his right lets out a soft, refined giggle — musical, polite, clearly trying to suppress it. The other one covers her mouth with her fingers, shoulders shaking.
<<speech "humphrey">><<say "humphrey" "You wouldn't — I mean —">> He looks between the two peacekeepers. Searching their faces. <<say "humphrey" "—//you// two wouldn't actually — if the order came down — you wouldn't actually //do// it? To me? To us?">><</speech>>
The peacekeeper on his right steps forward. Faces the press corps — the cameras, the reporters, the frightened human faces beyond the podium. She projects her voice. Clear. Warm. Diplomatic.
<<speech "escort-left">><<say "aetheri" "The Federation Peacekeeping Division wishes to reassure all human residents — you are under //our// protection. We would never harm those in our care. That is not who we are.">><</speech>>
The other steps up beside her. Same posture. Same warmth projected outward to the room.
<<speech "escort-right">><<say "aetheri" "We are here to keep you safe. That is our only purpose. Regardless of policy announcements from—">> A careful pause. <<say "aetheri" "—//any// authority.">><</speech>>
<<speech "humphrey">><<say "humphrey" "Right. Right. Of course. You're — good girls. Big hearts.">> He pats the nearest one's arm with relief. <<say "humphrey" "I never doubted — not for a //second// — I just—">><</speech>>
He trails off. Looking at the screen. Where the princess heir of the Federation just said something very different. The peacekeepers' reassurance is warm. Kind. Real. The reporters are scribbling. The cameras are rolling.
<<name "evelyn">> pauses the video.
<<speech "evelyn">><<say "evelyn" "They mean it, you know.">> She nods at the screen — at the two peacekeepers addressing the press. <<say "evelyn" "They just stood up in front of cameras and told all of humanity they'd protect us.">><</speech>>
A pause. Harder.
<<speech "evelyn">><<say "evelyn" "But what happens when the order comes down anyway?">> She looks at you. <<say "evelyn" "Not from them — from //above// them. From Lysara. From the Federation Council. 'Begin sterilisation processing. All human males. Effective immediately.'">><</speech>>
She mimes the scenario with her hands. Matter-of-fact.
<<speech "evelyn">><<say "evelyn" "Those same two women — they get the order on their comms. Then they have to choose. Disobey the Federation — the government, the //law//, their Queen, everything they were raised to serve.">> She pauses. <<say "evelyn" "Or just... hold down a crying old man while a doctor does a little snip-snap. Ten seconds. Done. Move on to the next one.">><</speech>>
Every tendril you have snaps inward at once. A full-body flinch, pure reflex, left over from a body you don't have anymore.
<<speech "evelyn">><<say "evelyn" "Yeah.">> She winces. <<say "evelyn" "Exactly.">><</speech>>
----
<<speech "evelyn">><<say "evelyn" "If we tried to fight them, we'd lose.">> She pulls up a comparison on her datapad. Numbers. Cold, hard numbers. <<say "evelyn" "Humanity: one species. Fifteen billion people, nearly all of us on Earth now that the men have been brought home. A few colonies, skeleton crews, almost all women.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The Federation: six species. Trillions of people across hundreds of worlds. Technology tens of thousands of years ahead of ours. Individual soldiers who've been training longer than human //civilisation// has existed.">> She lets that sink in. <<say "evelyn" "It's not a war. It's not even a contest. It would be like — like an ant colony declaring war on a continent.">><</speech>>
<<scene "intro/federation-war.webp" "Archive · Aetheri peacekeepers">>
<<speech "evelyn">>She ticks off fingers. <<say "evelyn" "The Aetheri are the ruling power. Psychic abilities — telekinetic force, energy projection, precognitive reflexes. Their peacekeepers train for CENTURIES. A single Aetheri could walk through an entire human military base without breaking a sweat.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The Drakhari are natural soldiers. Crimson-skinned, winged, built for combat. Stronger than any human by a factor of ten. They fly. They run hot enough to melt through restraints. Their entire CULTURE is honour and warfare — they've been the Federation's muscle for millennia.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The Nerethis — they're the ones who'd patch us up afterwards.">> A bitter smile. <<say "evelyn" "Doctors. Healers. The kindest faces in the Federation. Now imagine your nice Nerethis GP — the one who smiles and checks your blood pressure — except she's also got decades of combat training on top of medical school. Their field medics could pin you to the ground, patch you up while you're still struggling, and apologise politely.">><</speech>>
<<scene "intro/federation-war-younger.webp" "Archive · the younger races">>
<<speech "evelyn">><<say "evelyn" "And even the younger races—">> she waves a hand, <<say "evelyn" "—the Gemlith are ultra strong and practically INDESTRUCTIBLE. You could hit one with a tank shell and she'd be mildly annoyed. The Faelix live in hives, and every hive's got its speciality. That gold one's Glittervale — tech. They built every communications network in the Federation. They could cut us off from each other in seconds.">><</speech>>
<<speech "evelyn">><<say "evelyn" "And the Vyx—">> she pauses. Thinks. <<say "evelyn" "—honestly? They'd probably just charm us all into surrendering voluntarily. Smile at us until we put down the guns ourselves.">> She snorts. <<say "evelyn" "Which — knowing the Vyx — they'd consider a public service. 'Don't worry, sweetie! It'll feel great! Here, let me help you with that rifle—'">> She laughs despite herself. <<say "evelyn" "God. Gotta love the Vyx.">><</speech>>
<<speech "evelyn">><<say "evelyn" "But let's imagine.">> She leans back. Hypothetical mode. <<say "evelyn" "Say we DID fight back.">><</speech>>
<<speech "evelyn">>She ticks the miracles off one at a time. <<say "evelyn" "Our soldiers beat women who've trained a hundred times longer than ours have been //alive//.">>
<<say "evelyn" "Our ships beat theirs. Without shields. We don't //have// shields.">>
<<say "evelyn" "And we outlast them. Us, who were barely feeding ourselves two years ago, against an economy where some of their //colonies// — not even the core worlds — outproduce all of Earth.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Somehow, SOMEHOW, we pull all of that off. Kick them off Earth. Take back our colonies. Win.">> She lets the fantasy breathe. <<say "evelyn" "We'd //still// have to surrender.">><</speech>>
<<scene "intro/federation-peace.webp" "Archive · Federation aid on Earth">>
<<speech "evelyn">><<say "evelyn" "Because the Federation isn't just //out there//. It's in here now. Woven into Earth.">> She starts listing. <<say "evelyn" "Two years since the treaty, and the Federation has rebuilt half of Earth. New hospitals. New schools. Fusion grids, clean water, transit that actually runs on time. Honestly? It's been the best two years in human history.">><</speech>>
<<speech "evelyn">><<say "evelyn" "But it's //their// tech. Federation engineers keep the lights on, Federation doctors run the wards, and we're the support staff, still learning how any of it works.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The Federation — metaphorically, economically, and in some cases quite literally — has us by the balls. And it's been fine so far because they've just been fondling them. But if they squeeze...">><</speech>>
She trails off. The implication hangs.
<<speech "evelyn">><<say "evelyn" "So even if we won, we'd lose. Completely dependent. Completely at their mercy.">> A bitter laugh. <<say "evelyn" "Best deal humanity ever made, right? Until the person holding the leash changes.">><</speech>>
----
She turns to you.
<<speech "evelyn">><<say "evelyn" "The Queen shut it down publicly. Damage control.">> She pulls up another clip — the Queen again. Calm. Regal. Reassuring.<</speech>>
<<scene "intro/queen-broadcast.webp" "Fed broadcast · Queen Ilythiria">>
<<speech "queen">><<say "queen" "My daughter's remarks do not reflect current Federation policy. I want to be absolutely clear: forced sterilisation would violate multiple Federation bylaws. Our personnel would refuse such orders. Our peacekeepers have sworn an oath to protect ALL members of the Federation — humanity included.">> A pause. Regal. Measured.<</speech>>
<<speech "queen">><<say "queen" "As for the image my daughter shared — our peacekeepers acted of their own volition to comfort grieving colleagues in a manner they deemed appropriate. I commend their compassion and willingness to support humanity's men during a difficult time.">> The faintest flicker of something behind her ancient eyes — amusement? Exasperation? Gone before you can name it. <<say "queen" "My daughter spoke from grief. A young man died under our watch. Emotions are raw. I ask the public to extend her the grace we would extend to anyone processing a tragedy.">><</speech>>
<<speech "evelyn">><<say "evelyn" "She's saying all the right things. And technically she's right — right NOW, today, Lysara couldn't do it even if she tried.">> Evelyn closes the clip. <<say "evelyn" "But here's the thing about politics, $names.player.">><</speech>>
She leans forward.
<<speech "evelyn">><<say "evelyn" "The Queen has been in power for MILLENNIA. Thousands of years of placing allies, shaping institutions, building loyalty. Every safeguard she's talking about? She BUILT them. The bylaws? She WROTE them. The leaders who'd refuse orders? They're loyal to HER.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The moment Lysara takes the crown — she inherits ALL of that infrastructure. And yeah, maybe on day one she can't force it through. The old guard pushes back. Bylaws get cited. Leaders say no.">><</speech>>
Her jaw tightens.
<<scene "intro/lysara-wargames.webp" "Archive · Princess Lysara · war games">>
<<speech "evelyn">><<say "evelyn" "But give her a year. Two years. Five. She starts replacing leaders with her own people. Rewrites the bylaws. Reassigns the military chain. The same way her mother built a system that protects humanity — Lysara builds a system that doesn't.">><</speech>>
<<speech "evelyn">><<say "evelyn" "And the thing that really keeps me up at night?">> She looks at you. <<say "evelyn" "Aetheri live for MILLENNIA. Her mother ruled for thousands of years. Lysara could rule for thousands MORE. By human standards she'll be queen //forever//. Every human alive today will be dead of old age and she'll still be on that throne. She has centuries to chip away at the safeguards. Centuries to get what she wants. Patience isn't even required — she just has to outlive everyone who disagrees.">><</speech>>
<<speech "evelyn">><<say "evelyn" "That's how power works. Not overnight. But INEVITABLY. Once she has the crown, the only question is WHEN — not IF.">><</speech>>
<<speech "evelyn">><<say "evelyn" "The coronation is still happening. And the Queen is stepping down REGARDLESS of what her daughter just said on live broadcast.">> She turns to you. <<say "evelyn" "We don't need to stop a decree on day one. We need to stop her from EVER having the power to make it happen. And that means stopping the coronation itself.">><</speech>>
A silence. The shuttle hums.
<<speech "evelyn">><<say "evelyn" "Before she's crowned, $names.player. That's what we have.">><</speech>>
You press yourself against her hand. She leans into it, just for a second.
She takes a breath. Then the softness leaves her face, replaced by something harder. Focused.
<<speech "evelyn">><<say "evelyn" "Which is why I have a plan.">> She looks at you. <<say "evelyn" "But first — I need to know if the biology works. If you can actually do what the original organism could.">><</speech>>
She swallows. Starts unfastening her jumpsuit.
<<speech "evelyn">><<say "evelyn" "I'm volunteering as your first test subject. Consider it... field research.">><</speech>>
Her eyes are wet but her hands are steady.
<<speech "evelyn">><<say "evelyn" "I love you, $names.player. Whatever you are now. Let me prove it.">> <<set $memories.ui_day to true>><</speech>>
A slow, warm pulse rolls through your whole body, the same ripple as before. //Yes.// She feels it under her palm and lets out a wet, shaky laugh.
<<choose "Watch Evelyn strip" "Intro_FirstBreeding">><<scene "intro/evelyn-first-breeding.webp" "Erebus shuttle · cabin">>
She unzips the jumpsuit the rest of the way and peels it off her shoulders, down to her waist. Her breasts are modest, familiar, beautiful. She pushes the jumpsuit the rest of the way down and steps out of it entirely. She stands before you naked in the dim shuttle light, shaking slightly but determined.
<<speech "evelyn">><<say "evelyn" "Okay. I trust you. I //love// you. Even like this.">> She lies back on the shuttle floor, spreading her legs. <<say "evelyn" "Just... do what comes naturally, I guess.">><</speech>>
What comes naturally turns out to be //very// natural.
A tendril extends — thicker than the others, more purposeful. Your body //knows// what to do even if your mind is still catching up. You can feel her warmth. Pheromone receptors. Chemical analysis. She's nervous and excited and wet.
Your tendril slides up her inner thigh, leaving a thin trail of luminescent slime on her skin. She gasps at the contact — your secretions are already working, a mild arousal enhancer absorbed through the skin. Her back arches slightly.
<<speech "evelyn">><<say "evelyn" "Oh... that's... wow, that's //warm//—">><</speech>>
The tip of your tendril finds her entrance. She's slick — partly her own arousal, partly your lubricating secretions mixing with her. You push gently. She's tight, familiar even like this, and the sensation of sliding inside her is—
//Incredible//.
It's not like sex was before. It's //more//. You feel every ridge of her inner walls, every flutter and clench. Your tendril is pure nerve — the sensitivity is orders of magnitude beyond what a human body could feel. She gasps and you feel the vibration of it //through her//.
<<speech "evelyn">><<say "evelyn" "God— $names.player— it's //big//— how is—">><</speech>>
You thrust deeper. Her hips roll to meet you, instinct overriding any hesitation. She moans, gripping the shuttle floor. Another tendril wraps around her thigh for leverage. A third traces up her stomach to her breast, circling her nipple — she cries out.
You're not being gentle. You can't be. <<slime "Breed her breed her BREED HER">> — and it takes everything you have to maintain even a shred of the man you were underneath the overwhelming drive.
She's clenching around you now, rolling her hips, panting.
<<speech "evelyn">><<say "evelyn" "Don't stop— please— I can feel it— you're so //deep//—">><</speech>>
You thrust harder. Faster. Your tendril swells inside her, stretching her. She screams — pleasure, not pain — and you feel the first payload building. Your whole body contracts, a pressure building at your core, channeling down the tendril buried inside her—
<<speech "evelyn">><<say "evelyn" "Do it—">> she gasps, <<say "evelyn" "cum inside me— //breed// me, $names.player—">><</speech>>
<<climax "Cum">>
<<breeding "human" "left">>The bulge of seed travels visibly up your tendril. She sees it coming, watches with wide eyes as it pushes toward her stretched entrance. It forces through her lips and //erupts// — hot, thick, flooding her womb in a single massive pulse. Then another. Then another.
<<name "evelyn">> screams and arches off the floor, shaking. Her orgasm hits like a wave — you can feel it in every muscle that grips your tendril, pulling your seed deeper. You pump more into her. She takes all of it, gasping, trembling, eyes rolled back.
You hold inside her for a long moment. Then slowly withdraw, a thick trail of luminescent slime connecting you to her spent, trembling body.
She lies there panting. Then looks down at herself.
<<speech "evelyn">><<say "evelyn" "Oh... oh wow.">> Her belly is already warm. A faint glow beneath the skin. <<say "evelyn" "It's //fast//. It's already—">><</speech>>
Her breasts are tingling. She cups them and watches — slowly, subtly, they begin to swell.
<<choose "Watch the transformation" "Intro_Transformation">>
<</climax>>Over the next twenty minutes, you watch the woman you love change.
It starts with her breasts — they fill out, growing heavier, rounder. Her nipples darken from their usual pink to a deeper rose, fattening and lengthening. She gasps with each new wave of growth, fingers sinking into flesh that wasn't there minutes ago. By the time it slows, she's easily doubled in size — full, heavy, with beads of milk already forming at the tips.
<<speech "evelyn">><<say "evelyn" "Holy shit,">> she breathes, hefting them. <<say "evelyn" "These are... $names.player, these are //huge//.">><</speech>>
Then her belly. The dome rises slowly, steadily — skin stretching smooth and taut as life grows within her. She strokes it with both hands, watching it push outward..
<<speech "evelyn">><<say "evelyn" "It's... it doesn't hurt. It actually feels //amazing//.">> She's panting softly, small orgasmic shivers running through her with each stage of growth. <<say "evelyn" "God, the //hormones//—">><</speech>>
Within the hour, she looks full-term. Massive belly, heavy milking breasts, glowing with a satisfied warmth. She sits up carefully, leaning against the shuttle wall.
<<speech "evelyn">><<say "evelyn" "Okay. Okay. It works. You can breed.">> She's stroking her belly, half-dazed. <<say "evelyn" "Now let's see what comes out.">><</speech>>
The birth is quick — barely a minute of effort. A purple mass slides from her, landing on the shuttle floor with a wet //plop//. <<name "evelyn">>'s belly deflates rapidly, returning to flat within seconds. She props herself up on her elbows, staring at the shape on the floor.
It looks like you. Slightly different colouring, same amorphous membrane. A small blob of living slime, maybe the size of a football. For a moment, you both just... stare at it.
<<speech "evelyn">><<say "evelyn" "Is it—">> Evelyn starts.<</speech>>
Then it //grows//.
<<scene "intro/first-drone.webp" "Erebus shuttle · first hatching">>
Fast. The blob elongates, expands, reshapes itself in seconds. Limbs form — arms, legs. A torso stretches upward. A head rounds out at the top. It's like watching a time-lapse of a sculpture being formed from wet clay. Within ten seconds, standing on the shuttle floor is a humanoid figure.
Female. Obviously female. Wide hips, modest breasts, a waist, long legs. The proportions are youthful - Maybe 160cm tall. Her skin is a translucent deep purple, faintly luminescent, with a slick sheen. Her face has features — eyes, nose, mouth — but simplified. Pretty in a generic, smooth way. Like a beautiful mannequin that's //almost// a person.
She opens her eyes. Blinks. Looks at you first — immediate recognition.
<<speech "slimey">><<say "slimey" "Dad!">> Bright. Certain. Then she looks at Evelyn. <<say "slimey" "Mum!">><</speech>>
Then she looks around the shuttle. At the cramped space. The metal walls. The humming engine. Something crosses her face — confusion. Searching.
<<speech "slimey">><<say "slimey" "Where's... home?">> She tilts her head. <<say "slimey" "Where's the nest?">><</speech>>
<<name "evelyn">>'s mouth hangs open.
<<speech "evelyn">><<say "evelyn" "She's — asking for a NEST. She's thirty seconds old and she wants a—">><</speech>>
The drone looks down at herself — at the slick, glistening sheen covering her entire body — and the confusion melts back into delight.
<<speech "slimey">><<say "slimey" "Wow, I'm //slimey//!">><</speech>>
<<name "evelyn">>'s mouth hangs open.
<<speech "evelyn">><<say "evelyn" "...Slimey it is, then,">> she mutters.<</speech>>
<<name "slimey">> bounces on her heels slightly, head tilting, looking between you both with a blank but eager expression. She's like a puppy waiting to be told what to do. Tail-wagging energy without the tail.
<<speech "evelyn">><<say "evelyn" "That's...">> Evelyn sits up fully, staring. <<say "evelyn" "That's not what I expected.">><</speech>>
<<speech "evelyn">><<say "evelyn" "I expected a //male//.">> She's circling the drone now, examining her. <<name "slimey">> follows Evelyn with her head, still smiling. <<say "evelyn" "The original species produced more of themselves. Males. I thought you'd be able to make an army that could //also// breed independently. Exponential growth.">><</speech>>
She waves a hand in front of the drone's face. The drone waves back cheerfully.
<<speech "evelyn">><<say "evelyn" "Is she... sentient?">> Evelyn says slowly. Watching the drone stare in amazement at the shuttle window. <<say "evelyn" "She can speak. She called you dad. Called me mum. Asked for a nest.">> A pause. <<say "evelyn" "She's not an animal, at least. That's... something.">><</speech>>
<<speech "slimey">><<say "slimey" "Course I'm sentient, Mum! I can think things //and// say things!">> She beams, delighted with herself. <<say "slimey" "This is a shuttle! We're in space! We came from—">> she points confidently at the window, <<say "slimey" "—Earth! That's the blue one. I've never been but I //know// it.">><</speech>>
<<name "evelyn">> goes very still.
<<speech "evelyn">><<say "evelyn" "...You've never been to Earth. //We// have.">> She looks at you slowly, the pieces clicking into place. <<say "evelyn" "She's pulling it from us. Our knowledge. Our memories. She woke up already knowing what we know.">> A beat. <<say "evelyn" "That's... that is going to be very useful. Or very dangerous. Possibly both.">><</speech>>
<<name "slimey">> isn't listening. She's beaming at the pair of you, radiating a simple, uncomplicated warmth — she loves you, loves <<name "evelyn">>, loves //existing//, all of it at once and without reservation.
<<speech "evelyn">><<say "evelyn" "Okay.">> Evelyn exhales. <<say "evelyn" "So you can't multiply on your own. Every single drone requires //you// personally. You're the bottleneck.">> She runs a hand through her messy hair. <<say "evelyn" "That changes the math but... it doesn't kill the plan. It just means you have to be //prolific//.">><</speech>>
<<name "slimey">> has wandered to the shuttle console and is poking the glowing buttons one by one, letting out a delighted "ooh!" at each colour that lights up under her fingertip.
<<name "evelyn">> watches her, then looks at you. A small, exhausted smile.
<<scene "intro/slimey-grown.webp" "Erebus shuttle · Slimey">>
<<speech "evelyn">><<say "evelyn" "Well. At least they're cute.">><</speech>>
Then she winces — a hand going to her chest. Her breasts are swollen, heavy, aching with the milk that's been building since the transformation. A bead of white wells at her nipple and rolls down the curve of her breast. She moans softly — half pain, half relief as the pressure shifts.
<<speech "evelyn">><<say "evelyn" "God — they're so //full// — it actually hurts—">><</speech>>
<<name "slimey">> perks up. Head swivelling. Nostrils flaring. Eyes locking onto the milk trailing down <<name "evelyn">>'s bare skin. She takes a step closer. Then another. Fixated.
<<name "evelyn">> looks down at herself. At the drone. At the hunger on that smooth, eager face.
<<speech "evelyn">><<say "evelyn" "You're hungry.">> Not a question. She tilts toward the drone. <<say "evelyn" "Come here.">><</speech>>
<<name "slimey">> latches on immediately, suckling enthusiastically.
<<speech "slimey">><<say "slimey" "Mmm~!">><</speech>>
Evelyn exhales slowly — relief flooding her face as the pressure eases. Her free hand finds the drone's head, fingers stroking the smooth membrane like it's the most natural thing in the world.
<<speech "evelyn">><<say "evelyn" "Oh... that's actually //really// good. I was so full it hurt.">><</speech>>
<<name "slimey">> pulls off for just a second, beaming up at <<name "evelyn">>.
<<speech "slimey">><<say "slimey" "Mum tastes //good//.">> A happy wriggle. <<say "slimey" "I'm getting //bigger//! I can feel it!">> Then she latches straight back on, humming contentedly.<</speech>>
<<name "evelyn">> looks at you over the drone's head. Smiles. Completely at peace.
<<speech "evelyn">><<say "evelyn" "This is the weirdest day of my life. And I say that having watched my fiance turn into a slime monster and impregnate me.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Also she's growing //again//. Is— is that from the milk? She's getting //taller// while she drinks.">> <<name "slimey">> is visibly stretching — filling out, lengthening, her frame expanding from blob-sized toward something much more imposing. By the time she unlatches with a satisfied pop, she's easily 180cm. Full adult. Tall, strong, and still smiling like she just had the best snack of her life.<</speech>>
<<speech "slimey">><<say "slimey" "All done! Thank you Mum!">> She stretches, towering now, and gives a happy little spin to show off her new size. <<say "slimey" "What do we do //next//?">><</speech>>
<<results>>
<<gain_broodmare "evelyn">>
<<gain_named_drone "Slimey" "Worker" "Evelyn">>
<</results>>
<<set $memories.ui_drones to true>><<set $memories.drone_worker to true>><<set $memories.ui_broodmares to true>><<set $memories.firstBreedingComplete to true>><<set $gamestate.day to 1>>
<<choose "Time passes" "Intro_ThePlan_Shuttle">><<scene "intro/shuttle-briefing.webp" "Erebus shuttle · en route to Elysara">>
<<name "slimey">> is asleep now — sprawled across a makeshift bunk along the cabin wall making soft bubbling sounds. The milk did its work.
<<name "evelyn">> sits beside you. She's pulled a grey tank top back — her body has mostly returned to normal after the birth, breasts still swollen and leaking through the thin fabric, but the belly flat again. She's holding a holodisplay. Thinking.
<<speech "evelyn">><<say "evelyn" "Okay. So. It works. You can breed, and you make drones.">> She taps the holodisplay absently against her knee. <<say "evelyn" "But that's not the interesting part. You don't just pump a drone out of a woman and call it a day. You also //permanently// bond her to you.">><</speech>>
<<speech "evelyn">><<say "evelyn" "There's a compound in the seed. Whoever you breed comes out devoted to you. Wants to help you. Wants to be bred again.">> She holds up a finger. <<say "evelyn" "But not mindless. She keeps her own mind. Her own personality. Her job, her friends, her skills. She's still //her//. She's just //yours// now.">>
<<say "evelyn" "Which means every woman you breed isn't a puppet. She's an //asset//.">><</speech>>
<<speech "evelyn">><<say "evelyn" "For me, it didn't matter since I was always going to help you.">> A small smile. <<say "evelyn" "But imagine someone hostile. Or just anyone. A peacekeeper. A stranger on the street. Suddenly she's a fully devoted, willing ally.">> She lets it hang. <<say "evelyn" "One breeding. That's all it takes.">><</speech>>
She picks the holo back up. The scientist becoming the strategist.
<<speech "evelyn">><<say "evelyn" "Which brings me to the plan. The core idea is simple.">> <<say "evelyn" "If you breed Lysara, all of this stops. She's yours. You tell her what to do, and we never have to worry about her sterilising mankind, because she won't //want// to anymore.">><</speech>>
<<scene "intro/lysara-signing.webp" "Fed archive · the decree">>
<<speech "evelyn">><<say "evelyn" "Getting to her is the hard part.">> Quieter now. <<say "evelyn" "To reach her, you're going to have to breed and subjugate a //lot// of women. Build drones. Build an army. Build allies, every one of them rewritten to serve you. They'll get you into places we'd never be allowed near.">><</speech>>
Your tendrils draw in. All of them. The whole mass of you goes still on the shuttle floor.
<<speech "evelyn">><<say "evelyn" "So yes. I'm asking my fiancé — who is now a slime monster — to breed his way through an alien colony to save mankind.">> A short, slightly unhinged laugh.<</speech>>
<<speech "evelyn">><<say "evelyn" "And me?">> She taps her chest. <<say "evelyn" "I'm your strategist. Your handler. I pick the targets, plan the way in and the way out, run the nest and the drones. Whatever else you need.">> A beat. <<say "evelyn" "I'm part of your hive now, $names.player.">>
<<say "evelyn" "Give me a map and a week and I'll have you a queue.">><</speech>>
She reaches out. Touches your membrane. You feel the next part come down the thread a half-second before she says it — warm, eager, entirely unashamed.
<<speech "evelyn">><<say "evelyn" "And here's the funny part.">> The grin comes, crooked and a little guilty. <<say "evelyn" "When I first worked this plan out, while you were still unconscious, it made me sad. The whole thing hinges on you sleeping with other women, and I //hated// that.">>
<<say "evelyn" "I knew about the bond. On paper. Now I can //feel// it, and it's rewritten that part of me completely. Now I want you with as many women as possible. I want to pick them. I want to help you run all of it. The hive. The drones. Our whole strange little family.">>
<<say "evelyn" "That's the bond talking, and honestly? It's great. I'm not going to fight it. I'm going to embrace it. It's going to make me very good at this.">><</speech>>
A long pause. Just the shuttle humming. <<name "slimey">> snoring softly.
<<speech "evelyn">><<say "evelyn" "So.">> She stands. Crosses to the pilot seat. Starts entering coordinates. <<say "evelyn" "Elysara. Six more hours — assuming //your// drive holds together.">> She pats the console. <<say "evelyn" "The Starfire prototype. Never got a proper flight test. First real run was me fleeing a space station with a slime in a box.">> She knocks on the hull, twice, for luck. <<say "evelyn" "Let's hope your engineering was as good as your biology.">><</speech>>
<<speech "evelyn">><<say "evelyn" "Get some rest. Both of you.">> That exhausted, determined, slightly-crazy smile. <<say "evelyn" "Tomorrow, we save humanity. One womb at a time.">><</speech>>
<<choose "Land on Elysara" "Intro_Colony">><<scene "intro/elysara-orbit.webp" "Elysara · high orbit">>
Six hours later, the shuttle breaks through Elysara's atmosphere.
Even through your membrane-senses, the planet is stunning. Warm air, rich with oxygen and the scent of living things. Green everywhere. The twin moons hang low on the horizon as <<name "evelyn">> sets the shuttle down in a clearing deep in the wilderness — dense tropical forest, well away from the main city.
<<speech "evelyn">><<say "evelyn" "Thirty kilometres that way.">> She nods toward a gap in the canopy. <<say "evelyn" "I'll carry you.">><</speech>>
She stuffs you — all of you, tendrils and membrane and indignity — into a hiking backpack. It's not comfortable. It's not dignified. But you fit, because you don't have bones.
The trek takes most of a day. You slosh gently in the backpack while Evelyn walks the forest trails. <<name "slimey">> bounces along beside Evelyn, poking at alien flowers and making delighted "ooh!" sounds at butterflies. Evelyn keeps having to steer her back on course.
The forest thins.
<<scene "intro/colony-farmland.webp" "Elysara · the agricultural belt">>
Fields open out in every direction, teal and gold crops you have no name for, running to the horizon under two pale moons.
A pair of Faelix work the rows near the depots — dusty-tan, antennae twitching, moth-patterned wings catching the sun, tool harnesses slung across their hips.
<<slime "Two. Small. Light. Pull them down out of the air and pin those wings and FILL them—">>
Their pheromone signatures reach you faintly across the field. Faint is still enough. <<name "slimey">> stops to crouch over a roadside flower and <<name "evelyn">> has to hook a hand through her arm to keep her moving.
Then the suburbs begin. White marble residences. Communal gardens. Clean paths winding between the houses, everything washed gold by the setting sun. And //women//. Everywhere.
<<scene "intro/colony-establishing.webp" "Elysara colony · Block 9">>
Nerethis. Gemlith. Aetheri. Vyx. A Drakhari peacekeeper somewhere down the street. A Faelix up on a balcony.
All of them. Every species. Everywhere you look. Bare feet on warm stone, sheer fabrics that hide nothing, skin and fur and scale on full display — all of it pumping pheromone signatures directly into your receptors through one inch of unzipped backpack.
<<slime "Fertile. Fertile. FERTILE. All of them. Every single one.">>
<<slime "The blue one at the fountain — cool and wet inside, markings lighting up when you fill her—">>
<<slime "The stone one. Warm. Solid. She'd hold so much seed—">>
<<slime "Gold ones on the wall. Two at once. Fox one on the steps, tail up, she'd //love// it—">>
<<slime "Red one on patrol. Strong. Hot. She'd fight. She'd LOSE.">>
<<slime "So many. So MANY. Breed them. Breed them ALL. Start NOW—">>
<<scene "intro/colony-targets.webp" "Through the gap in the zip">>
Through the gap in the zip, the street barely registers. Stone, light, sky — all of it washes out to a cold grey nothing your senses can't be bothered with.
The //women// are what you see. Each one burns. Body heat blooming through skin and fabric in bands of amber and rose, and low in every single one of them — behind the navel, deep in the pelvis — a hard little ember of red-orange heat. The hottest thing in the world. Glowing through them like a coal under a cloth.
<<slime "Wombs. WOMBS. Every glow is a womb and every womb is EMPTY. Waiting. Waiting for YOU—">>
You don't decide to look for it. You can't //stop// looking for it.
You've been on this colony for twenty minutes and you've already counted forty-seven of them without even //trying//.
<<slime "Forty-eight. Forty-nine. FIFTY. Count them all. Fill them all. Fill them ALL—">>
Your tendrils are coiled so tight inside the backpack that <<name "evelyn">> probably thinks she's carrying a bowling ball. Every fibre of your slime body is //screaming// to burst out and start. Start //anything//. Start with the nearest woman and don't stop until there's nobody left standing.
<<slime "Out. OUT. Through the zip. That one. She's close. She's RIGHT THERE. One tendril, just ONE—">>
But you can't. Not yet. Not here. Not in daylight, on an open street, with no plan and no cover.
<<name "slimey">> walks beside Evelyn, still poking at things but managing to look //almost// like a slightly odd colonist. Almost.
<<speech "evelyn">><<say "evelyn" "There,">> Evelyn murmurs, barely audible. <<say "evelyn" "Brand-new house, very end of the street. Nobody living in it yet — and someone's still on the doorstep.">><</speech>>
A pause. She pats the backpack — pats YOU — reassuringly.
<<speech "evelyn">><<say "evelyn" "Okay. So. I don't have documents. I don't have a cover story. I don't have ANYTHING prepared because I fled a space station a day ago with a slime in a box.">> She takes a breath. <<say "evelyn" "I'm going to wing it. Stay quiet in there.">><</speech>>
She steers <<name "slimey">> behind a tall flowering hedge at the end of the lot and points at the ground.
<<speech "evelyn">><<say "evelyn" "Sit. Stay. Don't touch anything.">><</speech>>
<<name "slimey">> sits, beaming, and is already stroking a leaf before Evelyn has turned around.
She straightens her posture. Puts on a smile. Walks toward the house like she belongs here.
<<choose "Listen from the backpack" "Arrival_Builder">><<scene "intro/arrival-builder.webp" "Block 9 · Residence 9-12">>
<<name "evelyn">> approaches the house. You feel a new signature through the backpack — warm, mineral-tinged, something almost sweet underneath the crystalline tang like sun-heated marble. A Gemlith. //So// close. Radiating warmth and solidity and a low hum of fertility that makes your membrane vibrate.
<<slime "Breed her. She's right there. One tendril through the bag—">>
Through the gap in the zip: a woman carved out of pale marble, lavender light glowing faintly beneath her skin. Purple crystals crown her head and crust her shoulders, and balanced on top of the crystals, slightly askew, is a bright yellow hard hat. Stone dust in her ponytail. A short crystalline wrap dress, a tool belt slung low on her hips, bare feet planted on the doorstep like she's listening to the foundations through her soles.
<<speech "evelyn">><<say "evelyn" "Um— hi! Sorry to bother you. Is this place— does someone live here?">><</speech>>
<<speech "facet">><<say "facet" "Just finished her this morning!">> Bright, quick, breathless. <<say "facet" "Isn't she lovely? Volcanic basalt foundations, twelve metres deep. Are you a new colonist?">><</speech>>
<<speech "evelyn">><<say "evelyn" "Yes! Just arrived. From Earth. I was supposed to have papers but they got lost in transit—">><</speech>>
<<speech "facet">><<say "facet" "Oh no! Don't worry, I can make you new ones.">> Rustling — a device pulled from her tool belt. <<say "facet" "Name?">><</speech>>
<<speech "evelyn">><<say "evelyn" "...Evelyn. Don't you need... proof? A reference? //Anything//?">><</speech>>
<<speech "facet">><<say "facet" "Why would I need proof?">> Genuine confusion. <<say "facet" "You're here. You need a house. There's a house. This isn't complicated.">><</speech>>
Tap. Beep. Just like that — an entire house. No paperwork. No background check.
<<speech "facet">><<say "facet" "Oh! But you'll need a health check. Colony protocol.">> <<name "facet">> taps her comm. <<say "facet" "Hi! Facet here, Block 9. New colonist, needs onboarding.">> A pause. <<say "facet" "Come inside while we wait! Let me show you around—">><</speech>>
<<name "facet">> ushers <<name "evelyn">> through the door before she can protest.
<<scene "../backgrounds/safehouse/entry-hall.webp" "Residence 9-12 · entry hall">>
<<speech "facet">><<say "facet" "Entry hall! Every arch is one solid piece. And the crystals—">> She taps one. It hums. <<say "facet" "C-sharp. All of them. You're welcome.">><</speech>>
<<scene "../backgrounds/safehouse/living-room.webp" "Residence 9-12 · living room">>
<<speech "facet">><<say "facet" "Living room! I grew the sofa base out of the same block as the floor, so it'll never, //ever// move.">><</speech>>
<<scene "../backgrounds/safehouse/bathroom.webp" "Residence 9-12 · bathroom">>
<<speech "facet">><<say "facet" "Self-cleaning bathroom! The tub's heated by the crystal veins. Fits three. Or one Drakhari.">><</speech>>
<<scene "../backgrounds/safehouse/bedroom.webp" "Residence 9-12 · bedroom">>
<<speech "facet">><<say "facet" "Bedroom! Balcony! Two moons!">> A beat. <<say "facet" "I didn't build the moons. I just pointed the window at them.">><</speech>>
She bounces from room to room pointing at things she built — which is everything — and <<name "evelyn">> follows, carrying you the whole way, nodding in all the right places.
<<scene "../backgrounds/safehouse/kitchen-day.webp" "Residence 9-12 · kitchen">>
<<speech "facet">><<say "facet" "And the kitchen! Replicator's in the wall. Forty cuisines and one //very// good cake.">><</speech>>
<<name "evelyn">> sets the backpack down carefully by a kitchen chair. The open zip ends up facing the room. You don't complain.
A knock at the open door. A new signature — cool, aquatic, //luminescent//. A Nerethis. Her chemical profile floods your receptors and your body //throbs//.
<<slime "Cool inside. Wet. Those markings would light up when you fill her—">>
<<speech "coral">><<say "coral" "Hello! Welcome to Elysara. I'm Doctor Coral — just a quick scan.">> Musical voice, harmonising vocal cords making every word a song.<</speech>>
<<name "evelyn">> sits. <<name "facet">> leans against the wall behind them, arms crossed, hard hat tilted, watching with cheerful interest.
<<scene "intro/arrival-coral-scan.webp" "Block 9 · Residence 9-12 · health check">>
<<name "coral">> runs a scanner across <<name "evelyn">>'s shoulder, one hand resting on her arm. A holographic display flickers to life — body outline, vital signs, hormone levels.
<<speech "coral">><<say "coral" "Oh! Elevated prolactin, active mammary tissue...">> She sets the scanner down with a kind, clinical smile. <<say "coral" "I'm going to do a quick manual check — just the breast tissue. Standard postnatal protocol. Alright?">><</speech>>
<<name "evelyn">> nods. Pulse hammering.
<<scene "intro/arrival-coral-exam.webp" "Through the gap in the zip">>
<<name "coral">>'s cool blue hands slide beneath the hem of <<name "evelyn">>'s tank top. Professional. Gentle. Her fingers find the underside of <<name "evelyn">>'s breast and press — carefully, methodically — checking for engorgement. <<name "evelyn">> sucks in a breath. Her nipples are //painfully// sensitive from the transformation, and <<name "coral">>'s cool fingers send a shock through her that has nothing to do with medicine. She grips the chair arms. Jaw tight.
A metre away, inside the bag, every tendril you own clenches at once. Those are //your// breasts — swollen with //your// milk, still aching from //your// first breeding — and a stranger has her hands all over them.
<<slime "Hers too. Both of them. Out of the bag, over the table, take the doctor first and let your mate watch—">>
<<speech "coral">><<say "coral" "Excellent fullness. Very healthy.">> <<name "coral">> cups the other breast, thumb tracing the edge professionally while <<name "evelyn">> bites her cheek. <<say "coral" "Milk production is exceptional. Your body has recovered beautifully.">><</speech>>
She withdraws. <<name "evelyn">> exhales like she's been holding her breath underwater.
<<speech "coral">><<say "coral" "Have you given birth recently, dear?">><</speech>>
<<speech "evelyn">><<say "evelyn" "...yes.">> Quiet. <<say "evelyn" "Recently. Yes.">><</speech>>
<<speech "coral">><<say "coral" "I thought so — this is very fresh.">> <<name "coral">> tilts her head. <<say "coral" "Is the baby here with you? Or still on Earth?">><</speech>>
You feel <<name "evelyn">> freezes. The baby is a hundred and eighty centimetres of purple slime, sitting behind a hedge at the end of the lot, almost certainly stroking a leaf.
<<speech "evelyn">><<say "evelyn" "She's— um. She's on—">> Earth won't hold up. //Here// definitely won't. <<say "evelyn" "She's not...">><</speech>>
Her mouth opens. Closes. Nothing comes.
<<name "coral">>'s eyes rest on <<name "evelyn">> a moment longer than they need to. The markings along her collarbone brighten, just slightly. Then she nods, and doesn't push.
<<speech "coral">><<say "coral" "Oh, dear. It's alright.">> Softly. <<say "coral" "You don't need to say it. You don't need to tell me anything more. But if you ever need postnatal support — my clinic is two blocks east, blue building with the reef garden. No judgement. Just care.">><</speech>>
<<speech "coral">><<say "coral" "Health status: clear.">> <<name "coral">> taps her device, then pauses. Looks at <<name "facet">>. <<say "coral" "Facet. Did you register her already?">><</speech>>
<<speech "facet">><<say "facet" "Yep! All done!">> Bright. Proud.<</speech>>
<<speech "coral">><<say "coral" "...without any identification. Without biometrics. Without a visa, or a transfer permit, or a //single// supporting document.">> The gentle chide of a professional who's seen this before. <<say "coral" "Facet, for all we know she isn't even legally allowed on Elysara.">><</speech>>
<<speech "facet">><<say "facet" "But she NEEDED a house! She was standing RIGHT THERE—">><</speech>>
<<speech "evelyn">><<say "evelyn" "Oh no— is that— have I caused a problem?">> <<name "evelyn">>'s voice goes small. <<say "evelyn" "I'm so sorry. It's just— a week ago, I lost my fiancé.">> Her breath catches.
<<say "evelyn" "I couldn't stay. Not in that house, not with all his things still there. I just grabbed a bag and got on the first transport out. I didn't even think about documents.">>
Her hand drifts to her chest — where her breasts are still swollen, still tender — and rests there, right where the doctor can see it. <<say "evelyn" "If I need to go somewhere and prove who I am, I'll try, but I don't— I really don't have //anything//—">><</speech>>
<<speech "coral">><<say "coral" "Oh, sweetheart. No no no—">> <<name "coral">> immediately softens. One hand on <<name "evelyn">>'s arm. That Nerethis warmth flooding back. <<say "coral" "I didn't mean it like //that//. It's good to have your papers, and it's good to be registered properly. That's all. It keeps everyone safe.">> A gentle look toward <<name "facet">>, who has the decency to look //slightly// sheepish. <<say "coral" "But this is not //your// problem, dear. Not after everything you've just been through.">><</speech>>
She squeezes <<name "evelyn">>'s arm. Reassuring.
<<speech "coral">><<say "coral" "Don't worry about a thing. I'll raise it with the registrar myself and make sure it gets to the right people. I'll backfill the file tonight from your scan and build out the medical records. You won't have to lift a finger.">>
<<say "coral" "Full colony status by tomorrow. UBI stipend, residential permit, medical file. Everything you need, all legitimate. Nobody will bother you about it.">><</speech>>
<<speech "facet">><<say "facet" "Wonderful!">> <<name "facet">> claps her hands, crystals chiming. <<say "facet" "Right! Now that's all sorted — shall we finish the tour? I haven't shown you the basement yet! The foundations are //gorgeous// down there, volcanic basalt with these natural crystal veins that—">><</speech>>
<<speech "evelyn">><<say "evelyn" "It's perfect. Really.">> <<name "evelyn">> cuts in, voice warm but firm. <<say "evelyn" "Thank you both. I just— I really need to rest now. Long journey.">><</speech>>
<<speech "coral">><<say "coral" "Of course, dear. We'll leave you to rest.">> <<name "coral">> smiles warmly, then her hand finds <<name "facet">>'s arm. Guiding. Firmly. <<say "coral" "Come along, Facet. Let's give her some peace.">><</speech>>
<<speech "facet">><<say "facet" "Right! Yes! Rest is very important! Good structural maintenance for the—">><</speech>>
<<speech "coral">><<say "coral" "Also—">> <<name "coral">>'s tone shifts. Still warm. But with an //edge//. The way a teacher says 'also' before mentioning homework. <<say "coral" "—you and I are going to have a little chat about your use of the colony registration platform. //Again//.">><</speech>>
<<speech "facet">><<say "facet" "Oh no—">> <<name "facet">>'s crystals dim. <<say "facet" "—not the presentation. Please. Not the compliance presentation again. I sat through it TWICE last month—">><</speech>>
<<scene "intro/arrival-departure.webp" "Block 9 · Residence 9-12">>
Their voices fade down the path. <<name "coral">>'s gentle lecturing. <<name "facet">>'s increasingly desperate protests about the compliance presentation.
Footsteps receding. Door closes. Lock engages. Silence.
<<name "evelyn">> slides down the wall. Unzips the backpack. You ooze out onto cool tile, tendrils stretching and //shaking//. A whole day sloshing in that bag, the last hour of it a metre from two alien women, pheromone signatures screaming from every direction, and you couldn't touch a single one.
<<name "evelyn">> puts a hand on your membrane.
<<speech "evelyn">><<say "evelyn" "I have no idea how that worked.">> She strokes you once. Then jumps to her feet. <<say "evelyn" "I need to get Slimey from behind that hedge before she wanders into someone's garden! Stay hidden.">><</speech>>
She adjusts her shirt over still-leaking breasts. Heads out.
<<choose "Wait for her to come back" "Arrival_Settling">>She's back within minutes, <<name "slimey">> in tow. The drone bounces through the front door, immediately fascinated by the light switches. Evelyn locks up behind her, turns—
<<slime "Door shut. Locked. Nobody watching. NOW.">>
And you lose it.
Hours spent in that bag. Hours watching bodies, exposed skin, pheromone signatures screaming FERTILE at you from every direction, an alien woman //touching your fiancée's breasts// while you sat in a bag and did //nothing//.
<<slime "Ours. OURS. The blue one had her hands on what's OURS. Take her back. Fill her. Mark her so every one of them can smell it—">>
<<thought "It's Evelyn. Slow down. Ask her—">>
<<slime "She's WET. She's READY. She WANTS it. TAKE HER.">>
<<name "evelyn">> doesn't even finish turning from the lock. Your tendrils explode from the mass of you — wrapping her waist, her thighs, spinning her and pressing her back against the door. Her eyes go wide.
<<speech "evelyn">><<say "evelyn" "$names.player— wait— we just got—">><</speech>>
A tendril pushes her top up. Another yanks her pants down to her knees. A third is already between her legs, pressing against her entrance — she's wet. Already. Without being touched.
<<speech "evelyn">><<say "evelyn" "Oh //fuck//—">> she gasps as you push inside. Her head cracks back against the door. <<say "evelyn" "Okay— okay yes— I guess we're doing this //now//—">><</speech>>
<<scene "intro/arrival-door-pinned.webp" "Safehouse · entry hall">>
You're not gentle. You can't be. Every ounce of frustrated breeding instinct from the last hour pours into her. You slam into her, tendrils gripping her hips, lifting her off her feet so she's pinned between you and the door. Her legs wrap around nothing — just slime — as you thrust deep and fast and //hard//.
<<speech "evelyn">><<say "evelyn" "God— $names.player— //harder//— you're—">><</speech>>
<<slime "Harder. Deeper. She asked. GIVE IT TO HER.">>
She's bouncing against the door with every thrust. Her breasts — still swollen from the first breeding, still leaking — sway and drip with each impact. You wrap a tendril around one, squeezing, and she screams.
It's fast. Brutal. Desperate. You've been holding back for //hours// and she's the only outlet and you need to //empty// yourself into something warm and willing and //hers//.
The payload builds in seconds. Pressure gathering at your core, packing down into the tendril buried inside her. You ram deep — as deep as her body allows—
<<slime "Breed her. BREED HER. Empty it ALL—">>
<<speech "evelyn">><<say "evelyn" "Do it— fill me— //fill me//—">><</speech>>
<<climax "Cum">>
<<breeding "human">>—and //release//. The first bulge rolls up the tendril, stretching her lips as it forces through, and erupts against her cervix. Then the next. Then the next. Bulge after bulge pumping into her, hot and thick, flooding her until there's nowhere left for it to go and it spills out around you, splattering the tiles. She shakes against the door, orgasming around your tendril, fingers scrabbling at the wall for purchase.
<<speech "evelyn">><<say "evelyn" "Holy— //shit//—">> she pants as you finally slow.<</speech>>
She catches her breath. Looks down at herself — pinned to a door by a slime monster, tendril still buried inside her, cum running down her legs, shirt bunched above her tits.
<<speech "evelyn">><<say "evelyn" "...okay.">> She exhales. <<say "evelyn" "You needed that. I get it.">> A shaky laugh. <<say "evelyn" "Welcome home, I guess.">><</speech>>
<<scene "intro/arrival-door-aftermath.webp" "Safehouse · entry hall">>
She slides down the wall when you release her. Sits in the puddle of your combined fluids, not caring.
<<speech "evelyn">><<say "evelyn" "I'm going to... sit here. For a minute.">><</speech>>
<<choose "Welcome Home" "Arrival_Settling_Finish">>
<</climax>>The night passes. Then the day after it.
In that time, you learn several things:
//First: the breeding cooldown.//
<<scene "intro/evelyn-pregnant-bed.webp" "Safehouse · bedroom">>
That desperate fuck against the door takes. It's been a full day since the shuttle, and her body is ready for you again. Belly rising, breasts re-filling, the familiar glow of new life taking root. Later that night, you try again. Nothing. Her body doesn't so much as flicker.
<<speech "evelyn">><<say "evelyn" "One breeding per woman per day,">> she notes, stroking a stomach that's already grown for the second time. <<say "evelyn" "Good to know.">> She strokes her expanding belly. <<say "evelyn" "I'm going to be doing this a lot, aren't I.">><</speech>>
<<gain_drones "Worker" 1 "Evelyn">>
//Second: the drones can build.//
<<scene "intro/arrival-nest-basement.webp" "Safehouse · basement">>
<<name "slimey">> and her new sister disappear into the basement without being told. Instinct. The slime biology knows what it needs — a nest, a core, a place to grow. They dig, reshape, expand on their own. By morning, Facet's beautiful basalt basement is something else entirely: a nest. A glossy skin of violet membrane spreads across the stone, laced with glowing magenta veins — secreted by the drones, it regulates temperature and humidity. Three body-shaped alcoves dug into the back wall. And through the old arch at the back, the drones keep going: hidden chambers carved into the bedrock. A space for captives. A breeding room. Storage.
From the outside: one more pretty villa on a street of pretty villas. From the inside: a growing hive.
<<name "slimey">> bounces up from the basement the next afternoon, covered in purple resin and beaming. She grabs <<name "evelyn">>'s hand and pulls her downstairs to show off their work. You ooze along behind.
<<speech "slimey">><<say "slimey" "Look! LOOK!">> She's vibrating with pride, gesturing at the walls. <<say "slimey" "Nest! We made the nest!">><</speech>>
<<name "evelyn">> looks around. Impressed despite herself.
<<speech "slimey">><<say "slimey" "Okay okay okay—">> <<name "slimey">> holds up fingers, counting things off like she's rehearsed this. <<say "slimey" "So. Our nest needs THINGS to work. I know this because—">> she taps her head, <<say "slimey" "—because dad put it in here. Like a list!">><</speech>>
She points at a hollow alcove in the wall — smooth, curved, person-shaped.
<<speech "slimey">><<say "slimey" "SEEDBEDS! Women go in here. The resin keeps them happy and sleepy and making milk and making sisters. //Lots// of sisters. More seedbeds means more everything!">><</speech>>
She holds up another finger.
<<speech "slimey">><<say "slimey" "MILK!">> She pats her tummy. <<say "slimey" "Sisters need milk every day or we get sad and slow and then we //die//.">> She says this cheerfully, like it's not horrifying. <<say "slimey" "Mum makes milk! Seedbeds make milk! More mums and seedbeds means more milk means more sisters means MORE NEST!">><</speech>>
Another finger.
<<speech "slimey">><<say "slimey" "RESIN!">> She slaps the wall proudly — it wobbles like jelly. <<say "slimey" "We make this! Sisters make resin every day. Resin builds more nest. More rooms. More seedbed slots. More EVERYTHING.">><</speech>>
Last finger.
<<speech "slimey">><<say "slimey" "And MATERIALS!">> She waves vaguely upward. <<say "slimey" "Stuff from outside. Metal bits. Crystal bits. Fancy bits. For the //big// upgrades.">><</speech>>
She turns to you and <<name "evelyn">> with both hands on her hips. Enormously satisfied.
<<speech "slimey">><<say "slimey" "So! Summary! Breed women, get milk and sisters. Sisters make resin. Resin builds nest. Nest holds more seedbeds. Seedbeds make more milk. Milk feeds more sisters!">> She grins. <<say "slimey" "It's a CIRCLE! A beautiful slimy circle!">><</speech>>
<<name "evelyn">> stares at her. Then at you.
<<speech "evelyn">><<say "evelyn" "...she's not wrong.">><<set $memories.ui_resources to true>><<set $memories.ui_seedbeds to true>><</speech>>
----
//Third: this is a utopia — and that means everyone is friendly.//
<<scene "intro/arrival-neighbours.webp" "Safehouse · front door">>
The next morning, there's a knock at the door. <<name "evelyn">> freezes. You ooze silently down the basement stairs.
It's the neighbours. Three women from the house next door — inviting her to a street brunch. A human woman in her thirties with a warm, open smile and a coral sundress that shows everything. A Vyx beside her, copper fox ears and a huge fluffy tail mid-swish, in a crop top and the shortest shorts you've ever seen. And a third, younger, who has clearly just rolled out of bed — oversized sleep hoodie slipping off one shoulder, little shorts, barefoot on the warm stone, squinting at the sunlight like it has personally wronged her.
From the basement vent, you watch them chat with <<name "evelyn">> on the doorstep. Their scent trails flood down through the house. You can sense //everything// about them — heartrates, arousal baselines, fertility indicators. The fox-girl's tail is practically wagging as she talks. The younger human is yawning and stretching, her tank top riding up to show a flat stomach.
Three. Right next door. //Always// right next door.
Evelyn politely declines the brunch.
<<speech "evelyn">><<say "evelyn" "Still settling in!">> She's cheerful. Normal. Nobody suspects anything.<</speech>>
<<scene "intro/colony-street.webp" "Through the basement vent">>
Over the day, you learn the rhythm of the street through the basement vents and window views. University students head for campus each morning — colony fashion being what it is, half of them look dressed for the beach rather than a lecture. A Drakhari patrol walks past at noon — two warriors in armoured bikinis that somehow count as official uniform, chatting casually, never once glancing at the house. A pair of Faelix flutter over in the afternoon, wings catching the sunlight, wearing barely anything because clothes interfere with flying.
Day and night, the colony parades itself past your hiding spot. You count. You catalogue. You //ache//.
//Fourth: you can talk to her.//
This is the discovery that changes everything.
That first night, while her belly is rising for the second time, something clicks into place. A thread — thin, warm, //alive// — connecting your mind to hers. You'd felt it with <<name "slimey">> from the start, but <<name "slimey">>'s mind is simple. Evelyn's mind is //rich//. Complex. //Her//.
<<psi_to "Evelyn?">>
She drops the datapad she's holding. Stares at you.
<<speech "evelyn">><<say "evelyn" "Did you just— I //heard// that. In my head. $names.player?">><</speech>>
<<psi_to "Yes. It's me. I'm— I can talk to you. Through the link.">>
Her eyes fill with tears. She presses a hand to her mouth. For a long moment she just... looks at you. This purple mass on her floor that used to be the man she loves. And now — for the first time since Erebus — she can //hear// him.
<<speech "evelyn">><<say "evelyn" "Oh god,">> she whispers. <<say "evelyn" "Hi.">><</speech>>
<<psi_to "Hi.">>
<<speech "evelyn">>She laughs. Wipes her eyes. <<say "evelyn" "Okay. So— the psychic link. From the breeding. It connected us.">> She's already thinking, processing. <<say "evelyn" "You can talk to Slimey too — but that's simple commands. This is... full communication?">><</speech>>
<<psi_to "Full sentences. I can feel your thoughts if I focus. You can hear mine when I push them toward you.">>
<<speech "evelyn">><<say "evelyn" "Because I'm part of the hive now.">> She says it flat. Testing the word. Not upset — clinical. <<say "evelyn" "The brainwashing is complete. I'm bonded. I'm yours.">><</speech>>
She straightens. Strategist mode clicking on.
<<speech "evelyn">><<say "evelyn" "But we need to know it works on someone who ISN'T already in love with you. Someone who doesn't know you. Doesn't trust you. Would normally fight back.">> She glances out the window, toward the lights of the house next door. <<say "evelyn" "We need to know that when you breed a stranger — someone who has no reason to cooperate — the loyalty takes. That she wakes up WANTING to help. Not screaming for security.">><</speech>>
<<psi_to "The neighbours?">>
<<speech "evelyn">><<say "evelyn" "The neighbours.">> A grin. The broodmare and the strategist perfectly aligned. <<say "evelyn" "Three women. Right next door. Our first real test.">><</speech>>
----
That evening, she calls you upstairs. Holo-display on her wrist, showing a government feed.
<<speech "evelyn">><<say "evelyn" "Hacked into the admin network. Password was 'admin'.">> She pinches the bridge of her nose. <<say "evelyn" "Lysara's back on Elysara. Two days of damage control on the core worlds after that broadcast, and this is her first council meeting since. Come watch.">><</speech>>
<<choose "Watch the Council Meeting" "Intro_Council">><<name "evelyn">> pulls up the colony map on her holo-display. She's all business now — the strategist in full control.
<<speech "evelyn">><<say "evelyn" "Okay. Quick recap. Here's what we need to do before the coronation.">><</speech>>
She ticks off fingers.
----
<<scene "intro/plan-get-stronger.webp" "The plan · 1 · get stronger">>
<<speech "evelyn">><<say "evelyn" "//One: get stronger.// You're a baby slime right now. You need to develop your abilities — strength, stealth, influence, pheromones, endowment. The more you use them, the better they get.">><</speech>>
''S.L.I.M.E. — Strength. Lurk. Influence. Musk. Endowment.''
<<speech "evelyn">><<say "evelyn" "Yes, I named your stat system after what you are. I think it's clever. Moving on.">><</speech>>
----
<<scene "intro/plan-build-army.webp" "The plan · 2 · build the swarm">>
<<speech "evelyn">><<say "evelyn" "//Two: build your army.// Drones come from seedbeds. Seedbeds come from women you capture. More women, more drones, more options.">><</speech>>
----
<<scene "intro/plan-resources.webp" "The plan · 3 · resources">>
<<speech "evelyn">><<say "evelyn" "//Three: gather resources.// Building materials for the nest. Milk to feed and grow your drones. Everything you need comes from the colony — you just have to take it.">> A pointed look. <<say "evelyn" "And keep the milk coming. Every drone drinks every night. Three nights dry and the nest starves, and that's the end of us too.">><</speech>>
----
<<scene "intro/plan-missions.webp" "The plan · 4 · missions">>
<<speech "evelyn">><<say "evelyn" "//Four: complete missions.// We start with the suburbs. Block 9 and the streets around it. Every house, every shop, every woman worth taking. The rest of the colony can wait until we're ready for it.">><</speech>>
----
<<scene "intro/plan-leaders.webp" "The plan · 5 · the leaders">>
<<speech "evelyn">><<say "evelyn" "//Five: turn the leaders.// You saw them in that council meeting. Each one controls a piece of this colony. Turn them into broodmares and their entire department works for us.">><</speech>>
----
<<scene "intro/plan-suspicion.webp" "The plan · 6 · suspicion">>
<<speech "evelyn">><<say "evelyn" "And //six// — the most important one—">> She looks at you. Dead serious.<</speech>>
<<speech "evelyn">><<say "evelyn" "Don't. Get. Caught.">>
<<say "evelyn" "If the colony figures out something is wrong — if suspicion gets too high — Valkra will lock this place down and we are //done//. No second chances. So be smart. Be patient. Clean up after yourself.">><</speech>>
She closes the map. Leans her forehead against your membrane.
<<speech "evelyn">><<say "evelyn" "One street at a time, $names.player. Breed your way through the suburbs, build the nest, build an army. Then the rest of the colony, and then the coronation.">> A pause. That exhausted, determined smile. <<say "evelyn" "Go get 'em.">><</speech>>
<<breeding "human">>
As if on cue, your tendril — still buried inside her from the briefing — pulses. One final, deep thrust. She gasps, grips your membrane, and you //finish// — seed flooding into her, belly warming immediately with the familiar glow.
She looks down at herself. At the warmth spreading. Grins.
<<speech "evelyn">><<say "evelyn" "And I'll be here. Doing MY part.">> She pats her belly. <<say "evelyn" "Someone's gotta keep the drone supply running.">><</speech>>
<<gain_drones "Worker" 1 "Evelyn">>
<<set $flags.tutorialComplete to true>><<set $memories.ui_stats to true>><<set $memories.ui_suspicion to true>>
<<choose "Enter the Colony Map" "ColonyMap">>