Browser lacks capabilities required to play.

Upgrade or switch to another browser.

Loading…
<<stars>> <<set setup.music to true>> <<if (Save.browser.size > 0)>><<set _speed to -8>> <<else>><<set _speed to 0>><</if>> <div id="centre"> <<if $itch>><span id="head2"><img src="img/title.webp" alt="Please note: The game may have been recently updated. To ensure images show correctly, just go back to the Itch.io page and refresh your browser, then click 'Run game' again – that should fix it." width="1px"></span><</if>> <br> <<timed _speed+.7+'s' t8n>> <span id="h3"> <<type _speed+28+'ms' skipkey "Enter">>Emergency distress responder<</type>><br> <<type _speed+28+'ms' skipkey "Enter">>Cargo ship 'CTRL-FIVE'<</type>><br> <<type _speed+28+'ms' skipkey "Enter">>Catastrophic hull failure<</type>><br> <<type _speed+28+'ms' skipkey "Enter">>No survivors<</type>></span> <<next _speed+4.4+'s' t8n>> <br><br><span id="head1"><<link "⛛" "Start">><</link>></span> <</timed>> </div><<set $start to true>>\ <<timed 0.1s t8n>>\ They say that your entire life flashes before your eyes just before you die. <<next $t+1+'s'>>Then… nothing. <<next $t+1.2+'s'>>Well, imagine that, but in reverse. <<next $t+1.2+'s'>>One moment I didn't exist, the next… <<next $t+1.3+'s'>>[[Existence spat me back out again|Welcome back]]<</timed>><<if $start>>\ <<if $suit && !$finale>>\ <hr><span id="ITEMS"><b>SUIT HUD</b></span> <<do>>\ <<if $deckplan>>\ <<link "DECKPLAN">> <<script>> Dialog .create("CTRL-V: Deckplan", "Deckplan") .wikiPassage("Deckplan") .open(); <</script>><</link>> <</if>>\ \ <<set _o2 = Math.floor(Math.clamp($o2, 0,100))>>\ <<set _food to Math.floor(Math.clamp($food, 0,100))>>\ <<set _water to Math.floor(Math.clamp($hydration, 0,100))>>\ <<if _o2 lte 28>><span id="sub2"><b>O2 supply: _o2&#8203;%</b></span><<else>>O2 supply: _o2&#8203;%<</if>> <<if !$easy && !$maxiration>>\ <<if _food lt 21>><span id="sub2"><b>Food: _food&#8203;%</b></span><<else>>Food: _food&#8203;%<</if>> <<if _water lt 21>><span id="sub2"><b>Water: _water&#8203;%</b></span><<else>>Water: _water&#8203;%<</if>>\ <</if>>\ <</do>>\ <</if>>\ \ <<if $inventory && !$finale>>\ <hr><<do>><span id="ITEMS"><b>YOU ARE CARRYING <<do>>[$invcount&#8203;/&#8203;$itemsmax]<</do>></b></span>\ \ <<if Object.keys($carrying).length == 0>>\ <<set _empty to true>> <span id="sub2">(nothing)</span> <<else>><<set _empty to false>>\ <<listinv>> <</if>>\ \ <<if passage () == "inventory">><<return "RETURN">><<elseif passage() == "Help" or _empty>><<else>><<link "EXAMINE ITEMS" "inventory">><</link>><</if>><</do>>\ <<else>>\ <br><br><br><br><br><br><br><br> <</if>>\ <<elseif passage () != ("Intro")>>\ \ <<timed .03s t8n>><hr class="line"><<next>>Search through the detritus. <<next>>Find things you can use. <<next>><b>Recycle, Fabricate, Survive.</b> <<next>><hr class="line"><<next>>[[How to play]] <<next>>[[Credits]]<hr class="line"><</timed>> <<else>>\ <br><br><br><br><br><br><br><br> <</if>>\<<set $path = ['Fabricator']>>\ I tap the button, and the glass panel suddenly slides open – the pod belches me out into a cold, dark space. My arms and legs don't seem to be working, and I fall helplessly to the ground – except, for some reason, gravity has taken some time off, and I just float clumsily until I find a metal desk to cling to. I look around. This… this looks familiar. I think I'm in the Fabrication room? I must still be on the ship, but the gravity wells aren't working for some reason. And if I've just come out of the fabrication pod, that means… Ugh. I've been reprinted. <span id="chat">"New memory backup made. Resources have been depleted."</span> A mechanical voice comes from somewhere nearby. That doesn't sound like GAIL. I'm thinking the AI has shut down, and we're on some kind of emergency system. This just gets better and better. [[Look around]]<span id="h2">$title</span> <hr class="line"><span id="sub1"><<timed .1s t8n>>Lost in deep space, a manned cargo vessel has experienced a catastrophic hull failure. The crew are missing, the engines are offline, the AI is MIA, and you…? You're seeing ghosts. Search through the detritus. Find items you can use. <<next 1s>><b>Recycle</b>. <<next 1s>><b>Fabricate</b>. <<next 1s>><b>Survive</b>.<</timed>></span><<timed .1s t8n>><hr class="line">Search for answers among the debris you find floating about the ship. Any item can be recycled into its basic resources, and new items can then be fabricated – but be careful what you destroy, some objects may be useful. There are limited resources available, so be careful how you use them! Allow <i>roughly</i> two hours to play through to the end, but this will vary from player to player. Note: 'story' mode potentially offers a shorter play time. <b><span id="sub1">There will be essential information shown in the side panel.</span></b> <span id="mobile"><span id="sub1"><b> You can open it using the ' › ' arrow in the top left. </b></span></span> At the start of the game, you can carry a maximum of four items. You can see what items you're carrying in the side panel. You can also <b>Examine items</b> to view a brief description. Some objects – such as oxygen canisters, rehydration and ration packs – can be used while you're carrying them. You can do this at the bottom of the 'examine items' screen. You can drop items in any location by using <b>items: drop</b> – they'll remain there until you pick them up again. <hr class="line"><span id="sub2"><b>Settings</b></span> The 'settings' menu allows you to: * View the completion progress (click to see more details) * Turn the 'delayed' text on/off * Turn the background music on/off * Change the difficulty (see below) * View the 'play guide' (this also contains an expanding walkthrough) <hr class="line"><span id="sub2"><b>There are four modes of play:</b></span> <span id="sub2"><b>› Story</b></span>: A <i>much</i> easier game. Just use the 'Story hints' link to see what to do next. <span id="sub2"><b>› Easy</b></span>: Survival elements are reduced to oxygen only. Some of the puzzles are easier too. <span id="sub2"><b>› Normal</b></span>: This is the default way to play. Keep track of your oxygen, food, and water levels. <span id="sub2"><b>› Survival</b></span>: Space is a harsh place. Oxygen and resources are scarcer, and there will be fewer hints. Levels will gradually tick down with every turn (apart from when checking your inventory or looking at a terminal), but as long as you keep exploring, you should find plenty of detritus to keep yourself alive. <hr class="line"><span id="sub2"><b>Saves:</b></span> The game will occasionally autosave for you after key events. However, you can (and probably should) save your game manually too, using the 'saves' option in the side panel. \ <span id="tablet">\ <span id="sub2">Note for iPhone or iPad users:</span> iOS has a tendency to delete browser saves after a few days, so you may want to try saving using the 'On disk' option.</span>\ <hr class="line">[[Back to the menu|Start]]<</timed>><<set _count to 0>>\ <span id="h2">$title</span> <hr class="line"><span id="lnk">All content created by Ben Jackson <<link "©">><<set _count ++>><<if _count gt 2>><<set $dev to true>><</if>><</link>>2025</span>. Release v$ver. Created in Twine (Sugarcube). You can view other games I've made <a href="https://radiosity01.itch.io/" target="_blank">here</a>. <span id="sub1"><i>This game was not made with the help of any AI. Thanks for nothing GAIL.</i></span> <hr class="line"><b>Main title music:</b> The_Mountain / Dmitrii Kolesnikov <b>Archive music:</b> The Haydn Quartet, 1906 <b>Ambient music:</b> 'Detritus' custom music created specially for the game by Ben Jackson This is part based on a track by UniqueCreativeAudio / P Richmond <hr class="line">The detritus inventory system was created from scratch with code help from Aster. Thanks to these playtesters who helped to improve the game: <b>Emery Joyce</b> &nbsp; | &nbsp; <b>Josh Grams</b> &nbsp; | &nbsp; <b>Daniel Stelzer</b> <hr class="line">[[Back to the menu|Start]]<<if $life is 1>>\ With no recent memories, I'm totally at a loss as to what's happened. Asteroid impact? Critical drive failure? Raider attack? I can't hear any plasma-fire – in fact, I can't hear anything at all, so whatever occurred, it's not ongoing. No recent backup means it happened fast, whatever it was. Short-term memory… I've got nothing. Long-term memory… patchy – I can barely remember my own name. I'm hoping my memories gradually return. I guess I should see what state the rest of the ship is in and if anyone else is still alive. Ahead of me is the main door that leads to the ship's central corridor. [[Open the door|Open the door]] [[Peer through the window|Peer through the door window]] [[Look around the room|Examine the room]] <<else>>\ <<set $guide = true>>\ I tap the control panel, the glass slides open, and I tumble back out into the Fabricator room, feeling even more icky than last time. 'Icky' is not a technical term, but it really describes how I'm feeling right now. Fortunately, the door into the corridor has resealed itself, and the room has repressurised. At least there's still some O2 reserves left. That means there's been a hull breach, probably in the corridor itself. My problem is that the corridor is the only way to get around, so I'm going to have to get in there somehow. And printing a human body takes a lot of resources – I'm lucky there was enough for that last reprint. I should probably check out the stuff floating around and see if anything can help. [[Open the door|Open the door]] [[Peer through the window|Peer through the door window]] [[Search the room|search the room]] <</if>>\<span id="chat">"Welcome back $name"</span> I'm still trying to make sense of that sudden stroboscope of memories that flashed like a thousand burning sparks behind my eyes. My eyelids feel glued shut. I open them like two old wooden shutters and light sears in through these broken windows. I have to squint to see anything at all. A warped, twisted face is staring at me from just centimeters away. The more I look, the more the face twists and contorts… until I realise it's my own face reflected in a curved glass screen right in front of me. [[What the f…?|Open]]<<widget "pickdroplinks">> <<do>>items: <<if _pickdrop != 1>><<link "pick up">><<set _pickdrop = 1>><<redo>><</link>><<else>><b>pick up</b><</if>> | <<if _pickdrop != 2>><<link "drop">><<set _pickdrop = 2>><<redo>><</link>><<else>><b>drop</b><</if>><</do>> <</widget>> \ <<widget "roomitems">> <<set _pickdrop = 1>> /* args[0] = the room */ <<do>> <<if _args[0].length gt 0>> <span id="ITEMS"><b><<if tags().includes('space')>>Items floating out in space: <<else>>Items in here: <</if>></b></span> <<if _pickdrop == 1>><br><span id="output"><<if $invcount lt $itemsmax>>choose an item to pick up<<else>>You can't carry any more items<</if>></span><</if>><br> <<for _item range _args[0]>> <<if $invcount lt $itemsmax && _pickdrop == 1>> <<if _args[0][_item] gt 1>><<print _args[0][_item]>>x : <</if>><<pickup _args[0] _item>><br> <<else>> <<if _args[0][_item] gt 1>><<print _args[0][_item]>>x : <</if>><<print setup.allitems[_item].name>><br> <</if>> <</for>> <<else>> <span id="sub1">You've collected everything here</span><br> <</if>> <</do>> <</widget>> \ <<widget "useitem">> <<linkreplace "› Choose an item to use" t8n>> <<do>> <<if Object.keys($carrying).length == 0>> <<set $invcount = 0>> <span id="sub2"><i>(you're not carrying anything)</i></span> <<else>>\ <span id="ITEMS"><b>Choose an item to use</b></span> <<for _item range Object.keys($carrying)>> <br> <<capture _item>> <<itemcount _item>><<link setup.allitems[_item].name>> <<set _useitem = _item>> <<redo>> <</link>> <</capture>> <</for>> <</if>> <</do>> <</linkreplace>> <</widget>> \ <<widget "carrying">> /* args[0] = the room to drop items in */ <<do>> <<if Object.keys($carrying).length == 0>> <<set $invcount = 0>> <span id="sub2"><i>(you're not carrying anything)</i></span> <<elseif !_args[0] or _pickdrop == 2>> <span id="ITEMS"><b>You are carrying</b></span> <<if _pickdrop == 2>><br><span id="output">choose an item to drop</span><</if>> <<for _item range Object.keys($carrying)>> <br><<itemcount _item>><<transfer _args[0] _item>> <</for>> <<else>> <<linkreplace "› You are carrying" t8n>> <span id="ITEMS"><b>You are carrying</b></span> <<for _item range Object.keys($carrying)>> <br><<itemcount _item>><<print setup.allitems[_item].name>> <</for>> <</linkreplace>> <</if>> <</do>> <</widget>> \ <<widget "itemcount">> <<if $carrying[_args[0]] gt 1>><<print $carrying[_args[0]]>>x : <</if>> <</widget>> \ <<widget "recycle">> <b>Choose an item to recycle:</b> <<do>> <<if Object.keys($carrying).length == 0>> <<set $invcount = 0>> <br><span id="sub2"><i>(you have nothing to recycle)</i></span> <<else>>\ <<for _item range Object.keys($carrying)>> <br><<itemcount _item>><<recyclecheck _item>> <</for>> <</if>> <</do>> <hr class="line"> <</widget>> \ <<widget "recyclecheck">> /* args[0] is the item */ <<link setup.allitems[_args[0]].name>> <<set _name to setup.allitems[_args[0]].name>> <<set _resources to setup.allitems[_args[0]].resources>> <<replace "#output">><b>_name</b><br> <span id="sub2"> <<easycheck _args[0]>> Item will be destroyed.</span><br> <<if _fail && $easy>><<else>><span id="rec"><<button "RECYCLE">> <<removeitem _args[0]>> /* if accidentally recycled engine items - resource dupe fix and respawn */ <<if visited ("Head into nacelle A") && !$enginefixed && !$corridor.includes(_args[0])>> <<if _args[0] == 'mug'>><<set _norez to true>> <<set $corridor.pushUnique(_args[0])>><</if>> <<if _args[0] == 'can-full'>><<set _norez to true>> <<set $corridor.pushUnique(_args[0])>><</if>> <<if _args[0] == 'spring' && !$schema.includes('spring')>> <<set _norez to true>><<set $corridor.pushUnique(_args[0])>><</if>> <<if _args[0] == 'charge'>><<set _norez to true>> <<set $corridor.pushUnique(_args[0])>><</if>> <</if>> /* dumb player fix - resource dupe fix and respawn */ <<if _args[0] == 'data-fabupgrade' && $fablevel lt 3>> <<set _norez to true>><<set $corridor.push(_args[0])>><</if>> <<if _args[0] == 'data-recupgrade' && $reclevel lt 3>> <<set _norez to true>><<set $corridor.push(_args[0])>><</if>> <<if _args[0] == 'data-schematic'>> <<set _norez to true>><<set $breach.push(_args[0])>><</if>> <<if _args[0] == 'oxygen-full'>> <<set _norez to true>><<addgen $breach _args[0]>><</if>> <<if _args[0] == 'passkey' && !visited ("archives inside")>> <<set _norez to true>><<set $corridor.pushUnique(_args[0])>><</if>> <<if _args[0] == 'backpack-small'>><<set _norez to true>> <<set $cabin3.pushUnique(_args[0])>><</if>> <<if _args[0] == 'datapad-b' && !visited ("admin inside")>><<set _norez to true>> <<set $corridor.pushUnique(_args[0])>><</if>> <<if _args[0] == 'circuit' && !$schema.includes('circuit') && !$schema.includes('multi')>><<set _norez to true>> <<set $corridor.pushUnique(_args[0])>><</if>> /* dumb player fix end */ <<gainresources _args[0]>> <<redo>> <</button>></span><br><</if>><br><</replace>> <</link>> <</widget>> \ <<widget "gainresources">> /* recycle the item and add the appropriate resources - args[0] is the item */ <<for _k=0; _k<5; _k++>> <<set _resources[_k] = Math.round (_resources[_k] *= $degrade)>> <</for>> <<if _rec>> <<unset _rec>><<audio "reccopy" play>> <<else>><<audio "recycle" play>><<set _rec to true>> <</if>> <<if !_norez>> <<set $biomass += _resources[0]>> <<set $metals += _resources[1]>> <<set $water += _resources[2]>> <<set $minerals += _resources[3]>> <<set $polymers += _resources[4]>> <<set $detritus ++>> <<else>> <<set _norez to false>> <</if>> <<replace "#output">>_name has been recycled, resources gained.<br><br><</replace>> <</widget>> \ <<widget "easycheck">> /* check if recycling important items - args[0] is the item */ <<set _fail to false>> <<if _args[0] == 'wrench' && !$suit>><<set _fail to true>><</if>> <<if _args[0] == 'data-fabupgrade' && $fablevel lt 3>><<set _fail to true>><</if>> <<if _args[0] == 'data-recupgrade' && $reclevel lt 3>><<set _fail to true>><</if>> <<if _args[0] == 'rehydration' && $hydration lt 99>><<set _fail to true>><</if>> <<if _args[0] == 'datapad-b' && !visited ("admin inside")>><<set _fail to true>><</if>> <<if _args[0] == 'datapad-a' && !$dataa>><<set _fail to true>><</if>> <<if _args[0] == 'backpack-small' or _args[0] == 'backpack-large'>><<set _fail to true>><</if>> <<if _args[0] == 'data-schematic'>><<set _fail to true>><</if>> <<if _args[0] == 'oxygen-full'>><<set _fail to true>><</if>> <<if _args[0] == 'sonic-wrench' && !_multi>><<set _fail to true>><</if>> <<if _args[0] == 'circuit' && !_multi>><<set _fail to true>><</if>> <<if _args[0] == 'multi'>><<set _fail to true>><</if>> <<if _args[0] == 'rations1' or _args[0] == 'rations2' or _args[0] == 'rations3' && (!$food lt 99)>><<set _fail to true>><</if>> <<if _args[0] == 'rope' && !visited ("cabin 4 inside")>><<set _fail to true>><</if>> <<if _args[0] == 'battery-full'>><<set _fail to true>><</if>> <<if _args[0] == 'battery-empty' && visited ("helm inside") && !$carrying.hasOwnProperty("battery-full")>><<set _fail to true>><</if>> <<if _args[0] == 'pistol'>><<set _fail to true>><</if>> <<if _args[0] == 'passkey' && !visited ("archives inside")>><<set _fail to true>><</if>> <<if _args[0] == 'mascot' && !visited ("cabin 1")>><<set _fail to true>><</if>> /* final */ <<if visited ("deck lift choose") && !$enginefixed>> <<if _args[0] == 'charge'>><<set _fail to true>><</if>> <<if _args[0] == 'spring'>><<set _fail to true>><</if>> <<if _args[0] == 'mug'>><<set _fail to true>><</if>> <<if _args[0] == 'can-full'>><<set _fail to true>><</if>> <</if>> /* add other 'no recycle' checks here */ <<if _fail>><span id="main"><b><i>You should keep hold of this!</i></b></span><br><<else>><</if>> <</widget>> \ <<widget "pickup">> /* args[0] is the room args[1] is the item you're picking up */ <<link setup.allitems[_args[1]].name>> <<if $invcount lt $itemsmax>> <<additem _args[1]>> <<run _args[0].deleteFirst(_args[1])>> <<redo>> <<else>> <<replace "#output">>You can't carry any more items<</replace>> <</if>> <</link>> <</widget>> \ <<widget "additem">> /* args[0] is the item being added */ <<if Object.hasOwn($carrying, _args[0])>> /* extra item count! */ <<set $carrying[_args[0]] ++>> <<else>> <<set $carrying[_args[0]] = 1>> <</if>> <<set $invcount++>> <</widget>> \ <<widget "transfer">> /* args[0] is the room, args[1] is the item */ <<link setup.allitems[_args[1]].name>> <<removeitem _args[1]>> <<set _args[0].push(_args[1])>> <<if Object.hasOwn(_args[0], _args[1])>> /* extra item count! */ <<set _args[0][_args[1] ++]>> <<else>> <<set _args[0][_args[1]] = 1>> <</if>> <<redo>> <</link>> <</widget>> \ <<widget "removeitem">> /* args[0] is the item */ <<if $carrying[_args[0]] gt 1>> <<set $carrying[_args[0]] -->> <<else>> <<set delete $carrying[_args[0]] >> <</if>> <<set $invcount -->> <</widget>> \ <<widget "fabricate">> /* <<linkreplace "› Choose an item to fabricate">> */ <<do>> <span id="ITEMS"><b>Available schematics:</b></span> (click to fabricate) <span id="cols3"><<for _item range $schema>> <br><<fabricatecheck _item>> <</for>></span> <</do>> <hr class="line"> /* <</linkreplace>> */ <</widget>> \ <<widget "fabricatecheck">> /* args[0] is the item */ <<link setup.allitems[_args[0]].name>> <<set _name to setup.allitems[_args[0]].name>> <<set _resources to setup.allitems[_args[0]].resources>> <<if $invcount lt $itemsmax>> <<replace "#output">><b>_name</b><br> <span id="sub1">Resources required: _resources</span><br> /* Fabricate this item?<br> */ <span id="rec"><<button "FABRICATE">> <<resourcescheck _args[0]>> <<redo>> <</button>></span><br><br><</replace>> <<else>> <<replace "#output">><b>_name</b><br> <span id="sub1">Resources required: _resources</span><br> <<audio "error" play>> <b>UNABLE TO FABRICATE – NO ROOM IN INVENTORY.</b><br><br> <</replace>> <</if>> <</link>> <</widget>> \ <<widget "resourcescheck">> <<set _fail to false>> <<if $biomass - _resources[0] lt 0>><<set _fail to true>><</if>> <<if $metals - _resources[1] lt 0>><<set _fail to true>><</if>> <<if $water - _resources[2] lt 0>><<set _fail to true>><</if>> <<if $minerals - _resources[3] lt 0>><<set _fail to true>><</if>> <<if $polymers - _resources[4] lt 0>><<set _fail to true>><</if>> <<if $itemcount gte $itemsmax>> <<replace "#output">><b>_name fabrication failed!<br>Not enough room.</b><br><br><</replace>> <<elseif !_fail>> <<set $biomass -= _resources[0]>> <<set $metals -= _resources[1]>> <<set $water -= _resources[2]>> <<set $minerals -= _resources[3]>> <<set $polymers -= _resources[4]>> <<additem _args[0]>> <<if _rec>> <<unset _rec>><<audio "printcopy" play>> <<else>><<audio "print" play>><<set _rec to true>> <</if>> <<set $fabricated ++>> <<if _name == "Plasma pistol">><<set $haspistol to true>><</if>> <<if _name == "Multi-tool">><<set $hasmulti to true>><</if>> <<if _name == "Large backpack">><<set $hasbackpack to true>><</if>> <<replace "#output">>_name has been fabricated. Resources reduced.<br> <<if !visited ("Corridor")>>The item has been added to your inventory.<br><</if>><br><</replace>> <<else>> <<audio "error" play>> <<replace "#output">><b>_name fabrication failed!<br>Not enough resources.</b><br><br><</replace>> <</if>> <</widget>> \ <<widget "dropall">> /* drop everything in to the room: _args[0] */ <<if Object.keys($carrying).length == 0>> <<else>> <<for _item range Object.keys($carrying)>> <<removeitem _item>> <<set _args[0].push(_item)>> <</for>> <<set $invcount = 0>> <</if>> <</widget>>I'm trapped, standing upright inside some kind of pod. A smooth glass panel holds me tight in this coffin-like prison. I look down, I can't move my arms at all, but a small control panel rests just within reach. I'm starting to panic. I can't move, and I don't remember how I got here. My heart rate is beating out a rhythm like a glitching drum solo, and my panting breath is clouding up the glass screen. [[Call out for help|help]] [[Tap the control panel|Open your eyes]]<<stars>>\ <<set $start to false>>\ <<set $finale to false>>\ <<if setup.music>><<audio "theme" loop play volume 1>><</if>>\ <div id="centre">\ <span id="intro"><img src="img/title.webp" alt=$title width="640px"></span> \ <span id="h3">\ <<if (Save.browser.size > 0)>>\ <<link "CONTINUE">><<audio "theme" play unloop>><<audio "theme" fadeout>><<audio "ambient" loop play volume 1>><<set setup.music to true>><<run Save.browser.continue()>><<run Engine.show()>><</link>> <</if>>\ <<if visited ("Utility room")>>\ <<if visited ("THE END")>>\ <<link "YOUR STATS" "end progress">><</link>> <</if>>\ <<link "RESTART">><<script>>Engine.restart();<</script>><</link>> <<else>>\ <<link "BEGIN" "choose diff">><<include "restart">><</link>> <</if>></span>\ <span id="mobile">\ <hr class="line">[[How to play]] &nbsp; | &nbsp; [[Credits]]</span>\ <<if $dev>><br><br>- DEV MODE ENABLED -<</if>>\ </div>\<<if $bodyseen>>\ I drift over to the door and peer through the window. The view is the same, but fortunately, my recently deceased remains have floated out of sight. Frost has spread across the window like a warning. <<if $suit>>But it's ok, I'm wearing my EMU now, I'll be fine. I think. I really need to find out what happened. I guess I should check my cabin first. And I should see if GAIL is still operational too – she'll know what to do.<<else>>Yeah, Ok, I get it; don't go out without a suit.<</if>> <<elseif $life is 1>>\ I drift over to the door and peer through the window. I can see the dimly lit corridor beyond. Something floats past my view, it looks like a wrench <<if $storagedoor1>> – which could be exactly what I need to open the storage unit. <<else>> – so I'm guessing gravity is out across the whole ship.<</if>> <<else>>\ <<set $bodyseen to true>>\ I float over to the door and peer through the window. I can see the dimly lit corridor beyond. Something drifts past the window… Oh Christ. That's my body. I have a sudden need to throw up, but my stomach has been printed empty, so I dry heave. No one should have to see their own dead body gently passing by. \ <<if $suit>>\ At least I'm wearing my EMU now – I should be ok to open the door. I think. I really need to find out what happened. I guess I should check my cabin first. And I should see if GAIL is still operational too – she'll know what to do. <</if>><</if>>\ [[Open the door|Open the door]] <<if $life gt 1>>\ <<link "Back to the room" "search the room">><</link>> <<else>> [[Back to the room|Examine the room]] <</if>>\<<if $suit>>\ <<audio "door" play>>\ I pause for a moment. Even though I'm snug in my EMU, I still feel a bit nervous about opening that door. I can still remember how it felt to… Ok, let's not dwell, it's not healthy. I tap the control, and the door swishes open. Just like last time, the air blasts out, but this time I'm ready for it. I grab hold of the door frame and steady myself until the whooshing air stops. I try to slow my breathing from 'panic' to 'everything's cool'. I start humming a tune; I'm not sure why it popped into my head. I think my mother used to sing it to me when I was young. I can barely remember the words, but it doesn't matter; the tune helps to calm me down. [[Ok, it's time to explore|Corridor]] <<elseif $life == 1>>\ <<audio "door" play>>\ I tap the controls, and the door quickly slides open. The air immediately blasts out into the vacuum of the corridor, and I'm dragged out with it. I'm flailing helplessly, trying to grab on to anything I can. My mind is in shock – it's wasting time thinking about what explosive decompression does to a human body. As the oxygen is ripped from my lungs, I have just enough time to scream… [['OH SHI…!'|The end]] <<else>>\ <<if $bodyseen>>\ I actually think about opening the door again, and then I remember the body I just saw floating past the window. <<if $life gt 1>>\ <<link "Search the room" "search the room">><</link>> <<else>> [[Search the room|Examine the room]] <</if>>\ <<else>>\ I think about it, I really do. And then I remember what happened last time. I'm not planning on doing that again. Or, you know, ever. [[Look through the window|Peer through the door window]] <<if $life gt 1>>\ <<link "Search the room" "search the room">><</link>> <<else>> [[Search the room|Examine the room]] <</if>>\ <</if>><</if>>\<<if lastVisited ("up the corridor") == 1>>\ I make my way back to the Fabricator room, where I first emerged. The door is open, so the room is depressurised. The lights flicker on as I enter. Inside, there's the large full-body Fabricator – it still gives me the creeps remembering waking up trapped in there. There's also a terminal and the recycler next to it. <<elseif visited () lt 3>>\ I'm in the ship's Fabricator room. <<if $utility.length gt 1>>There are a bunch of loose items floating around; none of them look particularly useful, just… ship stuff.<</if>> Taking up much of one wall, there's the full-body Fabricator – the one I was… well, I'm not planning to do that again. Attached to the Fabricator is the Recycler, and next to that is the terminal. <<else>>\ I'm in the ship's Fabricator room. <<if $utility.length gt 1>>There are a few items floating around, but none of them look very useful. <</if>> Taking up much of one wall, there's the full-body fabricator. There's also a terminal and the Recycler. <</if>>\ <<if !$storagedoor1>>On the far wall, there's a large storage unit.<<elseif !$suit>>The door to the storage unit has opened, but only slightly.<<else>>The storage unit is open and I'm wearing the EMU I found inside.<</if>> \ <<if $life is 1>>\ Ahead of me is the door to the main corridor. <</if>>\ <<link "Use the Recycler" "use the recycler">><</link>> <<link "Try the Fabricator" "use the fabricator">><</link>> <<link "Check the terminal" "check the terminal">><</link>> <<if $suit>>\ <<link "Use the storage unit" "storage1">><</link>> <<else>>\ <<link "Check the storage unit" "check the storage unit">><</link>> <</if>>\ <<if $life gt 1>>\ <<link "Search the room" "search the room">><</link>> <</if>>\ <<if visited ("Corridor")>>\ <<link "Back to the corridor" "up the corridor">><</link>> <<else>>\ <<link "Head over to the door" "Peer through the door window">><</link>> <</if>>\<<nobr>>\ <<if $minerals gt 1>> <<set $biomass -= setup.body[0]>> <<set $metals -= setup.body[1]>> <<set $water -= setup.body[2]>> <<set $minerals -= setup.body[3]>> <</if>> <<set $life to 2>> <</nobr>>\ \ <<timed .1s t8n>>They say that your entire life flashes before your eyes just before you die. <<next $t+1+'s'>>Then… nothing. <<next $t+1.2+'s'>>Well, imagine that, but in reverse. <<next $t+1+'s'>>One moment… <<next $t+.6+'s'>>hang on, haven't we done this before? <<next $t+1.3+'s'>><span id="chat">"Welcome back $name"</span> <<next $t+1.3+'s'>><<link "Right. I've been reprinted. Again." "Utility room">><</link>><</timed>><<set $inventory to true>>\ <<if $captainbody == "corridor1" && $fablevel gt 1 && $reclevel gt 2 && $temp == 2>>\ I look out of the door and see the Captain's dead body gently drifting outside in the corridor – which gives me an uncomfortable idea… <<link "Pull Matheu's body inside the room" "captain fab room">><</link>> <<elseif $switchready && $name == setup.namea>>\ I've switched the backup body data… now what? <<elseif $captainschema && !$switchready>>\ There's a new schematic available on the terminal: everything that's left of Captain Matheus. <<elseif visited () is 1>>\ <<if $story>><<set $metals += 6>><<set $minerals += 9>><<set $polymers += 8>><</if>>\ I'm in the ship's Fabricator room. <<if $utility.length gt 1>>There are a few useless items floating around. <</if>> Taking up much of one wall, there's the full-body fabricator. There's also a terminal and the Recycler. <<if !$storagedoor1>>On the far wall, there's a large storage unit, but the door looks like it's sealed shut.<<elseif !$suit>>The door to the storage unit has opened, but only slightly. It appears to have been damaged.<<elseif !visited ("Corridor")>>The storage unit is open and I'm wearing the EMU I found inside.<</if>> <<else>>\ I'm back in the Fabrication room<<if $utility.length <= 0>>. I've picked up all the stuff that was floating around.<<else>>, looking around at the debris that used to have meaning.<</if>> <<if !$storagedoor1>>On the far wall, there's a large storage unit, but the door looks like it's sealed shut.<<elseif !$suit>>The door to the storage unit has opened, but only slightly. It appears to have been damaged.<<elseif !visited ("Corridor")>>The storage unit is open and I'm wearing the EMU I found inside.<</if>> <</if>>\ \ <<if $guide>>\ <<do>><span id="sub1"><i>Your inventory is now shown in the side panel. <<if $invcount gt 0>> Click '<b>Examine items</b>' to examine things you're carrying.<</if>> <<if $invcount gt 1>>Click '<b>items: drop</b>' below to leave something you're carrying here if you need to make room.<<unset $guide>><</if>></i></span><</do>> <</if>>\ \ <<if $suit && $hydration lt 30 && !$drunk>><<do>>\ <span id="sub1"><i><<if $carrying.hasOwnProperty("rehydration")>><br>Use your 'Rehydration pack' by clicking on 'Examine items' then 'Drink'.<<else>><br>Your water level is low. Fabricate a 'Rehydration pack'.<</if>></i></span><br><</do>><</if>>\ <<set _room to $utility>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> [[Use the Recycler|use the recycler]] [[Use the Fabricator|use the fabricator]] [[Check the terminal|check the terminal]] <<if $suit>>\ <<link "Use the storage unit" "storage1">><</link>> <<else>>\ <<link "Check the storage unit" "check the storage unit">><</link>> <</if>>\ <<if visited ("Corridor")>>\ <<link "Back to the corridor" "up the corridor">><</link>> <<else>>\ <<link "Head over to the door" "Peer through the door window">><</link>> <</if>>\<<if $switchready && $name == setup.namea>>\ I have switched the backup data, but the Captain's body isn't showing up. Why can't I print his body? Then I realise, not only are there not enough resources to print him – there's only ever one 'emergency reprint' allowed …and I'm still here. [[Climb into the Fabricator|Climb into the Fabricator]] <<elseif $captainschema && $name == setup.namea>>\ There's a new schematic available on the terminal: everything that remains of Captain Matheus. <<elseif visited () is 1>>\ The Fabricator is a large, sturdy unit capable of printing out a huge variety of items – from provisions to tools and, well… me, it would seem. It needs to have schematics for anything you want to print, but a few come pre-installed. <<else>>\ The Fabricator is a large unit capable of printing out a variety of items from the ship-wide resource store. It just needs to have schematics for anything I might want to make. <</if>>\ \ <<if $suit && $hydration lt 30 && !$drunk>><<do>>\ <span id="sub1"><i><<if $carrying.hasOwnProperty("rehydration")>><br>Use your 'Rehydration pack' by clicking on 'Examine items' then 'Drink'.<<else>><br>Your water level is low. Fabricate a 'Rehydration pack'.<</if>></i></span><br><</do>><</if>>\ <<showresources>>\ <span id="output"></span>\ <<fabricate>>\ [[Use the Recycler|use the recycler]] <<link "Use the terminal" "check the terminal">><</link>> <<if $suit>>\ <<link "Use the storage unit" "storage1">><</link>> <<else>>\ <<link "Check the storage unit" "check the storage unit">><</link>> <</if>>\ <<if $life == 1>>\ [[Back to the room|Examine the room]] <<else>>\ [[Search the room|search the room]] <</if>>\ <<if visited ("Corridor")>>\ <<link "Back to the corridor" "up the corridor">><</link>> <<else>>\ <<link "Head over to the door" "Peer through the door window">><</link>> <</if>>\<<if visited () is 1>>\ <span id="speech">"Hey GAIL…? What's the ship's status?"</span> My voice sounds weird in the silence of the ship. I get no reply. I guess we have to do this the old-fashioned way. I tap a key on the terminal – I'd almost forgotten that 'keyboards' were still a thing. It brings up some basic options: <</if>>\ <div id="terminal"><span id="sub2">FABRICATION TERMINAL</span> Welcome $name. \ <<if $captainschema && !$switchready>>\ <b>EMERGENCY BACKUP DATA ADDED</b> <<type 1ms>>USER ACTION REQUIRED<</type>>\ <</if>>\ Please select an option: <<link "Ship status" "Ship status">><</link>> | <<link "Room status" "Room status">><</link>> | <<link "Resources" "Terminal resources">><</link>> | <<link "Emergency Protocol" "Emergency">><</link>> \ <<if $carrying.hasOwnProperty("data-fabupgrade") or $carrying.hasOwnProperty("data-recupgrade")>>\ <<type 5ms>>UPGRADE TOKEN DETECTED <<link "› Use upgrade token">><<if $carrying.hasOwnProperty("data-fabupgrade")>><<goto "fab upgrade">><<else>><<goto "rec upgrade">><</if>><</link>><</type>>\ <</if>>\ <<if $carrying.hasOwnProperty("data-schematic")>>\ <<type 5ms>>SCHEMATIC TOKEN DETECTED <<link "› Use schematic token" "Schematic upgrade">><</link>><</type>>\ <</if>>\ \ </div> <<if $life gt 1>>\ <<link "Leave the terminal" "search the room">><</link>> <<else>>\ <<link "Leave the terminal" "Examine the room">><</link>> <</if>>\<<if $switchready && $name == setup.namea>>\ I have switched the backup data, but there aren't enough resources, and there's only ever one 'emergency reprint' allowed – and I'm it. I have a horrible feeling… I think I know what I have to do. [[Climb into the Fabricator|Climb into the Fabricator]] <<elseif $captainschema && $name == setup.namea>>\ There's new emergency backup data available on the terminal. <<elseif visited () is 1>>\ The Recycler unit is part of the Fabricator system. You can just dump any old thing in there and break it down into basic resources. Nothing gets wasted around here. <<else>>\ The Recycler unit is part of the Fabricator. You can just dump any old thing in there and break it down into basic resources. <</if>>\ <<if $life == 1>>\ I'm not carrying anything at the moment, so I don't have anything to recycle. [[Use the Fabricator|use the fabricator]] <<link "Use the terminal" "check the terminal">><</link>> [[Back to the room|Examine the room]] <<else>>\ <<showresources>>\ <span id="output"></span>\ <<recycle>>\ [[Use the Fabricator|use the fabricator]] <<link "Use the terminal" "check the terminal">><</link>> <<if $suit>>\ <<link "Use the storage unit" "storage1">><</link>> <<else>>\ <<link "Check the storage unit" "check the storage unit">><</link>> <</if>>\ [[Search the room|search the room]] <</if>>\ <<if visited ("Corridor")>>\ <<link "Back to the corridor" "up the corridor">><</link>> <<else>>\ <<link "Head over to the door" "Peer through the door window">><</link>> <</if>>\The lights flicker on above me, illuminating a bare, utilitarian room around five meters square. The dim light reflects off cold slate-grey metallic walls; the air is still and silent. I'm trying to wrack my brain as to what might have happened. Something bad. Something <i>really</i> bad if the Emergency Protocol has kicked in. There's only space for one backup – I guess I must have been the last one on the rota. I don't think I've ever actually been reprinted before. It's… really fracking unpleasant. I don't feel entirely 'me' – I'm hoping that fades. [[Ok, what the f… is going on?|Utility room]]<b>DEV TOOLS</b> <<link "SKIP TUTORIAL">><<skip>><<goto "Corridor">><</link>> \ <<linkreplace "SKIP THE HACKING">> The 'hacking' minigame can now be skipped (use the 'cheat' link at the door) <<set $cheat to true>><<set $hacked to true>>\ <</linkreplace>> \ <<linkreplace "CHEAT EVERYTHING!">>\ <<cheat>><<set $deckplan to true>><<set $cheat2 to true>>\ CHEAT: • All door checks and hacking panels can be skipped • O2, hunger & thirst maxed out • Resources maxed out • Most essential objects added to Fabricator room • Fabricator and Recycler upgraded to max • Carried items limit maxed out <</linkreplace>> <<linkreplace "SWITCH BODIES">>\ <<skip>><<goto "Corridor">><<set $name = setup.nameb>>\ <</linkreplace>> <<linkreplace "SKIP TO THE END">>\ <<skip>><<goto "Cargo deck">><<set $enginefixed = true>><<set $name = setup.nameb>>\ <</linkreplace>> <<link "KEYPAD TESTS" "Keypad tests">><</link>> \ <<nobr>><hr> Player deaths: $death<br> <<linkreplace "Complete objects database">> <<for _key range Object.keys(setup.allitems)>> <<set _item = setup.allitems[_key]>> <br><strong><<=_item.name>></strong> <br><em><<=_item.description>></em> <br>Resources: <<=_item.resources.join(", ")>><br> <</for>> <</linkreplace>><</nobr>>\<<widget "showresources">> <<linkreplace "› Current resources" t8n>> <<do>> <span id="ITEMS"><b>Current resources:</b></span><br> <span id="cols2"> Biomass: $biomass | Metals: $metals | Water: $water | Minerals: $minerals | Polymers: $polymers </span> <</do>> <</linkreplace>> <hr class="line"> <</widget>> \ <<widget "schematics">> <<linkreplace "› Available schematics" t8n>> <span id="ITEMS"><b>Available schematics:</b></span> <<for _item range $schema>> <br><<print setup.allitems[_item].name>> <span id="sub1">: [<<print setup.allitems[_item].resources>>]</span> <</for>> <</linkreplace>> <</widget>> \ <<widget "listall">> LISTALL <<for _key range (setup.allitems.name)>> <<print setup.allitems.name[_key]>> <br> <</for>> <</widget>> <<widget "listinv">> <<for _key range Object.keys($carrying)>> <br><<itemcount _key>><<= setup.allitems[_key].name>> <</for>> <</widget>> \ <<widget "datapads_read">> <<linkreplace "› Datapads">> <<set _read = "">> <<if $dataa>><<set _read += "a">><</if>> <<if $datab>><<set _read += ", b">><</if>> <<if $datac>><<set _read += ", c">><</if>> <<if $datad>><<set _read += ", d">><</if>> <<if $datae>><<set _read += ", e">><</if>> <<if $dataf>><<set _read += ", f">><</if>> <<if $datag>><<set _read += ", g">><</if>> <<if $datah>><<set _read += ", h">><</if>> <<if $datai>><<set _read += ", i">><</if>> <<if $dataj>><<set _read += ", j">><</if>> <<if $datak>><<set _read += ", k">><</if>> <<if $datal>><<set _read += ", l">><</if>> <br><span id="sub1">Datapads read:</span> _read <</linkreplace>> <</widget>> \ <<widget "inventory">> <span id="ITEMS"><b>YOU ARE CARRYING:</b></span><br> Current carrying capacity: $itemsmax items max <<for _key range Object.keys($carrying)>> <br><br><b><<itemcount _key>><<= setup.allitems[_key].name>></b> <br><span id="sub1"><<= setup.allitems[_key].description>></span> <<if _showresources>> <br><span id="sub2">Resources: <<= setup.allitems[_key].resources>></span> <</if>> <</for>> <</widget>><<if $storagedoor1>><<set _useitem to "">>\ I float over to the storage unit at the far side of the room. The storage door has popped open enough to let me peer inside. I can see something shiny in there – I think it's an EMU pressure suit. Annoyingly, the door is jammed and won't open any further. I give it a good heave, but it's tricky in microgravity. I'm going to need to use something to force it open. <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench'>> <<goto "storage open">> <<elseif _useitem == 'metal-tray'>> <<replace "#output">>I jam the tray into the gap, but it's too flimsy. I need something sturdier.<</replace>> <<elseif _useitem == 'can-empty'>> <<replace "#output">>This empty can isn't strong enough to do much.<</replace>> <<elseif _useitem == 'pot-plant'>> <<replace "#output">>A pot plant is not going to help me.<</replace>> <<elseif _useitem == 'pencil'>> <<replace "#output">>The pencil will just snap, it's not strong enough.<</replace>> <<elseif _useitem == 'beaker'>> <<replace "#output">>The thin plastic beaker isn't going to be much use.<</replace>> <<elseif _useitem == 'pencil'>> <<replace "#output">>A pencil isn't strong enough to force this door open.<</replace>> <<elseif _useitem == 'rehydration'>> <<replace "#output">>The rehydration pack is soft and flimsy; it's not going to open this door.<</replace>> <<elseif _useitem>> <<replace "#output">>Hmmm. That's not going to work.<</replace>> <</if>> <</do>> <</nobr>>\ \ <span id="output">I'll need to use something to open the door</span> <<else>>\ I drift over to the large storage unit at the far side of the room. The storage door is locked tight, and there's no manual override. I'll have to open it another way. <</if>>\ <<if $life gt 1>>\ [[Back to the room|search the room]] <<else>>\ [[Back to the room|Examine the room]] <</if>><<audio "wrench" play volume 0.7>>\ I jam the wrench into the gap and pry the metal door open. It creaks a little, then pops free. Inside, I find an EMU; that's an 'Extravehicular Mobility Unit' or a 'space suit' as the plebs call it. There's a bulbous-looking helmet hanging above it. The suit is a one-size-fits-all number, and matte silver is definitely my colour. <<timed .2s t8n>>I also find a half-eaten burger in there. Despite my hunger, it makes me feel a little sick just looking at it. I guess I can still recycle it, and once I put this suit on, I'll be limited to rehydration and ration packs anyway. I spot a datachip token in there too – I can use that at the terminal to add a new Fabricator schematic. <<next>><<set _room to $storage>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> [[Put on the EMU|put on the space suit]]<</timed>><<set $suit to true>>\ I clumsily climb into the EMU. It takes me a good five or six minutes. Look, this stuff is harder than you think in microgravity. I eventually slip it on, and it shrinks to fit like a second skin. I secure the helmet over my head, and the HUD flickers into view in front of the visor. My breathing sounds like there's a large gorilla standing right behind me, which is a little disconcerting. Still, I'm feeling a lot more secure now. Oxygen levels look good, <<if $hydration lt 30>>but I'm quite hungry and <i>really</i> thirsty<<else>>I'm quite hungry, but the rehydration pack has sorted my thirst<</if>>. I'll need to keep an eye on that, but at least I'm now ready to explore. I wonder, is anyone else still alive? <span id="sub1"><i>New 'Suit HUD' information has been added to the side panel. <<if $easy>>Keep an eye on your oxygen level!<<else>>Keep an eye on your oxygen, food and water levels!<</if>></i></span> [[Back to the room|search the room]]I shout at the top of my voice. It's deafening in the confines of this claustrophobic space, but I'm not sure how soundproof the glass is. There's no one here to save me. [[Tap the control panel|Open your eyes]]<<set _pickdrop = 0>>\ <<do>><<inventory>><</do>> \ <<nobr>>\ <<if $carrying.hasOwnProperty("rehydration")>> <hr class="line"><<linkreplace "› Drink from the Rehydration pack?">> <<set $drunk to true>><<removeitem 'rehydration'>> <<set $hydration = Math.clamp($hydration + setup.water, 1, 103)>> <span id="sub2">I drink the contents and my thirst decreases.<br> The Rehydration pack is removed.</span><<redo>><<audio "gulp" play>><</linkreplace>> <</if>> <<if $carrying.hasOwnProperty("rations1") or $carrying.hasOwnProperty("rations2") or $carrying.hasOwnProperty("rations3")>> <hr class="line"><<linkreplace "› Eat the food rations?">> <<if $carrying.hasOwnProperty("rations1")>><<removeitem 'rations1'>><<elseif $carrying.hasOwnProperty("rations2")>><<removeitem 'rations2'>><<else>><<removeitem 'rations3'>><</if>> <<set $food = Math.clamp($food + setup.rations, 1, 103)>> <<set $hydration = Math.clamp($hydration + 3, 1, 103)>> <span id="sub2">I eat the contents and my hunger decreases.<br> The rations are removed.</span><<redo>><<audio "gulp" play>><</linkreplace>> <</if>> <<if $carrying.hasOwnProperty("maxiration")>> <hr class="line"><<linkreplace "› Equip the 'MaxiRations'?">> <<audio "gulp" play>> <<set $maxiration to true>> <<removeitem 'maxiration'>> <<set $food = 99>><<set $hydration = 99>> <span id="sub2">I attach the MaxiRations™ to my suit – solving all my hunger and thirst problems.<br> The MaxiRations™ are removed.</span><<redo>><<audio "gulp" play>><</linkreplace>> <</if>> <<if $carrying.hasOwnProperty("oxygen-full")>> <hr class="line"><<linkreplace "› Use the O2 canister?">> <<removeitem 'oxygen-full'>> <<additem 'oxygen-empty'>> <<set $o2 to 103>><<audio "o2" play>> <span id="sub2">I plug the O2 canister into my suit and watch as my oxygen supply refills.<br> The O2 canister is now empty.</span><<redo>><</linkreplace>> <</if>> <<if $carrying.hasOwnProperty("backpack-large")>> <hr class="line"><<linkreplace "› Equip the large backpack?">> <span id="sub2">Large backpack equipped and removed from the inventory. Maximum items increased to 10.</span> <<set $itemsmax = 10>><<audio "upgrade" play>><<removeitem 'backpack-large'>><<redo>><</linkreplace>> <<elseif $carrying.hasOwnProperty("backpack-small")>> <hr class="line"><<linkreplace "› Equip the small backpack?">> <span id="sub2">Small backpack equipped and removed from the inventory. Maximum items increased to 7.</span> <<set $itemsmax = 7>><<audio "upgrade" play>><<removeitem 'backpack-small'>><<redo>><</linkreplace>> <</if>> <<if _mascot>> <<if !$mascot>> <hr class="line"><<linkreplace "› Turn on the company mascot?">> <span id="sub2">I operate the little switch on the back of the furry creature to turn it on.</span> <<set $mascot = true>><<audio "beep" play>><</linkreplace>> <<else>> <hr class="line"><<linkreplace "› Turn off the company mascot?">> <span id="sub2">I flick the switch to turn the annoying thing off.</span> <<set $mascot = false>><<audio "beep" play>><</linkreplace>> <</if>><</if>> <hr class="line"><<linkreplace "› Show resources">> <<do>> <span id="ITEMS"><b>Current resources:</b></span><br> <span id="cols2"> Biomass: $biomass | Metals: $metals | Water: $water | Minerals: $minerals | Polymers: $polymers </span> <</do>><br> <<set _showresources to true>><<redo>> <</linkreplace>><br> <<datapads>> <<linkreplace "› Available fabrication schematics">> <span id="ITEMS"><b>Available fabrication schematics:</b></span> <<for _item range $schema>> <br><<print setup.allitems[_item].name>> <span id="sub1">: [<<print setup.allitems[_item].resources>>]</span> <</for>><</linkreplace>><br> /* <<datapads_read>> */ <hr class="line"> <</nobr>>\ <<return "⏴ RETURN">><<widget "temp">> /* add variables here that may not be contained in old saves */ <</widget>> \ <<widget "addgen">> /* _args[0] is the item and _args[1] is the room */ <<if !$carrying.hasOwnProperty(_args[0]) && _args[1].length lt 10>> <<set _args[1].pushUnique(_args[0])>> <</if>> <</widget>> \ <<widget "switcher">> <<if $story>> <<set $diff = "STORY">> <<set $easy to true>><<set $hard to false>> <<if $reclevel == 1>><<set $degrade to 0.85>><</if>> <<if !$gailconnect>><<set $engine = 89>><</if>> <<elseif $easy>> <<set $diff = "EASY">> <<set $hard to false>><<set $story to false>> <<if $reclevel == 1>><<set $degrade to 0.78>><</if>> <<if !$gailconnect>><<set $engine = 79>><</if>> <<elseif !$hard>> <<set $diff = "NORMAL">> <<set $easy to false>><<set $story to false>> <<if $reclevel == 1>><<set $degrade to 0.75>><</if>> <<if !$gailconnect>><<set $engine = 73>><</if>> <<if $hydration == 99>><<set $hydration to $hydrationt>><</if>> <<if $food == 99>><<set $food to $foodt>><</if>> <<else>> <<set $diff = "SURVIVAL">> <<set $easy to false>><<set $story to false>><<set $hard to true>> <<if $reclevel == 1>><<set $degrade to .7>><</if>> <<if !$gailconnect>><<set $engine = 67>><</if>> <<if $hydration == 99>><<set $hydration to $hydrationt>><</if>> <<if $food == 99>><<set $food to $foodt>><</if>> <</if>> <<if $hydration lt 99>><<set $hydrationt to $hydration>><</if>> <<if $food lt 99>><<set $foodt to $food>><</if>> <<set $degradeperc to $degrade*100+"%">> <<redo>> <</widget>> \ <<widget "close">> <<script>>Dialog.close();<</script>> <</widget>> \ <<widget "addition">> <<if !$deckplan>><<set _message += " You may also find it useful to add the deckplan to your Suit HUD. ">><</if>> <<if $itemsmax lt 5>><<set _message += " I also recommend finding and equipping a small backpack to carry more items. You had one in your cabin.">><</if>> <</widget>> \ <<widget "skip">> <<include "restart">> <<set $start to true>><<set $inventory to true>> <<set $invcount = 0>><<set $suit to true>> <</widget>> \ <<widget "death">> <<set $death++>> <<set State.metadata.set("death", $death)>> <</widget>> \ <<widget "savefix">> <<set $death to State.metadata.get("death")>> <<if $o2 lt 10>><<set $o2 = 10>><</if>> <<if $food lt 9>><<set $food = 9>><</if>> <<if $hydration lt 9>><<set $hydration = 9>><</if>> <</widget>> \ <<widget "datapads">> <<if $carrying.hasOwnProperty("datapad-a")>><<set $dataa to true>><</if>> <<if $carrying.hasOwnProperty("datapad-b")>><<set $datab to true>><</if>> <<if $carrying.hasOwnProperty("datapad-c")>><<set $datac to true>><</if>> <<if $carrying.hasOwnProperty("datapad-d")>><<set $datad to true>><</if>> <<if $carrying.hasOwnProperty("datapad-e")>><<set $datae to true>><</if>> <<if $carrying.hasOwnProperty("datapad-f")>><<set $dataf to true>><</if>> <<if $carrying.hasOwnProperty("datapad-g")>><<set $datag to true>><</if>> <<if $carrying.hasOwnProperty("datapad-h")>><<set $datah to true>><</if>> <<if $carrying.hasOwnProperty("datapad-i")>><<set $datai to true>><</if>> <<if $carrying.hasOwnProperty("datapad-j")>><<set $dataj to true>><</if>> <<if $carrying.hasOwnProperty("datapad-k")>><<set $datak to true>><</if>> <<if $carrying.hasOwnProperty("datapad-l")>><<set $datal to true>><</if>> <</widget>> \ <<widget "progress">> <<set _pads to 0>><<set _progress to 0>> <<set _rooms to 0>><<set _secrets to 0>><<set _bonus to 0>> <<if visited ("search the room")>><<set _rooms ++>><<set _progress ++>><</if>> <<if visited ("storage open")>><<set _progress ++>><</if>> <<if visited ("Corridor")>><<set _progress +=2>><</if>> <<if visited ("cabin 3")>><<set _rooms ++>><<set _progress +=2>><</if>> <<if $deckplan>><<set _progress ++>><</if>> <<if visited ("admin inside")>><<set _rooms ++>><<set _progress +=2>><</if>> <<if visited ("Drawer open")>><<set _progress +=2>><</if>> <<if visited ("cabin 2")>><<set _rooms ++>><<set _progress +=2>><</if>> <<if visited ("charger")>><<set _progress ++>><</if>> <<if visited ("helm return")>><<set _rooms ++>><<set _progress +=2>><</if>> <<if visited ("use rope")>><<set _rooms ++>><<set _progress +=2>><</if>> <<if visited ("engineering inside")>><<set _rooms ++>><<set _progress +=2>><</if>> <<if visited ("cabin 1")>><<set _rooms ++>><<set _progress +=2>><</if>> <<if visited ("cabin 4 inside")>><<set _rooms ++>><<set _progress ++>><</if>> <<if visited ("archives inside")>><<set _rooms ++>><<set _progress ++>><</if>> <<if visited ("vote")>><<set _progress ++>><</if>> <<if $reclevel gt 2 && $fablevel gt 2>><<set _progress +=2>><</if>> <<if visited ("Climb out of the Fabrication pod")>><<set _progress +=2>><</if>> <<if visited ("deck lift choose")>><<set _rooms ++>><<set _progress ++>><</if>> <<if visited ("Head into nacelle A")>><<set _rooms ++>><<set _progress ++>><</if>> <<if visited ("Head into nacelle B")>><<set _rooms ++>><<set _progress ++>><</if>> <<if visited ("Cargo deck")>><<set _rooms ++>><<set _progress ++>><</if>> <<if $enginefixed>><<set _progress ++>><</if>> /* Score: 34 (rooms: 14) */ <<if $dataa>><<set _pads ++>><</if>> <<if $datab>><<set _pads ++>><</if>> <<if $datac>><<set _pads ++>><</if>> <<if $datad>><<set _pads ++>><</if>> <<if $datae>><<set _pads ++>><</if>> <<if $dataf>><<set _pads ++>><</if>> <<if $datag>><<set _pads ++>><</if>> <<if $datah>><<set _pads ++>><</if>> <<if $datai>><<set _pads ++>><</if>> <<if $dataj>><<set _pads ++>><</if>> <<if $datak>><<set _pads ++>><</if>> <<if $datal>><<set _pads ++>><</if>> /* Score: 4 (Datapads: 12) */ <<if $secret1>><<set _secrets ++>><</if>> <<if $secret2>><<set _secrets ++>><</if>> <<if $secret3>><<set _secrets ++>><</if>> /* Score: 1 (secrets: 3) */ <<set _schema = Math.clamp($schemacount/2, 0, 5)>> /* Score: 5 (capped) Schematics: 12 / 2 (max 5) */ <<set _progress += _schema + (_pads/3) + (_secrets/3)>> /* Score +1 (Bonus points: 5) */ <<if $detritus gte 50>><<set _bonus ++>><</if>> <<if $secret3>><<set _bonus ++>><</if>> <<if $hasmulti>><<set _bonus ++>><</if>> <<if $hasbackpack>><<set _bonus ++>><</if>> <<if $maxiration>><<set _bonus ++>><</if>> <<set _progress += _bonus/5>> /* Score: 34 (locations) + 4 (datapads) + 1 (secrets) + 5 (schematics) + 1 (bonus) = max 45 */ <<set _max = 45>> <<set _progress = Math.round((_progress / _max) * 100)>> <<set $progress = _progress + "%">> <</widget>> \ <<widget "cheat">> <<set $biomass = 500>><<set $metals = 500>><<set $water = 500>><<set $minerals = 500>><<set $polymers = 500>> <<set $reclevel = 3>><<set $fablevel = 3>><<set $itemsmax = 10>> <<set $hacked to true>> <<set $o2 = 999>><<set $food = 999>><<set $hydration = 999>> <<set $utility = ['wrench', 'rehydration', 'oxygen-full', 'rations1', 'data-schematic', 'data-schematic', 'data-schematic', 'data-schematic', 'data-schematic', 'sonic-wrench', 'circuit', 'rope', 'mascot', 'pistol', 'battery-full']>> <<set $cheat to true>><<set $cheat2 to true>><<set $deckplan to true>> <</widget>> \ <<widget "bodyresources">> <<if ($biomass - setup.body[0] gte 0) && ($metals - setup.body[1] gte 0) && ($water - setup.body[2] gte 0) && ($minerals - setup.body[3] gte 0)>> <b>There are enough resources for one more emergency body reprint</b> <<else>> <b>There are no longer enough resources for an emergency body reprint</b> <</if>> <</widget>> \ <<widget "music">> <<do>> <<if setup.music>> <<link "▸ MUSIC: ">> <<set setup.music to false>><<audio "theme" stop>><<audio "ambient" stop>><<redo>><</link>> ON <<else>> <<link "▸ MUSIC: ">><<set setup.music to true>> <<if passage () == "intro" or passage () == "Start" or passage () == "How to play" or passage () == "Credits" or passage () == "choose diff">> <<audio "theme" loop play volume 1>> <<else>> <<audio "ambient" loop play volume 1>> <</if>> <<redo>><</link>><b> OFF</b> <</if>> <</do>> <</widget>> \ <<widget "stars">> <video src="vid/stars.mp4" autoplay loop muted playsinline type="video/mp4"></video> <</widget>> \ <<widget "glitch">> <video src="vid/glitch.mp4" width="100%" autoplay muted playsinline type="video/mp4"></video> <</widget>> \ <<widget "transcend">> <<set $ending = _args[0]>> <<if visited () == 1>> <<if $ending == 1 && State.metadata.get("end1")>> <<elseif $ending == 2 && State.metadata.get("end2")>> <<elseif $ending == 3 && State.metadata.get("end3")>> <<else>> <<progress>> <<if $t == 0>><<set $textspeed = "Normal">> <<else>><<set $textspeed = "Fast">><</if>> <<if _args[0] == 1>> <<set State.metadata.set("end1", true)>> <<elseif _args[0] == 2>> <<set State.metadata.set("end2", true)>> <<elseif _args[0] == 3>> <<set State.metadata.set("end3", true)>> <</if>> <<if !visited ("Strike")>><<set $vote to "missed">><</if>> <<if !$gailconnect>><<set $gailconnect to false>><</if>> <<if !$gaildead>><<set $gaildead to false>><</if>> <<if !$pistolused>><<set $pistolused to false>><</if>> <<script>> var sendData = JSON.stringify({ "ID": SugarCube.State.variables['uniq'], "Easy": SugarCube.State.variables['diff'], "%": SugarCube.State.variables['progress'], "Ending": SugarCube.State.variables['ending'], "Deaths": SugarCube.State.variables['death'], "GAIL": SugarCube.State.variables['gailconnect'], "Pistol": SugarCube.State.variables['pistolused'], "Killed": SugarCube.State.variables['gaildead'], "Text": SugarCube.State.variables['textspeed'], "Vote": SugarCube.State.variables['vote'], "Ver": SugarCube.State.variables['ver'], }); $.ajax({ url:"https://script.google.com/macros/s/"+setup.exec+"/exec", method:"POST", dataType: "json", data: sendData }).done(function() {}); <</script>> <</if>><</if>> <</widget>>The storage unit stands open. Now I've taken the EMU, there's plenty of space in there. This could be a good place to store anything I find – anything that I don't want to recycle, that is. <<set _room to $storage>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<if visited ("Corridor")>>\ [[Back to the room|search the room]] <<link "Back to the upper corridor" "up the corridor">><</link>> <<else>>\ [[Back to the room|Examine the room]] <<link "Head over to the door" "Peer through the door window">><</link>> <</if>>\<div id="terminal"><span id="sub2">FABRICATOR UPGRADE</span> <<do>>\ Recycler currently level: $reclevel of 3 <b>Fabricator currently level: $fablevel of 3</b> <<if $carrying.hasOwnProperty("data-fabupgrade")>>\ \ <<if $fablevel lt 3>><<link "› Upgrade fabricator">><<audio "upgrade" play>><<set $fablevel ++>><<removeitem data-fabupgrade>><<redo>><</link>><<else>><b>Fabricator fully upgraded</b><</if>> \ <span id="output"></span>\ <<else>>\ <span id="sub2">\ <<if $fablevel == 2>>\ Fabricator has been upgraded. Upgrade datachip removed. You can now add Level 2 schematics. <<else>>\ <b>Fabricator has been fully upgraded.</b> Upgrade datachip removed. You can now add Level 3 schematics. <</if>>\ </span>\ \ <</if>>\ <</do>>\ </div> [[Back|check the terminal]] <<link "Leave the terminal" "search the room">><</link>><<temp>> <<itemcheck>> <<survival>> <<engine>> <<mascot>><div id="terminal"><span id="sub2">FABRICATION TERMINAL</span> <b>Ship status</b> | <<link "Room status" "Room status">><</link>> | <<link "Resources" "Terminal resources">><</link>> | <<link "Emergency Protocol" "Emergency">><</link>> <b>Ship status:</b> Gravity wells: offline Hull integrity warning <<if $gailconnect && $engine lt 300>>\ Engines: nacelle-A: _engine mins remaining | nacelle-B: offline <<else>>\ Engines: nacelle-A: ok | nacelle-B: offline <</if>>\ <b>Crew status:</b> <<if !$switchready>>\ Captain Olsen: status unknown <i>[no backup]</i> Engineer Yoshida: status unknown <i>[no backup]</i> Comms Officer Wilson: <b>emergency reprint</b> Security Officer Ananya: status unknown <i>[no backup]</i> <<else>>\ Captain Olsen: <b>emergency backup data</b> Engineer Yoshida: status unknown <i>[no backup]</i> Comms Officer Wilson: status unknown <i>[no backup]</i> Security Officer Ananya: status unknown <i>[no backup]</i> <</if>>\ </div> <<if $life gt 1>>\ <<link "Leave the terminal" "search the room">><</link>> <<else>>\ <<link "Leave the terminal" "Examine the room">><</link>> <</if>>\<div id="terminal"><span id="sub2">FABRICATION TERMINAL</span> <<link "Ship status" "Ship status">><</link>> | <b>Room status</b> | <<link "Resources" "Terminal resources">><</link>> | <<link "Emergency Protocol" "Emergency">><</link>> <b>Fabricator room:</b> Terminal: online Fabricator: online Recycler: online GAIL: disconnected <b>Storage unit:</b> <<if $storagedoor1>>Storage unit is unlocked<<else>><<linkreplace "› Unlock storage unit">>Storage unit is unlocked<<set $storagedoor1 to true>><<audio "beep" play>><</linkreplace>><</if>> </div> <<if $life gt 1>>\ <<link "Leave the terminal" "search the room">><</link>> <<else>>\ <<link "Leave the terminal" "Examine the room">><</link>> <</if>>\<div id="terminal"><span id="sub2">FABRICATION TERMINAL</span> <<link "Ship status" "Ship status">><</link>> | <<link "Room status" "Room status">><</link>> | <b>Resources</b> | <<link "Emergency Protocol" "Emergency">><</link>> <b>Recycler level: $reclevel of 3 </b> <i><<if $reclevel lt 3>>Recycler at $degradeperc efficiency<<else>>Use the Fabricator pod to scan or recycle larger objects<</if>></i> <b>Fabricator level: $fablevel of 3 </b> <i>Use <<if $fablevel == 1>>Level 1<<elseif $fablevel == 2>>Level 1 & 2<<else>>Level 1, 2 & 3<</if>> schematics</i> <span id="ITEMS"><b>Current resources:</b></span> <span id="cols2">\ Biomass: $biomass | Metals: $metals | Water: $water | Minerals: $minerals | Polymers: $polymers </span>\ <span id="sub1"><<bodyresources>></span> </div> <<if $life gt 1>>\ <<link "Leave the terminal" "search the room">><</link>> <<else>>\ <<link "Leave the terminal" "Examine the room">><</link>> <</if>>\<<if visited() is 1 && !$lastloc>>\ <<set $lastloc = "up">>\ <<unset $bodyseen>>\ <<set $path.pushUnique('Corridor')>>\ <<if $story>><<set $corridor.push('oxygen-full')>><</if>>\ <<if !$hard>><<addgen data-schematic $breach>><<addgen battery-empty $security>><<addgen battery-empty $corridor>><<set $corridor.push('fragment-small')>><</if>>\ <</if>>\ I emerge out into the upper end of the wide, hexagonal connecting corridor that extends down the full length of the ship. One of the main lights is on, but it's flickering like a distant star about to go nova; tiny ice crystals slowly spin and glitter in the light. The rest of the lighting is out, so it's pretty creepy in here. Silhouetted objects are floating around, including… including my own body. I don't think I'll ever get used to seeing that. I do my very best to ignore it, but every time I think about it I… I can't really process it. Towards the far end, the corridor looks in pretty bad shape; the ceiling is buckled and twisted, and there are fragments of the hull and other debris floating along the entire length. It looks like there's been a major hull breach – that would certainly explain the vacuum. There's no sign of life, but all the other doors are shut. There could still be survivors somewhere, but right now, that seems less likely. [[Explore the upper corridor|up the corridor]] [[Head further down to the lower corridor|down the corridor]] [[Search through the floating debris|corridor items]] <<link "Back to the Fabrication room" "Fabrication">><</link>><<set $engine to 0>><<death>>\ <<audio "boom" play>>\ <<timed .5s t8n>>\ Suddenly, the ship starts to shake – the engine is going critical! There's a pulse that ripples through the hull, followed by a moment of complete stillness. Heat, equivalent to a small sun, radiates outward from the engines, vapourising everything in its path… <<next>><span id="sub1">If, perhaps, a few people back on Earth happened to be looking up into the night sky at just the right time and place, they might have seen the briefest birth and death of a new star far out in the outer reaches of the galaxy.</span> <<next>><b>This is the end of my journey.</b> <<next>><<if (Save.browser.size > 0)>><<link "load most recent save">><<run Save.browser.continue()>><<run Engine.show()>><</link>><</if>> <<link "back to the start" "Start">><</link>><</timed>><<if $name == setup.nameb>>\ <<if $capcarried>>\ <<unset $capcarried>>\ The stuff I was carrying has joined the rest of the debris. The body that floats down here used to be mine, but now I look at it through the eyes of someone else. I guess… If I ever get my body back, I need to appreciate myself a little more. If I ever get it back. <<else>>\ My old body still drifts here, another discarded object, just like the rest. I shake my head to try and clear these morbid thoughts. I need to keep hold of who I am. <</if>>\ <<else>>\ I try to ignore the big floating shape that used to be me<<if $corridor.length gt 1>>, and concentrate on all the other stuff drifting gently around the entire length of the corridor<<else>>, but it's hard to miss now I've cleared most of the other debris away<</if>>. <<if $captainbody == "corridor1" && $engineerbody == "corridor1">>The body of Captain Matheus floats amongst the debris in the upper corridor, and nearby, the body of Jason rests by one wall.<<elseif $captainbody == "corridor2" && $engineerbody == "corridor2">>The body of Captain Matheus floats amongst the debris in the lower corridor, and nearby, the body of Jason rests by one wall. <<elseif $captainbody == "corridor1">>The body of Captain Matheus also floats amongst the debris in the upper corridor. <<elseif $captainbody == "corridor2">>The body of Captain Matheus is floating amongst the debris in the lower corridor. <</if>><<if $engineerbody == "corridor1" && $captainbody != "corridor1">> Jason's body rests by one wall in the upper corridor.<<elseif $engineerbody == "corridor2" && $captainbody != "corridor2">>Jason's body rests by one wall in the lower corridor.<</if>> <</if>>\ <<set _room to $corridor>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<if $name == setup.namea>>\ [[Look at my dead body|my body]] <</if>>\ <<if $lastloc == "up">>\ [[Back to the upper corridor|up the corridor]] <<link "Head down the corridor towards the engines" "down the corridor">><</link>> <<elseif $lastloc == "down">>\ [[Back to the lower corridor|down the corridor]] <<link "Head up the corridor towards the helm" "up the corridor">><</link>> <<else>>\ <<link "Head up the corridor towards the helm" "up the corridor">><</link>> <<link "Head down the corridor towards the engines" "down the corridor">><</link>> <</if>>\<<set $food to 0>><<death>>\ <<timed .5s t8n>> I feel weak… black spots dance in front of my eyes… I can't form coherent thoughts… I feel… so hungry… I need to… <<next>><span id="sub1">I pass out from lack of food… soon enough the vacuum of space claims me. The ship doesn't have enough resources for another reprint, so my body joins the rest of the detritus.</span> <<next>><b>This is the end of my journey.</b> <<next>><<if (Save.browser.size > 0)>><<link "Load most recent save">><<run Save.browser.continue()>><<run Engine.show()>><</link>><</if>> <<link "Back to the start" "Start">><</link>><</timed>><<set $o2 to 0>><<death>>\ <<timed .5s t8n>> My suit has run out of oxygen – I'm breathing in the last dregs, my lungs straining for every last gasp. I black out before the vacuum eventually takes me in its cold embrace… <<next>><span id="sub1">The ship doesn't have enough resources to reprint me, and my body joins the rest of the detritus.</span> <<next>><b>This is the end of my journey.</b> <<next>><<if (Save.browser.size > 0)>><<link "Load most recent save">><<run Save.browser.continue()>><<run Engine.show()>><</link>><</if>> <<link "Back to the start" "Start">><</link>><</timed>><<set $map = 0>><<set $lastloc = "up">>\ <<if $name == setup.nameb && !$corridorup>>\ <<set $corridorup to true>>\ I drift expertly through the corridor; the remains of life float around me. The evidence of my death – or my <i>previous body's</i> death – floats somewhere up ahead. I'm feeling serene, like a fish swimming calmly beneath ferocious waves that batter against anyone who dares to float on the surface. <<if $capcarried>>\ All the stuff I was previously carrying when… when I was Jean… it all got sucked out into the corridor when I opened the door. I should probably retrieve it. <<elseif $easy && !$secret1>>\ Now I am, or at least, I <i>look like</i> the Captain, I wonder if I can access more things on the Helm terminal? <</if>>\ <<else>>\ I'm in the upper corridor, near the large door to the Helm. On either side of the corridor are doors to the Admin office and the Fabricator room. Further along are the doors to Cabins 1 and 2, and on the wall nearby is a display showing a deck plan of the ship. <<if $captainbody == "corridor1" && $reclevel lt 3>>The dead body of Captain Matheus also floats alongside all the other debris in here. <</if>><<if $engineerbody == "corridor1">> Jason's frozen body rests by one wall.<</if>> \ <<if !$datab && $easy && !visited ("admin office") && visited ("cabin 3")>><br><<if $carrying.hasOwnProperty("datapad-b")>>That datapad I picked up might have some useful info on it?<br><<else>>I'm sure there was a datapad somewhere with the code to the Admin office on it…<br><</if>><</if>>\ \ <<if $captainbody == "corridor1" && $fablevel gt 1 && $reclevel gt 2>>\ <<set $temp = 2>><br>Captain Matheus's body floats among the detritus in the upper corridor. <<if $easy>> I wonder, now that the Recycler is fully upgraded, can I use it to somehow get past the scanner at the decklift?<</if>> <</if>><</if>>\ <<nobr>>\ <<if visited ("helm return")>><<link "Back to the Helm" "helm return">><</link>> <<elseif visited ("helm hack")>><<link "Helm (requires hacking)" "helm hack">><</link>><<elseif visited ("helm")>><<link "Helm (requires hacking)" "helm">><</link>><<else>><<link "Try the Helm" "helm">><</link>><</if>><br> <<link "Back to the Fabrication room" "Fabrication">><</link>><br> <<if visited ("admin inside")>><<link "Back to the Admin office (GAIL)" "admin inside">><</link>><<elseif visited ("admin office")>><<link "Admin office (requires code)" "admin office">><</link>><<else>><<link "Try the Admin office" "admin office">><</link>><</if>><br> <<if visited ("cabin 1")>><<link "Back to Cabin 1 (Matheus's cabin)" "cabin 1">><</link>><<elseif visited ("cabin door 1")>><<link "Cabin 1 (requires code)" "cabin door 1">><</link>><<else>><<link "Try Cabin 1" "cabin door 1">><</link>><</if>><br> <<if visited ("cabin 2")>><<link "Back to Cabin 2 (Jason's cabin)" "cabin 2">><</link>><<elseif visited ("cabin 2 enter")>><<link "Cabin 2 (requires hacking)" "cabin 2 enter">><</link>><<elseif visited ("cabin door 2")>><<link "Cabin 2 (requires hacking)" "cabin door 2">><</link>><<else>><<link "Try Cabin 2" "cabin door 2">><</link>><</if>><br> <<link "Check the deckplan" "deckplan">><</link>> <br><br> <<if $captainbody == "corridor1">><<link "Move the Captain's body" "move captain">><</link>><br><</if>> <<if $engineerbody == "corridor1">><<link "Move Jason's body" "move engineer">><</link>><br><</if>> <<link "Search through the floating debris" "corridor items">><</link>><br><br> <<link "Head down the corridor (towards the engines)" "down the corridor">><</link>><br> <</nobr>><<if visited () is 1>>\ I flail around a bit, trying to move in microgravity. Despite years of space travel under my belt, I'm too used to traveling with the gravity wells on. I probably don't look too cool on the vidscreens, but I eventually make my way to the door to Cabin 2. Of course, it's locked. The door looks like it's taken some damage, probably during the incident. There's a biometric lock, but it's not working. I read the nameplate: 'Jason Yoshida - Engineering'. <<if !visited ("flourish")>>I try to picture his face, but my memories are still scrambled.<</if>> Beside the lock is a keypad. I press some keys at random, but nothing happens. I guess that's not working either. <<if $hacked>> I suppose I could try hacking it?<<else>>I suppose I could try hacking it somehow, but… I have no idea how to do that. If only Jason were here.<</if>> <<else>>\ I make my way over to the door to Cabin 2 – 'Jason Yoshida's' room. <<if !visited ("flourish")>>I try to picture his face, but my memories are still messed up.<</if>> The door looks like it's taken some damage, probably during the accident. There's a biometric lock, but it's not working. There's a keypad below it, but that's not working either. <<if $hacked>> I suppose I could try hacking it?<</if>> <</if>>\ \ <<if $hacked>>\ <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench'>> <<replace "#output">>A wrench is not a subtle tool. I need something else.<</replace>> <<elseif _useitem == 'circuit'>> <<replace "#output">>A Circuit tester will come in handy once I've removed the panel.<</replace>> <<elseif _useitem == 'pistol' && _pistol>> <<goto "Cabin 2 blast">> <<elseif _useitem == 'pistol'>> <<replace "#output">>Unfortunately, that won't work without a charged battery pack.<</replace>> <<elseif _useitem == 'sonic-wrench' or _useitem == 'multi'>> <<goto "cabin 2 enter">> <<elseif _useitem == 'mascot'>> <<replace "#output">>I'm not sure how I can use that to open the door.<</replace>> <<elseif _useitem>> <<replace "#output">>Hmmm. That's not going to work.<</replace>> <</if>> <</do>> <</nobr>>\ \ <span id="output">I'll need to use something to access the panel</span> <</if>>\ <<link "Back to the upper corridor" "up the corridor">><</link>> <<if $cheat2>>[[CHEAT|jason]]<</if>>\<<if visited () == 1>>\ I guide myself slowly over to the door to Cabin 1. There's a nameplate above it that reads "Matheus Olsen: Captain". I hold my gloved hand up to the sensor, but it just ignores me. Can it even read biometrics through a space suit? I've never had to think about that before. <<else>>\ I make my way back to the door to Cabin 1, the Captain's cabin. Now I look closer, I don't think the biometric scanner is working at all. That leaves me with the keypad. <<if visited ("helm inside") or _pistol>>I guess I need to figure out the code, or try something else.<<else>>I guess I need to find the code somehow.<</if>> <</if>>\ <<if $captainbody == "corridor1">>I glance at Matheus's body, drifting nearby, but the sensor on this door isn't working. I don't think I can open it that way. <</if>><<if visited ("cabin 4 inside")>>I'm trying to remember what I heard in that 'memory'. Did the Captain set his door code to something from a company jingle…?<<else>> I'm trying to remember if I ever knew his passcode, but I'm coming up blank. Maybe it'll come to me later.<</if>> <<keypad "4621" "cabin 1 entry">> <<if visited ("helm inside") or _pistol or visited ("cabin 4 inside")>>\ <<link "Or use something on the keypad" "Captain use">><</link>> <</if>>\ <<link "Back to the corridor" "up the corridor">><</link>> <<if $cheat && $reclevel gt 2>>[[CHEAT|cabin 1 entry]]<</if>>\I slide myself over to the door to Cabin 3. Just like all the others, the door is locked tight, probably due to the hull breach. Standard doors usually just open on contact. Private rooms have a simple biometric check registered to the owner. This one is locked to 'Jean Wilson – Comms'. <<link "Try the biometric lock" "cabin 3 enter">><video src="vid/glitch.mp4" width="1%" muted playsinline type="video/mp4"></video><</link>> <<link "Back to the lower corridor" "down the corridor">><</link>><<if visited () is 1>>\ I float up the corridor until I get to the large door that guards the Helm. There's a semi-opaque polyglass window set into the door. I try peering through, but I can't see much. There's no sign of movement, but it could still be pressurised. I try the sensor, but nothing happens. I try the security keypad, but it doesn't even light up. I try banging on the door… no response. It looks like I'm not getting in, unless I can figure out a way to hack the lock. <<else>>\ I head back to the end of the corridor until I get to the large door to the Helm. There's an opaque window set in the door – there's no sign of movement beyond. Neither the sensor nor the keypad is working, but I may be able to hack it somehow. <</if>>\ <<if $hacked>>\ <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench'>> <<replace "#output">>A wrench is… not a subtle tool. I need something else.<</replace>> <<elseif _useitem == 'sonic-wrench' or _useitem == 'multi'>> <<goto "helm hack">> <<elseif _useitem == 'circuit'>> <<replace "#output">>That will help once I've removed the panel.<</replace>> <<elseif _useitem>> <<replace "#output">>That's not going to work.<</replace>> <</if>> <</do>> <</nobr>>\ <span id="output">I'll need to use something to access the panel</span> <</if>>\ \ <<link "Back to the upper corridor" "up the corridor">><</link>> <<if $cheat2>>[[CHEAT|helm inside]]<</if>>\<<if visited () == 1>>\ I pull myself along until I get to the door to Cabin 4. It's worryingly close to the hull breach, and whatever took out a section of the roof has buckled the hull and part of the door, too. The nameplate reads: 'Kashvi Ananya: Security'. There's a gap, a few centimeters wide, between the door and the wall, and I can just see into the dark interior. I reach my fingers into the gap and try to open the door, but it's not budging – I think it's jammed. There's no point trying the lock; it's not the lock that's the problem. Unfortunately, it looks like I'm not getting inside this one. <<else>>\ I pull myself along until I get to the door to Cabin 4, Kashvi's room. It's worryingly close to the hull breach. The incident that took out part of the roof has buckled the hull and part of the door, too. There's a gap, a few centimeters wide, between the door and the wall, and I can just see into the dark interior. Unfortunately, it looks like I'm not getting inside this one. For a second, I think I see movement inside – is there someone in there? I shout out and bang on the door, but no one answers. <</if>>\ \ <<if $carrying.hasOwnProperty('wrench') && !$usedwrench>>\ <<linkreplace "Try using the wrench" t8n>><<set $usedwrench to true>>I grab my wrench and try to force the door that way. The wrench is strong, but the door is stronger. I don't think there's anything I can use to force it open from this side.<</linkreplace>> <</if>>\ <<link "Back to the lower corridor" "down the corridor">><</link>><<if visited () == 1>>\ I head over to the Archive office, on the other side of the corridor from the Engineering room. Like the other doors, this one is locked, but there's no biometric scanner, no keypad. This one requires a passkey. \ <<if !$carrying.hasOwnProperty('passkey')>>\ I have a sudden little flash of memory. I think the Security Officer carried it around. I guess if I find her… I find the passkey? <</if>>\ <<else>>\ I head back to the Archive office door. It's locked, but there's no biometric scanner or keypad on this one; it looks like it requires a passkey. I think the Security Officer carried it around. <</if>>\ <<if $carrying.hasOwnProperty('passkey') && visited ("helm return") && $secdoor != 1>>\ <<if $secdoor == 2>>It looks like the door now has power. <</if>>I check through the items I'm carrying – thankfully, I still have the key I found in Cabin 4 – thank you, Kashvi. <<link "› Use the passkey" "archives inside">><</link>> <<elseif $carrying.hasOwnProperty('passkey')>>\ <<set $secdoor = 1>>\ I try the passkey I found in Cabin 4… nothing happens. Damn! I really thought that would work. Maybe I need to check if the door is connected to the power grid? I should be able to do that in the Helm. <<elseif visited ("cabin 4 inside")>>\ <<scan passkey>>\ I need the security passkey – I think I left it in _found. <<else>>\ I bang a few times on the door, just in case. No answer. <</if>>\ <<link "Back to the lower corridor" "down the corridor">><</link>> <<if $cheat2>>[[CHEAT|archives inside]]<</if>>\<<if visited () is 1>>\ I push myself off the wall and drift across the corridor to the Admin Office door. Maybe I can try talking to GAIL – it's 'her' office after all. Naturally, it's locked – all the doors would have locked the instant the ship went into Emergency Protocol. I hold my palm to the sensor, but it won't let me in. There's a keypad beneath. It's still active, so I just need the code. <<else>>\ I head back to the Admin Office. If GAIL is still active, that's where I'll be able to talk to her. The biometrics won't let me in, but the keypad looks like it's working. I just need to find the code. <</if>>\ <<if visited ("cabin 3") or $cheat>><<keypad 7196 "admin inside">><<else>><<keypad 0000 "admin office">><</if>> <<link "Back to the upper corridor" "up the corridor">><</link>> <<if $cheat2>>[[CHEAT|admin inside]]<</if>>\<<set $lastloc = "down">>\ <<if $name == setup.nameb && !$corridordown>>\ <<set $corridordown to true>>\ I make my way back down the corridor towards the engines. I move past my own body, my <i>other</i> body, feeling like I'm just floating through someone else's dream. I feel as if I'm coming apart; I don't know who 'me' is anymore. <<if !$secret3 && $easy>> I wonder briefly, do I have Captain's security clearance now? Could I access those logs in the Archives room? <</if>> <<else>>\ <<if lastVisited ("breach explore") == 1>>\ I climb back into the safety of the ship. Even though it doesn't offer much protection anymore, I still feel relieved to be back inside. I'm back in the lower corridor, beneath the large tear in the ship's hull. <<elseif $cabin4exit>>\ <<unset $cabin4exit>>\ It's almost a relief to be back in the same familiar corridor. Now the door to Cabin 4 is open – at least some of the way, I can get back in there whenever I need to. Down this end are the doors to Cabins 3 and 4, Archives, Engineering, and the deck lift at the end. <<elseif visited () == 1>>\ I move slowly down the long, central corridor, trying to avoid the floating debris as I go. At this end, I'm much closer to the hull breach, and the fact that I can see stars through the hole is a little unnerving. There are some more doors down this end: two more cabins, the Archive and Engineering rooms, and the doors to the deck lift. <<else>>\ I'm in the lower corridor, and there are some more doors at this end: two more cabins, the Archive and Engineering rooms, the hull breach, and the doors to the deck lift. <<if $captainbody == "corridor2">>The dead body of Captain Matheus also floats alongside all the other debris in here. <</if>><<if $engineerbody == "corridor2">> Jason's body rests by one wall.<</if>> <<if $name == setup.nameb && !$secret3 && !$hard>> As I drift, I wonder to myself, did the Captain have access to 'security-locked' data?<<elseif $captainbody == "corridor2" && $reclevel gt 2>><<if $easy>><br><br><</if>> I glance over at his body. Now that the Recycler is fully upgraded, I wonder…?<</if>> <</if>><</if>>\ <<nobr>>\ <<if visited ("cabin 3")>><<link "Back to Cabin 3 (my cabin)" "cabin 3">><</link>> <<else>><<link "Try Cabin 3" "cabin door 3">><</link>><</if>><br> <<if visited ("cabin 4 inside")>><<link "Back to Cabin 4 (Kashvi's cabin)" "cabin 4 return">><</link>> <<elseif visited ("cabin door 4")>><<link "Cabin 4 (blocked)" "cabin door 4">><</link>> <<else>><<link "Try Cabin 4" "cabin door 4">><</link>><</if>><br> <<if visited ("archives inside")>><<link "Back to Archives" "archives inside">><</link>> <<elseif visited ("archives")>><<link "Archives (requires passkey)" "archives">><</link>> <<else>><<link "Try Archives" "archives">><</link>><</if>><br> <<if visited ("engineering inside")>><<link "Back to Engineering" "engineering inside">><</link>> <<elseif visited ("Duct")>><<link "Back to Engineering" "Duct">><</link>> <<elseif visited ("engineering door")>><<link "Engineering (requires biometrics)" "engineering door">><</link>> <<else>><<link "Try Engineering" "engineering door">><</link>><</if>><br> <<link "Investigate the hull breach" "hull breach">><</link>><br> <<if visited ("deck lift choose")>><<link "Back into the Deck lift" "deck lift choose">><</link>><<elseif visited ("deck lift")>><<link "The Deck lift (requires biometrics)" "deck lift">><</link>><<else>><<link "Try the Deck lift" "deck lift">><</link>><</if>> <br><br> <<if $captainbody == "corridor2">><<link "Move the Captain's body" "move captain">><</link>><br><</if>> <<if $engineerbody == "corridor2">><<link "Move Jason's body" "move engineer">><</link>><br><</if>> <<link "Search through the floating debris" "corridor items">><</link>><br><br> <<link "Head up the corridor (towards the helm)" "up the corridor">><</link>><br> <</nobr>><<if visited () is 1>>\ As I get closer to the gaping hole in the roof of the ship, I can't help but feel a little nervous. For some reason, even though the vacuum in here is just as cold and empty as the black void outside, the fact that I can see all the way through is incredibly disconcerting. Now that I'm right by it, I can see that the structure is buckled inwards as if hit with great force. We clearly hit something – or something hit us. <<if visited ("GAIL1")>>I'm surprised GAIL has no data on this. It's a wonder there's anything left of the ship at all!<<else>>I really need to get into the Admin office and see if GAIL has any data on this – if she's still 'alive', that is.<</if>> I look up… through. The distant stars shine with the utter clarity you only get when looking at them directly, and distant nebulae glow with an almost iridescent colour. The hole is large enough for me to fit through. If I were crazy, I'd actually consider it. Am I crazy? <<else>>\ I make my way over to the gaping hole in the roof of the ship. The fact that I can see all the way through is incredibly disconcerting. The structure is buckled inwards as if hit with great force. <<if visited ("GAIL1")>>It's a wonder there's anything left of the ship at all. <<else>>I need to get into the Admin office and see if GAIL has any data on this – if she's still 'alive', that is.<</if>> The hole is large enough for me to fit through. <<if !visited ("breach explore")>>Am I crazy enough to try?<</if>> <</if>>\ <<link "Climb through the hull breach" "breach explore">><</link>> <<link "Back to the lower corridor" "down the corridor">><</link>><<savefix>>\ <<if $name == setup.nameb>>\ <<set $lift to 1>>\ As I move, my mind fills with thoughts that are not my own, memories of things and places that should not belong to me. Can a body contain memories? Can I really swap my mind in and out without consequence, and still be me? I eventually get to the doors to the deck lift. I'm a ghost, a reanimated corpse. I am borrowing his skin, and I can feel my mind drifting, detaching from reality. I glance up at the iris scanner and move towards it. If this doesn't work… The doors swish open, snapping me back to the here and now. I'm still Jean. It doesn't matter what I look like. I chose this, and now… well, now we're getting somewhere. <<link "Move into the decklift" "deck lift choose">><<audio "door" play>><</link>>\ <<elseif visited () is 1>>\ I pull myself along the corridor, using whatever hand and footholds I can. The corridor starts to turn as I move, or maybe it's me – either way, pretty soon I'm not entirely sure which way is up. I make it past the hull breach and all the way to the far end, and the sleek double doors of the deck lift. The deck lift leads to the engines and the cargo area. I've never really had much need to visit the lower deck; I don't think there's much to see. There's the maintenance access to the two engine nacelles, the main cargo hold, and that's about it. I examine the door; it looks like a biometric lock, but there's no keypad here, nothing I can hack. I try pressing my palm to the sensor – nothing. I guess I'm not getting through unless I get past the scanner. <<else>>\ I make my way all the way to the back of the craft and the doors to the deck lift. That should take me down to the engines and then on to the main cargo hold. But I need to get past the biometric scanner first. <</if>>\ \ <<if $captainbody == "corridor2">>\ <<link "Drag Captain Matheu's body over to the door" "captain door">><</link>> <</if>>\ <<if $engineerbody == "corridor2">>\ <<link "Move Jason's body towards the door" "Jason locked">><</link>> <</if>>\ <<link "Back to the lower corridor" "down the corridor">><</link>><<set $path.pushUnique('Helm')>>\ I'm still trying to figure this thing out when the door suddenly opens. There's a small gush of air as it does so. I guess I got it right! But let's not pretend it's fun. The next time I come across one of these, I'm tempted to just use a blaster on it. The Helm is a large space and contains all the ship's controls, comms and navigation. If GAIL is the brain of the operation, then this is the heart. The only light comes from a wide canopy display at the front and a few blinking lights illuminating the control panels. The room appears to be empty, just the same old ship debris floating around – then I spot someone sitting in the command chair. That must be the Captain! His back is to me, so he won't have seen me come in. <<link "Move over towards him" "Captain">><</link>><<widget "engine">> <<if $engine lt 300 && $gailconnect && !tags().includes('ignore')>> <<set $engine -= .12>><<if $hard>><<set $engine -= .02>><</if>> <<if $engine lte 0>><<goto "boom">><</if>> /* Player is going to have to try really hard to actually run out of time… */ <<if $easy or $engine lte 25>><<set $engine += .02>><</if>> <<if $engine lte 19>><<set $engine += .02>><</if>> <<if $engine lte 13>><<set $engine += .03>><</if>> <<if $engine lte 7>><<set $engine += .04>><</if>> <<set _engine to Math.floor ($engine)>> <</if>> <</widget>> \ <<widget "itemcheck">> <<if $carrying.hasOwnProperty("sonic-wrench")>> <<set _sonic to true>><</if>> <<if $carrying.hasOwnProperty("circuit")>> <<set _circuit to true>><</if>> <<if $carrying.hasOwnProperty("wrench")>> <<set _wrench to true>><</if>> <<if $carrying.hasOwnProperty("multi")>> <<set _multi to true>><<set _circuit to true>> <<set _wrench to true>><<set _sonic to true>> <</if>> <<if $carrying.hasOwnProperty("battery-full")>> <<if $carrying.hasOwnProperty("pistol")>> <<set _pistol to true>><</if>> <<if $carrying.hasOwnProperty("mascot")>> <<set _mascot to true>><</if>> <</if>> <</widget>> \ <<widget "qte">> <<set $timer to _args[0]>> <<script>> !function(){ $(document).ready(function(){ var dur = (State.variables.timer) * 1000; $('.time-bar .w0').animate({width: '0%'}, dur, 'linear'); }); }(); <</script>> <div class="time-bar"><span class="w0"></span></div> <</widget>> \ <<widget "mascot">> <<do>><<if $carrying.hasOwnProperty("mascot") && $mascot && !tags().includes('ignore')>> <<if (!visited ("cabin 1 entry") && visited ("Bonnie") && random (100) gt 78) or (random (100) gt 98)>>\ <span id = "sub1">The company mascot you're holding suddenly starts singing:</span><br> <<timed 0.1s t8n>><span id = "speech"><i>"Across 46 planets and 21 systems, Rainforest always delivers!"</i></span><</timed>><br><br> <<else>> <<set _squawk to setup.mascot.random()>> <span id = "sub1">The company mascot you're holding suddenly squawks:</span><br> <<timed 0.1s t8n>><span id = "speech"><i>"_squawk"</i></span><</timed>><br><br> <</if>><</if>><</do>> <</widget>> \ <<widget "survival">> <<if $suit && !$finale && !tags().includes('ignore') && lastVisited ("inventory") != 1 && lastVisited ("Help") != 1>> <<set $o2 -= 0.8>> <<if $easy && $o2 lt 30>><<set $o2 += 0.25>><</if>> <<if $hard && $o2 gt 28>><<set $o2 -= 0.2>><</if>> <<if !$maxiration && !$easy>> <<set $food -= 0.28>><<set $hydration -= 0.38>> <<if $hard>><<set $food -= 0.2>><<set $hydration -= 0.2>><</if>> <<else>> <<set $hydration = 99>><<set $food = 99>> <</if>> <span id="sub1"><i> <<if $o2 lte 24 && $o2 gt 13>>Oxygen is running low…<br><br><</if>> <<if $food lte 18 && $food gt 9>>Food is running low…<br><br><</if>> <<if $hydration lte 18 && $hydration gt 9>>Water is running low…<br><br><</if>> </i></span> <<if $o2 lte 13 or $food lte 9 or $hydration lte 9>> <span id="sub2"><b> <<timed 0.2s t8n>> <<if $o2 lte 13>>I glance at the O2 gauge. It's nearly run out!<</if>> <<if $food lte 9>>I'm starving, and I'm starting to feel weak with hunger…<</if>> <<if $hydration lte 9>>My throat is parched. I can't go on much longer without water…<</if>> <</timed>> &nbsp; <br><br></b></span> <<if $o2 lte 0>><<goto "noair">><</if>> <<if $food lte 0>><<goto "starvation">><</if>> <<if $hydration lte 0>><<goto "dehydration">><</if>> <</if>> <</if>> /* If player is running low, spawn items they need in the void */ <<if (($easy && $o2 lt 31) or (!$hard && $o2 lt 25) or $o2 lt 19)>> <<addgen oxygen-full $breach>><</if>> <<if $food lt 20 && $biomass lt 16 && !$carrying.hasOwnProperty("rations1")>> <<addgen choc $breach>><</if>> <<if $hydration lt 20 && $water lt 14 && !$carrying.hasOwnProperty('rehydration')>> <<addgen ice1 $breach>><</if>> <<if $polymers lt 11>><<addgen fragment-small $breach>><</if>> <<if $minerals lt 6>><<addgen meteoroid $breach>><</if>> /* player didn't add the rope and has run out of schematics */ <<if $schemacount gt 6 && !$schema.includes('rope')>> <<addgen data-schematic $breach>><</if>> <<if $schemacount gt 4 && $story && !$schema.includes('rope')>> <<addgen data-schematic $breach>><</if>> <</widget>> \ <<widget "keypad">> <<set _blnk = "––––">> <<set _ans = _blnk>> <div id="keypad"> <<do tag "kpad">> <<if _ans.length gt 4>><<set _ans = _ans[4]>> <<elseif _ans.length gt 3>> <<if _ans == _args[0]>><<audio "door" play>><<goto _args[1]>><<elseif _ans != _blnk>><<audio "error" play>><<set _ans = _blnk>><</if>><</if>> <span id="keyno">_ans</span> <br><hr class="line"> <</do>> <span id="keys"> <<button "1">><<audio "beep" play>><<set _ans += "1">><<redo "kpad">> <</button>>&nbsp;<<button "2">><<audio "beep" play>><<set _ans += "2">><<redo "kpad">><</button>>&nbsp;<<button "3">><<audio "beep" play>><<set _ans += "3">><<redo "kpad">><</button>> <br> <<button "4">><<audio "beep" play>><<set _ans += "4">><<redo "kpad">><</button>>&nbsp;<<button "5">><<set _ans += "5">><<redo "kpad">><<audio "beep" play>><</button>>&nbsp;<<button "6">><<set _ans += "6">><<redo "kpad">><<audio "beep" play>><</button>> <br> <<button "7">><<set _ans += "7">><<redo "kpad">><<audio "beep" play>><</button>>&nbsp;<<button "8">><<set _ans += "8">><<redo "kpad">><<audio "beep" play>><</button>>&nbsp;<<button "9">><<set _ans += "9">><<redo "kpad">><<audio "beep" play>><</button>> <br> </span> </div><div id="clear"></div> <</widget>> \ <<widget "hack">> <div id="keypad"> <<set _nums to [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>> <<set _num = [0,0,0,0,0,0,0,0,0]>> /* level 0 */ <<if _args[0] == 0>><<set _eq = [5,5,5,5,5,5]>> <<set _num[4] = 1>> /* level 1 */ <<elseif _args[0] == 1>><<set _eq = [15,8,12,8,21,6]>> <<set _num[1] = 9>><<set _num[3] = 3>> <<set _num[5] = 0>><<set _num[7] = 7>> /* level 2 */ <<elseif _args[0] == 2>><<set _eq = [15,19,10,10,18,16]>> <<set _num[0] = 1>><<set _num[5] = 7>><<set _num[7] = 4>> /* level 3 */ <<elseif _args[0] == 3>><<set _eq = [6,12,16,17,7,10]>> <<set _num[3] = 3>><<set _num[8] = 7>> /* level 4 */ <<elseif _args[0] gt 3>><<set _eq = [14,10,16,12,15,13]>> <</if>> POWER LEVEL:<br> <<do tag "circuit">> <<set _r1 = _num[0] + _num[1] + _num[2]>> <<set _r2 = _num[3] + _num[4] + _num[5]>> <<set _r3 = _num[6] + _num[7] + _num[8]>> <<set _c1 = _num[0] + _num[3] + _num[6]>> <<set _c2 = _num[1] + _num[4] + _num[7]>> <<set _c3 = _num[2] + _num[5] + _num[8]>> <<set _ans to 0>> <<if _r1 == _eq[0]>><<set _ans ++>><</if>> <<if _c1 == _eq[3]>><<set _ans ++>><</if>> <<if _r2 == _eq[1]>><<set _ans ++>><</if>> <<if _c2 == _eq[4]>><<set _ans ++>><</if>> <<if _r3 == _eq[2]>><<set _ans ++>><</if>> <<if _c3 == _eq[5]>><<set _ans ++>><</if>> <progress @max="6" @value="_ans"></progress> <</do>> <hr class="line"> <span id="hacks"> <<if _args [0] == 0>> <<cycle "_num[0]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[1]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[2]">><<optionsfrom _nums>><</cycle>> <br> <<cycle "_num[3]">><<optionsfrom _nums >><</cycle>> _num[4] <<cycle "_num[5]">><<optionsfrom _nums >><</cycle>> <br> <<cycle "_num[6]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[7]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[8]">><<optionsfrom _nums>><</cycle>> <br> <<elseif _args [0] == 1>> <<cycle "_num[0]">><<optionsfrom _nums>><</cycle>> _num[1] <<cycle "_num[2]">><<optionsfrom _nums>><</cycle>> <br> _num[3] <<cycle "_num[4]">><<optionsfrom _nums >><</cycle>> _num[5] <br> <<cycle "_num[6]">><<optionsfrom _nums>><</cycle>> _num[7] <<cycle "_num[8]">><<optionsfrom _nums>><</cycle>> <br> <<elseif _args [0] == 2>> _num[0] <<cycle "_num[1]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[2]">><<optionsfrom _nums>><</cycle>> <br> <<cycle "_num[3]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[4]">><<optionsfrom _nums >><</cycle>> _num[5] <br> <<cycle "_num[6]">><<optionsfrom _nums>><</cycle>> _num[7] <<cycle "_num[8]">><<optionsfrom _nums>><</cycle>> <br> <<elseif _args [0] == 3>> <<cycle "_num[0]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[1]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[2]">><<optionsfrom _nums>><</cycle>> <br> _num[3] <<cycle "_num[4]">><<optionsfrom _nums >><</cycle>> <<cycle "_num[5]">><<optionsfrom _nums>><</cycle>> <br> <<cycle "_num[6]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[7]">><<optionsfrom _nums>><</cycle>> _num[8] <br> <<elseif _args [0] == 4>> <<cycle "_num[0]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[1]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[2]">><<optionsfrom _nums>><</cycle>> <br> <<cycle "_num[3]">><<optionsfrom _nums >><</cycle>> <<cycle "_num[4]">><<optionsfrom _nums >><</cycle>> <<cycle "_num[5]">><<optionsfrom _nums>><</cycle>> <br> <<cycle "_num[6]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[7]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[8]">><<optionsfrom _nums >><</cycle>> <br> <<elseif _args [0] == 5>> <<do>> <<rand>><<link $n>><<rand>><<redo>><</link>> <<rand>><<link $n>><<rand>><<redo>><</link>> <<rand>><<link $n>><<rand>><<redo>><</link>> <br> <<rand>><<link $n>><<rand>><<redo>><</link>> <<rand>><<link $n>><<rand>><<redo>><</link>> <<rand>><<link $n>><<rand>><<redo>><</link>> <br> <<rand>><<link $n>><<rand>><<redo>><</link>> <<rand>><<link $n>><<rand>><<redo>><</link>> <<rand>><<link $n>><<rand>><<redo>><</link>> <br> <</do>> <<elseif _args [0] == 6>> <<set _num = [3,9,2,7,8,6,1,0,5]>> <<cycle "_num[0]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[1]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[2]">><<optionsfrom _nums>><</cycle>> <br> <<cycle "_num[3]">><<optionsfrom _nums >><</cycle>> <<cycle "_num[4]">><<optionsfrom _nums >><</cycle>> <<cycle "_num[5]">><<optionsfrom _nums>><</cycle>> <br> <<cycle "_num[6]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[7]">><<optionsfrom _nums>><</cycle>> <<cycle "_num[8]">><<optionsfrom _nums >><</cycle>> <br> <</if>> </span> <hr class="line"> <b> <<do tag "circuit">><<if _ans gt 5>><<button "SECURITY BYPASSED">><<audio "door" play>><<goto _args[1]>><</button>> <<else>> <<button "CHECK">><<redo "circuit">> <<if _ans gt 5>><<audio "beep" play>> <<elseif _ans lt 5>><<audio "error" play>><</if>> <</button>> <</if>> <</do>> </b> </div> <</widget>> \ <<widget "rand">> <<set $n = random (9)>> <</widget>> \ <<widget "hackcheck">> <div id="circuit"> CIRCUIT TESTER <hr class="line"> <<do tag "circuit">> ROW 1 is: _r1 - should be: _eq[0] <<if _r1 == _eq[0]>> ✓<</if>><br> ROW 2 is: _r2 - should be: _eq[1] <<if _r2 == _eq[1]>> ✓<</if>><br> ROW 3 is: _r3 - should be: _eq[2] <<if _r3 == _eq[2]>> ✓<</if>><br> <hr class="line"> COL 1 is: _c1 - should be: _eq[3] <<if _c1 == _eq[3]>> ✓<</if>><br> COL 2 is: _c2 - should be: _eq[4] <<if _c2 == _eq[4]>> ✓<</if>><br> COL 3 is: _c3 - should be: _eq[5]<<if _c3 == _eq[5]>> ✓<</if>><br> <</do>> <hr class="line"> </div><div id="clear"></div> <</widget>><<set $path.pushUnique('Cabin 1')>>\ \ The door opens, and I enter Cabin 1, feeling a little smug after figuring out a way inside. Bright lights flicker on, lighting up the room in warm, pastel shades. This cabin is similar to the others – the same large digital display, the maglev bed, the nanite shower, and a rail with company-issued clothing. But this room is different too; the side wall is covered in old, 2D printed images, each stuck haphazardly across its surface. I drift closer and examine some of the pictures. They're photos of us, the crew: Jason and Kashvi arm in arm, me and the Captain laughing at some joke I can't remember. There's a photo of all of us smiling, looking like a team. I move along, and there are more photos of Matheus and perhaps his family – a woman and three children hiking up the mountains of Mars. There’s another of him and some of his old Academy buddies in a seedy-looking bar somewhere. Pictures of a life, lived – and we were part of it. <<link "Take a closer look at one of the pictures" "fate worse than">><</link>><<audio "door" play>>\ <<if visited () is 1>>\ <<set $lift to 3>>\ The lift judders, and I wonder how safe it really is. Then it starts to smoothly descend, and I feel myself drifting up towards the ceiling. The lift comes to a stop, and the doors slide open. I can't see what lies beyond; it looks pitch black out there. <<else>>\ <<if $lift != 3>>The lift starts to smoothly descend, eventually coming to a gradual stop. <<set $lift to 3>><<else>>I'm still on the cargo level. <</if>>The doors open. I can't see what lies beyond; it looks pitch black out there. <</if>>\ <<if $enginefixed or $cheat2>>\ <<link "Head out onto the cargo deck" "Cargo 2">><</link>> <<else>>\ <<link "Head out onto the cargo deck" "Cargo enter">><</link>> <</if>>\ <<link "Back into the lift" "deck lift choose">><</link>><<set $ending = 2>>\ <<if $gaildead>>\ I spare one more look at her drifting metal corpse as it joins the rest of the detritus. She will be creating no more reprints. <<else>>I spare one more look at GAIL; I feel sorry for her in a way. She has devoted herself to an impossible task, and now she's left alone. I abandon her to join the rest of the detritus. I can only hope she's done trying to 'repair' her crew.<</if>> The engines may be online, but without her help, I can't pilot the ship. Instead, I turn and make my way past her, towards the far end of the cargo hold, squeezing down the dark lanes between the crowded containers. I move through the waste that spills as if in slow motion from the broken, bursting metal, trying to force seeping, ugly thoughts from my mind: this is me, this is literally what I'm made of. I make my way to the far end of the cargo hold and spy a small hatch set into the hull: the door to the escape pod. There's a familiar keypad set by it, and without thinking, I punch in the number, only realising when it opens that I'm not sure how I knew it. I suppose that was something the Captain remembered. Is he part of me now? [[Enter the escape pod|Enter the door]]<<if visited () is 1>>\ <<set $path.pushUnique('Cabin 2')>>\ <<addgen fragment-medium $breach>>\ <<if $story or ($easy && $o2 lt 85) or (!$hard && $o2 lt 65) or $o2 lt 60>><<addgen oxygen-full $cabin2>><</if>>\ <<if !visited ("helm first")>><<addgen data-fabupgrade $cabin2>><<set $cabin2.shuffle()>><</if>>\ <<glitch>><<timed 1.2s t8n>>\ …I'm smiling to myself, proud of this crew, this family, but they've gone, and I'm alone except… Jason is floating towards me. Oh Jason, what happened? Was it human error after all? His frozen body just drifts slowly in its silent, airless grave, arms reaching for solace that will never come. I want to reach out to him, but I'm terrified he'll break, splintering into pieces that can never be turned back into something that remotely resembles… him. We are so much more than our parts. Come on, Jean. You knew they'd be dead. You don't have enough water to waste on these emotions. <<linkreplace "I turn my attention to the other things drifting around his room." t8n>>\ <<set _room to $cabin2>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<if !$hard>><<link "Look at Jason's body" "move jason">><</link>><br><</if>>\ <<link "Back to the upper corridor" "up the corridor">><</link>> <</linkreplace>><</timed>> <<else>>\ I'm back in the gloomy confines of Cabin 2 – Jason's cabin. <<if $engineerbody == "cabin2">>His body still drifts slowly where I left him. I can't bring myself to say goodbye. <<else>> His body is no longer here.<</if>> The cabin itself is a carbon copy of the others. The same bed, nanite shower, and large multi-function display – but with the ship's functions out, I don't even bother trying to turn it on, I know it won't work. <<if $cabin2.length gt 0>>Instead, I turn my attention to the other things drifting around his room.<</if>> <<if $cabin2.includes('data-fabupgrade')>> One of them looks like an upgrade token – I should probably use that at the terminal in the Fabricator room. <</if>> <<set _room to $cabin2>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<if $engineerbody == "cabin2">>\ <<link "Move Jason's body" "move jason">><</link>> <</if>>\ <<link "Back to the upper corridor" "up the corridor">><</link>> <</if>>\ <<audio "door" play>>\ To my complete surprise, the door just opens – but before I can process this, I'm instantly blown back against the other side of the corridor by the air rushing out of the pressurised cabin. Oh crap, I hope I didn't just kill the occupant!! Then, I smile as I compose myself. Obviously, this is my cabin – I'm Jean Wilson. I guess my memories have been pretty messed up by getting reprinted, but at least that means there shouldn't be anyone else inside. I manage to recover and then push off from the corridor wall and into the cabin. [[Enter Cabin 3|cabin 3]] <<link "Back to the lower corridor" "down the corridor">><</link>><<if !visited ("cabin 3 return")>>\ \ This is my cabin, but it's pretty featureless – I don't recall ever thinking of this as 'home'. The illuminated ceiling is on low power and casts a warm, but gloomy light down onto everything below. The room is around seven meters square, and many of the unattached items are just drifting around like strange floating ornaments. Beside the far wall, there's a large, standard-issue maglev bed, and above it a two-meter-wide reprojection display. On the opposite side is a nanite shower. <<linkreplace "Examine the shower" t8n>>I don't really know how these things actually work, but apparently they bombard you with nano-particles that remove all the sweat and dirt without wasting water. I could really do with a shower, but it's pretty useless while I'm in this suit. I try the controls – looks like it's not working anyway. <</linkreplace>> <<linkreplace "Examine the display" t8n>>The large multifunctional display is used as a work and entertainment screen, as a virtual window, and as a reprojection mirror. I try it out, it flickers, then shows my reflection. It freaks me out a bit. I'm me, but… the real… the <i>previous</i> me, well, she's floating out there in the corridor with an expression I don't even want to think about on her… <i>my</i> frozen face. I promised myself I wouldn't dwell, but… ugh. Think happy thoughts and move on. The display glitches out for a moment, then quits entirely – probably for the best. <</linkreplace>> <<linkreplace "Examine the bed" t8n>>As I get closer to the bed, <<link "my vision blurs, and…" "flashback 1a">><</link>><</linkreplace>> <<link "Back to the lower corridor" "down the corridor">><</link>> <<else>>\ \ <<if $name == setup.nameb>>\ I'm back in my… Jean's room. Compared to the Captain's cabin, it's so sterile in here. It's no wonder it didn't jog any memories. <<else>>\ I'm back in my room. <<if $cabin3.length lt 1>>I've already picked up everything I can in here.<<else>>Many of the non-attached items are just floating around.<</if>> There's the standard-issue maglev bed, nanite shower, and the large multi-function display, but nothing's working. <<if !$datab && $cabin3.includes("datapad-b") && !$hard>> I notice the datapad in here, maybe there's something useful on it?<<elseif $cabin3.includes("backpack-small")>> There's a backpack floating in here – that could be useful.<</if>> <</if>>\ \ <<if $carrying.hasOwnProperty("backpack-small") && !$hard>><br><span id="sub1"><i>Examine items, then 'equip' the backpack to make use of it.</i></span><br><</if>>\ <<set _room to $cabin3>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Back to the lower corridor" "down the corridor">><</link>> <</if>>\<<if $easy or $hackez>><<set _level = 1>><<else>><<set _level = 2>><</if>>\ <<if visited () is 1>>\ <<audio "sonic" play>>\ I'm starting to get the hang of this now. Maybe when this is all done, I should try sitting the engineers' exam? The sonic wrench works its magic, and the keypad panel comes free, revealing the circuit matrix beneath. This one looks a little trickier than the one in the Admin office. <<else>>\ I'm back at the locked door to Cabin 2. I've already removed the keypad panel, revealing the circuit matrix beneath. Now I need to figure out how to hack the thing. <</if>>\ \ <<do>>\ <<if _circuit && !_tester>>\ <<link "› Use the Circuit tester?">><<set _tester to true>><<redo>><</link>> <<elseif !_tester && visited ("Drawer open")>>\ <<scan circuit>> I think the 'Circuit tester' might be useful here. I left it in _found. <<elseif !_tester>>\ <br>I might need to find another tool to help me out here. <</if>><</do>>\ <<hack _level "jason">><<do>><<if _tester>><<hackcheck>><<else>><div id="clear"></div><</if>><</do>>\ <<link "Back to the upper corridor" "up the corridor">><</link>> <<if $cheat>>[[CHEAT|jason]]<</if>>\<<set _timer to .5>>\ <div id="terminal"><span id="map"><img src="img/map_basic.webp" alt="CTRL-V - deckplan." width="800px"></span></div> <<link "Show me the main deck" "rooms">><</link>> <<if $name == setup.namea && $return == "admin inside">>\ <<link "Show me my location" "location">><</link>> <</if>>\ <<link "Show me the most recent alerts" "alert">><</link>> <<link "Show me the engine level" "engine level">><</link>> <<link "Show me the cargo deck" "lowerdeck">><</link>> <<if !$deckplan>>\ <<link "Add the Deckplan data to my HUD" "addmap">><<set $deckplan = true>><</link>> <</if>>\ <<link "Ok, I'd like to talk about something else" "GAIL2">><</link>><<set $return to "admin inside">>\ <<if !$path.includes('Admin office')>>\ <<if !$hard>><<addgen sneaker $breach>><</if>>\ The door instantly swishes open as if it's embarrassed to be blocking the way. There's no outward rush of air. I move inside to find a similarly sized space to the Fabricator room, but this one is decked out more like a small office. A desk and drawer sit on one side of the wall, mainly used when the admin office was actually occupied by a human. A single terminal sits on the desk; otherwise, the room is bare and soulless. I guess that's appropriate considering the occupant. A few discarded items drift, the only clues that humans were ever here. <<linkreplace "'Hey GAIL? Are you… awake…?'" t8n>><<set $path.pushUnique('Admin office')>><span id="speech">"Hey GAIL? Are you… awake…?"</span> I speak to the terminal, but I know she's not 'in' there. I'm not sure 'awake' is the right word, but GAIL is usually just so annoyingly present – I'm still not used to the silence. I guess if she's online, she may be limited to keyboard only. <<link "Try talking to GAIL via the terminal" "GAIL1">><</link>> <<link "Try the desk drawer" "Drawer">><</link>> <<link "Back to the upper corridor" "up the corridor">><</link>> <</linkreplace>> <<else>>\ I'm back in the Admin office, a bare utilitarian room. <<if visited ("Drawer open")>>A desk with an open drawer beneath it <<else>> A desk with a locked drawer beneath it <</if>> sits on one side of the wall, and a single terminal sits above it <<if !$gailconnect>> – my only access to GAIL.<<else>> another access to GAIL.<</if>><<if visited ("GAIL1")>><<if !visited ("drawer return")>> I glance down at the drawer – I guess that might contain something useful. <<elseif !visited ("Drawer open")>> I need to find a way to open that drawer. <<else>> At least I managed to open the drawer in here.<</if>><</if>> <<set _room to $adminoffice>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<if visited ("GAIL1")>>\ <<link "Talk to GAIL via the terminal" "GAIL1">><</link>> <<else>>\ <<link "Try talking to GAIL via the terminal" "GAIL1">><</link>> <</if>>\ \ <<if visited ("Drawer open")>>\ <<link "Open the desk drawer (unlocked)" "Drawer open">><</link>> <<elseif visited ("Drawer hack")>>\ <<link "Hack the desk drawer" "Drawer hack">><</link>> <<elseif visited ("drawer return")>>\ <<link "Try hacking the desk drawer lock" "open drawer">><</link>> <<else>>\ <<link "Try the desk drawer" "Drawer">><</link>> <</if>>\ <<link "Back to the upper corridor" "up the corridor">><</link>> <</if>>\ <<set _timer to 3.7>>\ <div id="terminal"><span id="sub2">GAIL</span> <<if visited () == 1>>\ <<set $gail to 1>>\ <<type $t+20+'ms'>>Rebooting…<</type>> <<type $t+18+'ms'>>Basic core… OK Memory cores… Missing Additional cores… Missing Helm control… disconnected Ship status… no data Life support… no data<</type>>\ <<else>>\ <<set _timer to 1.8>>\ <<set $gail to 2>>\ <<if visited ("cabin 2")>><<set $gail to 3>><</if>>\ <<type $t+18+'ms'>>Hello $name.<</type>> <<type $t+18+'ms'>>Is there anything I can help you with?<</type>><</if>></div> <<GAILchat $gail>><<set _timer to 5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Thank you for your concern. I'm fine, but I must admit to feeling… a little lost. Without my sensors and my core systems – without my ability to control the ship, I feel… powerless. I don't feel like 'me'. I'm sure I will be 'A-OK' once everything has been repaired and I am fully operational.<</type>></div> <<GAILchat $gail>><<set _timer to 4>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>I'm sorry, I don't appear to have that information.<</type>> <<type $t+17+'ms'>><<if !$gailconnect>>If you're able to reconnect me to the ship's systems, I could ascertain our status and restart the engines.<<else>>From helm data, it would seem that we veered off course and into the path of Asteroid 689B. This caused severe damage to the ship and most of its systems.<</if>><</type>></div> <<GQ "How would I do that?" "how to do that">> <<GAILchat $gail 3>><<set _timer to 5.3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>I'm afraid my records are missing. It would seem that you were the last person on the designated Emergency Protocol Roster. This would mean that your last backup was used to reprint your mind and body, presumably so you could help to repair the ship and arrange a rescue.<</type>></div> <<GAILchat $gail>><<set _timer to 4.5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>The delivery manifest simply lists 'Luxury Goods'. I'm afraid I don't know any more details. If you're able to use the Deck lift, you could check for yourself. I have pinged Rover, but I am not getting a response.<</type>></div> <<GQ "Who or what is 'Rover'?" "Rover">> <<GAILchat $gail 3>><<set $roomitems to $room1>>\ <<if $name == setup.nameb>>\ I'm back in the Fabricator room. I really hope I never have to climb into or out of that thing ever again. <<elseif visited () lt 8>>\ I make my way back to the Fabricator room, where I first emerged. The lights flicker on as I enter. Inside, there's the large full-body Fabricator – it still gives me the creeps remembering waking up trapped inside. There's also a terminal and the Recycler next to it. <<elseif visited () lt 16>>\ I'm back in the Fabricator room, with the terminal, Recycler, and the Fabricator. It feels like this is my new home. Or perhaps this is just where I work now? Back and forth I go, foraging for lost and broken debris, trying to turn them into things that will help me survive. <<else>>\ I'm in the Fabricator room. Inside is the terminal, the Recycler, and the Fabricator – where I was reprinted just a few hours ago. Now I feel like a rat, foraging through the scattered remains of a dead human world, desperately trying to survive off other people's discarded detritus. <</if>>\ \ <<if $captainbody == "corridor1" && $fablevel gt 1 && $reclevel gt 2>><br>I glance out of the door and glimpse movement in the corridor. It's the Captain's dead body gently drifting by… which gives me an uncomfortable idea. <<link "Pull Matheu's body inside the room" "captain fab room">><</link>> <</if>>\ \ <<if !$upgradeused && $carrying.hasOwnProperty("data-schematic") && !$hard>><span id="sub1"><i><br>Use the schematic datachip at the terminal, then choose a schematic to add<br></i></span><</if>>\ <<link "Use the Recycler" "use the recycler">><</link>> <<link "Use the Fabricator" "use the fabricator">><</link>> <<link "Check the terminal" "check the terminal">><</link>> <<link "Use the storage unit" "storage1">><</link>> <<link "Search the room" "search the room">><</link>> <<link "Back to the upper corridor" "up the corridor">><</link>><<widget "GQ">> <<if $t lt 0>><<set _t = _timer/2>><<else>><<set _t = _timer>><</if>> <<timed _t+'s' t8n>> <<link _args[0] _args[1]>><</link>> <</timed>> <</widget>> \ <<widget "GAILchat">> <<if $t lt 0>> <<set _t = _timer/2>><<else>><<set _t = _timer>><</if>> <<timed _t+'s' t8n>> <<set _qno = 0>> <<if _args[1]>><<set _q = _args[1]>><<else>><<set _q = 4>><</if>> <<if $gailconnect && !visited ("gailconnect")>><<set _qno ++>><<link "What just happened – when I reconnected you?" "gailconnect">><</link>><br><</if>> <<if $gail gt 1>> <<if ($gail gt 2 && (!$hard && $o2 lt 35) or $o2 lt 29) && passage () != "need oxygen">> <<set _qno ++>><<link "I'm running low on O2 - where can I find more?" "need oxygen">><</link>><br> <</if>> <<if !$drawerchat && _qno lt _q>> <<set _qno ++>><<link "Can you open the drawer below your terminal?" "open the drawer">><</link>><br> <<elseif !visited ("open the doors") && _qno lt _q>> <<set _qno ++>><<link "Are you able to open any of the locked doors?" "open the doors">><</link>><br> <<elseif !visited ("are you sure you're okay") && _qno lt _q>> <<set _qno ++>><<link "Are you SURE you're okay?" "are you sure you're okay">><</link>><br> <<elseif !visited ("doors") && _qno lt _q>> <<set _qno ++>><<link "So… how do I open the locked doors?" "doors">><</link>><br> <<elseif !visited ("what if biometric") && _qno lt _q>> <<set _qno ++>><<link "What if biometric security isn't working?" "what if biometric">><</link>><br> <<elseif !visited ("Keypad not working") && _qno lt _q>> <<set _qno ++>><<link "What if the keypad isn't working either?" "Keypad not working">><</link>><br> <</if>> <</if>> <<if _args[0] == 1>> <<link "Are you there?" "are you there">><</link>><br> <<link "Are you okay GAIL?" "are you ok">><</link>><br> <<elseif _args[0] == 2>> <<if !visited ("ship status") && _qno lt _q>> <<set _qno ++>><<link "What's the ship's status?" "ship status">><</link>><br> <<elseif !visited ("what happened") && _qno lt _q>> <<set _qno ++>><<link "What happened?" "what happened">><</link>><br> <<elseif !visited ("why reprinted") && _qno lt _q>> <<set _qno ++>><<link "Why did I get reprinted?" "why reprinted">><</link>><br> <<elseif !visited ("what about the crew") && _qno lt _q>> <<set _qno ++>><<link "What about the crew?" "what about the crew">><</link>><br> <<elseif !visited ("trust") && _qno lt _q>> <<set _qno ++>><<link "Can I trust you GAIL?" "trust">><</link>><br> <</if>> <<if !visited ("what carrying") && visited ("Drawer open") && _qno lt _q>> <<set _qno ++>><<link "What's our cargo?" "what carrying">><</link>><br> <</if>> <<elseif _args[0] == 3>> <<if !visited ("How get it working") && _qno lt _q>> <<set _qno ++>><<link "How do I get the ship working again?" "How get it working">><</link>><br> <<elseif !visited ("where headed") && _qno lt _q>> <<set _qno ++>><<link "Where was the ship headed?" "where headed">><</link>><br> <<elseif !visited ("what carrying") && _qno lt _q>> <<set _qno ++>><<link "What's our cargo?" "what carrying">><</link>><br> <</if>> <</if>> <<if $gail gt 1>> <<if $name == setup.nameb && !visited ("omega 2") && _qno lt _q>>\ <<set _qno ++>><<link "Explain 'Command Omega' – Captain's clearance" "omega 2">><</link>><br><</if>> <<if visited ("gailconnect") && passage() != "gailconnect" && passage() != "engine repair" && _qno lt _q>><<set _qno ++>><<link "How do I repair the engines?" "engine repair">><</link>><br><</if>> <<if visited ("Helm terminal") && !visited ("command omega") && $name == setup.namea && _qno lt _q>> <<set _qno ++>><<link "GAIL, what is 'Command Omega'?" "command omega">><</link>><br> <<elseif (visited ("Cargo") or visited ("Log2")) && !visited ("Locked") && _qno lt _q>> <<set _qno ++>><<link "How do I access 'Security-locked' data?" "Locked">><</link>><br> <</if>> <<if $gaildisconnect && passage() != "engine repair2" && _qno lt _q>><<set _qno ++>><<link "How do I repair the engines?" "engine repair2">><</link>><br> <</if>> <<if $gail gt 2 && !visited ("upgrades") && ($reclevel lt 3 or $fablevel lt 3) && _qno lt _q>> <<set _qno ++>><<link "How do I upgrade the Recycler?" "upgrades">><</link>><br> <</if>> <<if passage () != "upgrades2" && ($reclevel lt 3 or $fablevel lt 3) && visited ("upgrades") && _qno lt _q>> <<set _qno ++>><<link "Where can I find those upgrades?" "upgrades2">><</link>><br> <<elseif passage () != "upgrades3" && ($reclevel == 3 && $fablevel == 3) && $name == setup.namea && _qno lt _q>> <<set _qno ++>><<link "I've upgraded the Recycler!" "upgrades3">><</link>><br> <</if>> <<if _qno lt _q>><<link "Can you show me a map of the ship?" "map" && _qno lt _q>><</link>><br> <</if>> <<if (($gail gt 1 && visited ("are you sure you're okay")) or ($drawerchat && $easy)) && passage () != "stuck">><<link "I'm not sure what to do next?" "stuck">><</link>><br><</if>> <</if>> <<if $return == "helm return">> <br><<link "Back" "GAILhelm">><</link>> <</if>> <br><<link "Leave the terminal" $return>><</link>> <</timed>> <</widget>><<set $return = "drawer return">>\ The drawer under the desk is locked. There's a small security keypad beside it, but it doesn't appear to be working. I bend down and peer at it. Maybe I could repair it, or even try hacking it? I'm no engineer, but… how hard can it be? <<link "Try the keypad" "flourish">><</link>> <<link "Back to the Admin office" "admin inside">><</link>><<if visited () == 1>>\ <<audio "sonic" play>>\ I don't really know how these things work, something to do with micro-vibrations? Anyway, the Sonic wrench does its job, and pretty soon, the keypad panel comes loose, revealing a circuit matrix underneath. <<linkreplace "› Remove the panel" t8n>>\ Now I'm trying to remember what I saw in that… vision? <<if $hard>>Something about things adding up to '5'? <<else>> Something about making each row and column add up to '5'? <</if>> I guess that will hack the system and make it think the right code has been entered. <<hack 0 "Drawer open">><div id="clear"></div><</linkreplace>> <<else>>\ I have already removed the keypad panel. Now I'm trying to remember what I heard in that vision. Something to do with the rows and columns adding up to '5'? That should hack the system and make it think the right code has been entered. <<hack 0 "Drawer open">><div id="clear"></div> <</if>>\ <<link "Back to the Admin office" "admin inside">><</link>><<savefix>>\ <<if visited () is 1>>\ <<if !$hard>><<addgen burger $breach>><</if>>\ <<set $drawerchat to true>>\ Ah ha! Who needs an engineer when there's an expert hacker onboard! The lock gives a satisfying 'beep' and the drawer smoothly opens. Inside, I find a 'Circuit tester' and another datapad. <<else>>\ I've already managed to 'hack' this lock – the drawer is open. <<if !visited ("helm inside") or !visited ("cabin 2")>>\ I wonder if I could try this hacking thing elsewhere? <</if>>\ <</if>>\ <<set _room to $drawer>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Back to the Admin office" "admin inside">><</link>><<set _timer to 4.5>>\ <<set $gail to 2>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Hello $name. Yes, I'm here. It would seem that some of my abilities are currently impaired. I'm no longer able to see or hear you, and I've lost direct contact with most of the ship's systems.<</type>> <<type $t+17+'ms'>>Is there anything I can help you with?<</type>></div> <<GQ "I've been seeing things – like visions. Is that normal?" "seeing things">> <<GAILchat $gail 2>><<set _timer to 5>>\ <<set $gail to 2>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Hello $name. Yes, I am OK!<</type>> <<type $t+17+'ms'>>That said, it would seem that some of my abilities are currently impaired. I'm no longer able to see or hear you, and I've lost direct contact with most of the ship's systems.<</type>> <<type $t+17+'ms'>>How are you?<</type>></div> <<GQ "I've been seeing things – like ghosts. Is that normal?" "seeing things">> <<GAILchat $gail 2>><<set _timer to 4>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>I do not currently have access to the Helm or any of the ship's sensors. My guess would be that we're some way off course. However, some of my cores, along with most of my memories, appear to be missing or damaged.<</type>></div> <<GAILchat $gail>><<set _timer to 4>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>I do not have access to the ship's systems; for some reason, I've been locked out. We appear to be in Emergency Protocol, in which case, lockdown will have taken effect. This will apply to all doors across the ship. However, designated crew can still access them via biometric security.<</type>></div> <<GAILchat $gail 4>><<set _timer to 3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Most systems come with a failsafe security keypad. Just use the correct code to open the door.<</type>></div> <<GAILchat $gail 4>><<set _timer to 5>>\ <<set $drawerchat to true>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Then you are 'up sh*t creek' haha. Apologies, that was another attempt at a joke. It could be that my humour LLM is damaged. If you have access to an engineer, they will be able to help you repair any inoperable keypads. You may also need a specialised tool.<</type>></div> <<GQ "Ok. Thanks for nothing GAIL." "GAIL2">> <<GAILchat $gail 3>><<set _timer to 7.7>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Are you asking me to open the pod bay doors?<</type>> <<type $t+60+'ms'>>"Daisy, daisy, give mee yoooour annnnnnswe…"<</type>> <<type $t+17+'ms'>>That was just a little joke.<</type>> <<type $t+17+'ms'>>Sorry.<</type>> <<type $t+17+'ms'>>It looks like I have no access to any of the doors, I'm afraid, Dave.<</type>></div> <<GQ "What? So how do I open them?" "doors">> <<GQ "I don't even get that reference." "reference">> <<GAILchat $gail 2>><<if visited () == 1>>\ Nervously, I glide into the room. Inside, the walls, ceiling, floor, and remaining furniture are blackened and charred. Ash and solid rivulets of plastic drift like swirling snow, some flowing back into the corridor to join the other debris. I… I really hope some of that isn't… I'm so glad I can't smell anything through the suit. In one corner, part of the wall looks warped. I guess it was bent out of shape by whatever hit us. The remains of a terminal still give the occasional neon blue electric spark, and nearby, there's a damaged O2 duct jetting silent globes of fire. Incredibly, a few items have managed to survive the flames – I spot a Recycler upgrade amongst them – but I won't be able to get to them until I've turned off that duct. <<else>>\ I head back into the Engineering room. The remains of a terminal still give the occasional neon blue electric spark. The walls are black and charred, and there are floating remains among the debris. Nearby, there's a damaged O2 duct still gently jetting out fire, but with the door now open, at least the oxygen won't build up. Incredibly, a few items have managed to survive – I spot a Recycler upgrade amongst them, I hope that still works! I just can't get to it until I've found a way to shut off the oxygen. <</if>>\ <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench' or _useitem == 'multi'>> <<goto "engineering inside">> <<elseif _useitem == 'sonic-wrench'>> <<replace "#output">>A Sonic wrench is a tool for delicate work – I need something simpler.<</replace>> <<elseif _useitem == 'pistol'>> <<replace "#output">>That would make for a great explosion, but I don't plan to go out that way.<</replace>> <<elseif _useitem == 'JD'>> <<replace "#output">>Throwing alcohol at a fire seems… unwise.<</replace>> <<elseif _useitem == 'mascot'>> <<replace "#output">>That's not going to do anything here – apart from spouting company jingles at me.<</replace>> <<elseif _useitem == 'circuit'>> <<replace "#output">>A circuit tester isn't going to help here; I need a tool for more manual tasks.<</replace>> <<elseif _useitem>> <<replace "#output">>I don't think that's going to help me.<</replace>> <</if>> <</do>> <</nobr>>\ <span id="output">I need to use something to shut off the O2 duct.</span> <<link "Back to the lower corridor" "down the corridor">><</link>><<if $engineerbody == "corridor2">>\ I move over to the door to Engineering. It's locked, and there's a biometric scanner beside the door. I've already tried it, it doesn't work for me, but when I touch it, I can feel something, like there's a wind beyond trying to push it open. There's a warmth there, too, but all I can hear is silence. <<link "Pull Jason's body over towards the door" "jason door">><</link>> <<else>>\ I move over to the door to Engineering. It's quite close to the hull breach, but the door looks unharmed. Naturally, it's locked. There's no keypad on this one, just the biometric scanner. Although it looks active, when I try touching it, nothing happens. Strangely, when I touch the door, it's like I can feel a slight vibration; there's a warmth there too, but all I can hear is silence. I guess I'm not getting in unless I can find a way around that scanner. <</if>>\ <<if $captainbody == "corridor2">>\ <<link "Move the Captain's body over to the door" "Captain locked">><</link>> <</if>>\ <<link "Back to the lower corridor" "down the corridor">><</link>> <<if $cheat2>>[[CHEAT|engineering inside]]<</if>>\<div id="terminal"><img src="img/map_deckplan.webp" width="0px">\ <span id="sub2">CTRL-V: DECKPLAN</span> <span id="img"><img src="img/map_you.webp" alt="A map of the ship. You're currently in the upper corridor." width="800px"></span><<timed 1.9s>><<replace "#img" t8n>><img src="img/map_deckplan.webp" alt="A map of the ship. The helm is at one end, and there is access to eight rooms down a long central corridor ending in the decklift. The corridor is split into two: the upper corridor and the lower corridor. You're currently in the upper corridor towards the helm." width="800px"><</replace>><</timed>> <<type 7ms>><div class="cols2">\ 1. UPPER CORRIDOR 2. Helm 3. Fabricator / Recycler 4. Admin [GAIL] 5. Cabin 1 6. Cabin 2 7. LOWER CORRIDOR 8. Cabin 3 9. Cabin 4 10. Archives 11. Engineering 12. Deck lift</div>\ \ <<if !$deckplan>><br><<linkreplace "› Add Deckplan data to EMU">><<set $deckplan to true>><<set $fastravel to true>><<audio "beep" play>><<set $path.pushUnique('Deckplan')>><span id="sub1">Deckplan data has been added to Suit HUD</span> <span id="sub1"><i>You can now 'fast travel' using the deckplan link in the side panel.</i></span><<redo>><</linkreplace>><</if>><</type>>\ </div>\ <<link "Back to the upper corridor" "up the corridor">><</link>><div id="terminal"><span id="sub2">SCHEMATIC UPGRADE</span> <b>Fabricator currently level: $fablevel of 3</b> <i>You can make any <<if $fablevel == 1>>Level 1<<elseif $fablevel == 2>>Level 1 or 2<<else>>Level 1, 2 or 3<</if>> schematic.</i> \ <<nobr>>\ <<do>>\ <br><<linkreplace "Available schematics" t8n>><span id="ITEMS"><b>Available schematics:</b></span> <<for _item range $schema>> <br><<print setup.allitems[_item].name>> | <span id="sub1">Resources: [<<print setup.allitems[_item].resources>>]</span> <</for>><</linkreplace>><br> <<if !_temp>>\ <br><b>This data chip contains a schematic token.</b><br> Choose which schematic to add to the fabricator:<br><br> <<if $schemaset1.length == 0>> <span id="sub1">All Level 1 items added</span> <<else>> <<linkreplace "› LEVEL 1" t8n>><b>LEVEL 1:</b> <<for _item range $schemaset1>> <<capture _item>> <br><<link setup.allitems[_item].name>><<set _temp to true>><<audio "upgrade" play>><<set $schema.pushUnique(_item)>><<set $schemaset1.deleteFirst(_item)>><<removeitem 'data-schematic'>><<set $schemacount ++>><<redo>><</link>> <</capture>><</for>><br> <</linkreplace>><</if>><br> <<if $schemaset2.length == 0>> <span id="sub1">All Level 2 items added</span> <<else>> <<linkreplace "› LEVEL 2" t8n>><b>LEVEL 2:</b> <<for _item range $schemaset2>> <<if $fablevel gt 1>> <<capture _item>> <br><<link setup.allitems[_item].name>><<set _temp to true>><<audio "upgrade" play>><<set $schema.pushUnique(_item)>><<set $schemaset2.deleteFirst(_item)>><<removeitem 'data-schematic'>><<set $schemacount ++>><<redo>><</link>> <</capture>> <<else>><br><span id="sub1"><<print setup.allitems[_item].name>></span><</if>><</for>><br> <</linkreplace>><</if>><br> <<if $schemaset3.length == 0>> <span id="sub1">All Level 3 items added</span> <<else>> <<linkreplace "› LEVEL 3" t8n>><b>LEVEL 3:</b> <<for _item range $schemaset3>> <<if $fablevel gt 2>> <<capture _item>> <br><<link setup.allitems[_item].name>><<audio "upgrade" play>><<set _temp to true>><<set $schema.pushUnique(_item)>><<set $schemaset3.deleteFirst(_item)>><<removeitem 'data-schematic'>><<set $schemacount ++>><<redo>><</link>> <</capture>> <<else>><br><span id="sub1"><<print setup.allitems[_item].name>></span><</if>><</for>> <</linkreplace>><</if>> <span id="output"></span><br> <<else>> <<set $upgradeused to true>> <br><span id="sub2"><b>Schematic added. You can now make this in the Fabricator.</b></span> <br><br> <span id="sub1"><b><<print setup.allitems[_item].name>></b>: <<print setup.allitems[_item].description>></span> <<if $carrying.hasOwnProperty("data-schematic")>>\ <br><br><<link "Use another token?">><<set _temp to false>><<redo>><</link>> <</if>> <</if>> <</do>> <</nobr>>\ </div> [[Back|check the terminal]] <<link "Leave the terminal" "search the room">><</link>> [[Use the Fabricator|use the fabricator]]<<savefix>>\ <<if visited () is 1>>\ <<set $path.pushUnique('Ship exterior')>>\ <<if $o2 lt 50>><<addgen oxygen-full $breach>><</if>>\ The hull of the ship is several layers thick of tri-plated polyalloy. It's supposed to protect us from even a severe collision, so we must have been hit with considerable force. I'm kind of amazed that I can't recall what happened, until I remember that my backup would have been from days or even weeks before any of this occurred. As my head clears the exterior, I can see a trail of hull fragments and ship debris extending out like a spray. The galaxy looks dauntingly vast from out here. It's beautiful… and terrible… and empty. I feel alone and utterly insignificant. The silence is… I can't even try to describe it. As I stare, I become aware that the ship is very slowly turning, and the entire galaxy lazily pans across my view. We are way off course. I can't see a single nearby star, let alone a planet. I had been considering using the escape pod, but that now looks like a last resort. Better to see if we can fire up the engines and plot a route back to civilisation. <<else>>\ <<if lastVisited ("hull breach") == 1>>I climb up and out, through buckled remains of the thick tri-plated hull. As my head clears the exterior, I can see a trail of hull fragments and ship debris extending out like a spray. <<elseif lastVisited ("try") == 1>>I clamber awkwardly back to the main breach, relieved to have something sturdy to hold on to. The ship is my oasis of calm in the darkness. If I'm going to try that again, I need to rethink my strategy. <<elseif lastVisited ("cabin 4 entry") == 1>>I clamber awkwardly back to the main breach, relieved to have something sturdy to hold on to. I know I probably have to try that again, but… let me get my breath back first… <<else>>I'm partway out of the hull, my legs still in the relative safety of the ship, my head out in the expanse of space. I can see a trail of hull fragments and ship debris extending out like a spray. <</if>> The universe looks dauntingly vast from out here. The ship is slowly, gracefully turning on its axis, and the entire galaxy lazily pans across my view. <</if>>\ <<link "Look out across the ship exterior" "use rope">><</link>> <<link "Try to reach some of the debris" "Breach debris">><</link>> <<link "Climb back inside the ship" "down the corridor">><</link>>I look out across the ship – it looks worse from out here. Great tears striate the hull, and there's another, smaller rip in the hull plating about seven or eight meters away, possibly secondary damage from the original collision. I also notice a small cloud of rocks further in the distance – perhaps the remains of whatever hit us? <<if !visited ("cabin 4 inside")>>\ That other hole leads back into the ship somewhere. But to gain access, I'd need to climb out, along the exterior, and back in. I'd be completely exposed, and if I lost my grip, it would be all over – there aren't enough resources to reprint me if something goes wrong. <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'rope'>> <<goto "climb rope">> <<elseif _useitem>> <<set $useitem = _useitem>><<goto "try">> <</if>> <</do>> <</nobr>>\ \ <span id="output">I'll need to use something here… but I need to be careful.</span> <<else>>\ I can see the rope dangling out into space, gently curving from view as the ship slowly spins. I know where that tear leads, and now the door is open to Cabin 4, I'm not going to try making that trip again. <</if>>\ <<link "Back" "breach explore">><</link>><<set _item = setup.allitems[$useitem].name>>\ <<if visited () == 1>>\ I'm holding the _item, trying to work out how to use it. I'm not sure this is the most sensible idea I've ever had, but it's worth a try. I clamber slowly out and begin climbing across the ship exterior, grabbing hold of anything I can. I try to control my breathing. I think my worst nightmare is losing grip and drifting off into the infinite universe with no way to return. As I'm thinking this, something hits my leg. A rock or a stone of some kind bounces off my helmet, then another bashes my arm with such force that I lose my grip – and suddenly I'm tumbling out into space! <<else>>\ I can't believe I'm actually going to try this again – and I have no idea how the _item is going to help. I clamber slowly out of the hull and begin the slow process of climbing across the outside of the ship, grabbing hold of anything I can. I'm doing my best to avoid the small rocks that are drifting into my path, but I get stuck, and I can't go any further. I start to climb back, but suddenly lose my footing. I try to grab something, but now I'm tumbling away from the ship! <</if>>\ \ <<linkreplace "Use the _item" t8n>>\ <<if $useitem == 'oxygen-full'>>\ I quickly take the <b>oxygen canister</b>, turn, and squeeze the nozzle out into the void. I can feel the force of it start to move me back towards the ship! But it's hard to control the direction… I turn, struggling to move with nothing to cling to. I let go of the oxygen tank and just about manage to grab hold of the side of the hole where I first came in. That was a close one. <<link "Back to the breach" "breach explore">><<set $breach.pushUnique('oxygen-full')>><<removeitem $useitem>><</link>> <<elseif $useitem == 'wrench' or $useitem == 'oxygen-empty' or $useitem == 'battery-empty' or $useitem == 'hull-large' or $useitem == 'fragment-large' or $useitem == 'ice2'>>\ I quickly turn and throw the <b>_item</b> away from me, and I watch as it spins off into the darkness. It has just enough mass to push me back, slowly towards the hull. Thank you, Newton! I turn and grab hold of the side of the hole where I first came in. That was close. <<link "Back to the breach" "breach explore">><<removeitem $useitem>><</link>> <<else>>\ <<death>>\ I start to panic, my heart is racing, and my lungs are trying to keep up. In desperation, I turn and throw the <b>_item</b> away from me, watching as it slowly spins off into the void. But its mass is too small, there's not enough force to push me back! <<timed .5s t8n>>I watch helplessly as the ship gradually drifts away… <<next $t+2+'s'>>Oh god… not like this… <<next $t+2+'s'>><b>This is the end of my journey.</b> <<next $t+2+'s'>><<if (Save.browser.size > 0)>><<link "Load most recent save">><<run Save.browser.continue()>><<run Engine.show()>><</link>><</if>> <<link "Back to the start" "Start">><</link>><</timed>> <</if>>\ <</linkreplace>><<savefix>><<unset $usedwrench>><<if visited () is 1>><<set $path.pushUnique('Cabin 4')>>\ <i>"...Bring back my bonnie to me…"</i> I sing quietly, my voice cracked and muffled inside the suit. I'm smiling and crying with the memory, and it wasn't even mine. The others have gone. <</if>>\ Kashvi still spins gently before me, arms outstretched, head back as if in reverie. She was always beautiful. Even in death, she looks… so alive, as if music still courses through her. I reach out and bring her to a gentle stop, her dance now ended. She's holding something, fingers clutched tight, as if saving it just for me. I gently hold her hand and release her grasp. Relax now, Kashvi. The trouble with wearing a spacesuit is that you can't wipe away your tears. <<if $cabin4.includes('passkey') or $carrying.hasOwnProperty("passkey")>>\ <<set _room to $cabin4>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> [[Check the hole where you entered|check tear]] [[Check the broken door]] <<else>>\ <<linkreplace "Take the passkey" t8n>>\ <<if $invcount lt $itemsmax>>\ <span id="sub2">I take the passkey from her outstretched hand.</span> <<additem 'passkey'>><<redo>>\ <<else>>\ <span id="sub2">I don't have room for the passkey, but I can pick it up later.</span> <<set $cabin4.pushUnique('passkey')>><<redo>>\ <</if>>\ <<set _room to $cabin4>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> [[Check the broken door]] [[Check the hole where you entered|check tear]] <</linkreplace>> <</if>>\<<glitch>><<timed 1s t8n>>\ <span id="speech">"GAIL? Privacy mode, please."</span> Kashvi says, looking up at the camera in the corner of the room. <<next $t+1.3+'s'>><span id="speech">"What's with the secrecy?"</span> I say, sat on my bed looking up at her, admiring the way her hair shimmers in the light and wondering what's with her sudden change of tone. <<next $t+1.3+'s'>>She pauses for a moment, then says in a conspiratorial whisper, <span id="speech">"I was looking through the logs – did you know GAIL has been recording us – all of us, all the time?"</span> She sounds worried, which is unusual for her. <<next $t+1.3+'s'>><span id="speech">"Well, it sounds creepy when you say it like that, but she's just checking we're ok."</span> I say, not sure why she's being so paranoid. <<next $t+1.3+'s'>><span id="speech">"Yeah, but she's recording it all, and then sending the data somewhere. I asked her about it, but she just said it's 'for the benefit of the crew'."</span> <<next $t+1.3+'s'>><<link "'I'm sure it's nothing to worry about.'" "flashback 1b">><<set $paranoia to false>><</link>> <<link "'That does sound… strange.'" "flashback 1b">><<set $paranoia to true>><</link>><</timed>><<set _timer to 4.3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Rover is the automated haulage unit. It handles the majority of the heavy loading and unloading work. It's not sentient, it's just a basic robot with a limited instruction set. I have not received a reply, so it's most likely offline.<</type>></div> <<GAILchat $gail>><<set _timer to 1.5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>><<if !$gailconnect>>You should be able to do that on the terminal inside the Helm.<<else>>I have now been reconnected to the Helm systems. I will be able to control the ship's navigation once the engines have been repaired.<</if>><</type>></div> <<GAILchat $gail>><<set _timer to 2.8>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Of course.<</type>> <<type $t+20+'ms'>>My priorities are: • Protect the crew • Protect the ship • Protect the company<</type>></div> <<GQ "In that order?" "in that order">> <<GAILchat $gail 3>><div id="terminal"><span id="img"><img src="img/map_deckplan.webp" alt="A map of the ship. The helm is at one end, and there is access to eight rooms down a long central corridor ending in the decklift. You're currently in the admin office towards the helm." width="800px"> <<type 4ms>><div class="cols2">\ 1. UPPER CORRIDOR 2. Helm 3. Fabricator / Recycler 4. Admin [GAIL] 5. Cabin 1 6. Cabin 2 7. LOWER CORRIDOR 8. Cabin 3 9. Cabin 4 10. Archives 11. Engineering 12. Deck lift </div><</type>></span></div> <<if $name == setup.namea && $return == "admin inside">>\ <<link "Show me my location" "location">><</link>> <</if>>\ <<link "Show me the most recent alerts" "alert">><</link>> <<link "Show me the engine level" "engine level">><</link>> <<link "Show me the cargo deck" "lowerdeck">><</link>> <<if !$deckplan>>\ <<link "Add the Deckplan data to my HUD" "addmap">><<set $deckplan = true>><</link>> <</if>>\ <<link "Let's talk about something else" "GAIL2">><</link>><div id="terminal"><span id="img"><img src="img/map_location.webp" alt="A map of the ship. The helm is at one end, and there is access to eight rooms down a long central corridor ending in the decklift. You're currently in the admin office towards the helm." width="800px"> <<type 4ms>>There are three bodies identified as 'Comms Officer Wilson'. <</type>> \ <<type 4ms>>• main corridor (deceased) • 1.7k beyond ship exterior (deceased) • Admin office<</type>>\ </span></div> <<link "Show me the main deck" "rooms">><</link>> <<link "Show me the most recent alerts" "alert">><</link>> <<link "Show me the engine level" "engine level">><</link>> <<link "Show me the cargo deck" "lowerdeck">><</link>> <<if !$deckplan>>\ <<link "Add the Deckplan data to my HUD" "addmap">><<set $deckplan = true>><</link>> <</if>>\ <<link "Let's talk about something else" "GAIL2">><</link>><div id="terminal"><span id="img"><img src="img/map_alerts.webp" alt="A map of the ship. The helm is at one end, and there is access to eight rooms down a long central corridor ending in the decklift. You're currently in the admin office towards the helm. The hull breach is indicated towards the aft of the ship. One of the engines is marked as offline." width="800px"> <<type 4ms>>These are the most recent warnings:<</type>>\ <<type 4ms>>• Hull breach (lower corridor) • Engine offline (nacelle-B)<</type>>\ </span></div> <<link "Show me the main deck" "rooms">><</link>> <<if $name == setup.namea && $return == "admin inside">>\ <<link "Show me my location" "location">><</link>> <</if>>\ <<link "Show me the engine level" "engine level">><</link>> <<link "Show me the cargo deck" "lowerdeck">><</link>> <<if !$deckplan>>\ <<link "Add the Deckplan data to my HUD" "addmap">><<set $deckplan = true>><</link>> <</if>>\ <<link "Let's talk about something else" "GAIL2">><</link>><div id="terminal"><span id="img"><img src="img/map_cargo.webp" alt="A map of the ship. This is the cargo deck. The decklift towards the aft links through to a short corridor with access to the cargo hold." width="800px"> <<type 4ms>><div class="cols2">1. Escape pod 2. Cargo hold 3. Lower corridor 4. Deck lift </div><</type>>\ </span></div> <<link "Show me the main deck" "rooms">><</link>> <<if $name == setup.namea && $return == "admin inside">>\ <<link "Show me my location" "location">><</link>> <</if>>\ <<link "Show me the most recent alerts" "alert">><</link>> <<link "Show me the engine level" "engine level">><</link>> <<if !$deckplan>>\ <<link "Add the Deckplan data to my HUD" "addmap">><<set $deckplan = true>><</link>> <</if>>\ <<link "Let's talk about something else" "GAIL2">><</link>><<set _timer to 2>>\ <div id="terminal"><span id="sub2">GAIL</span> <<set $gail to 2>>\ <<if visited ("cabin 2") or visited ("helm first")>><<set $gail to 3>><</if>>\ <<type $t+18+'ms'>>Hello $name.<</type>> <<type $t+18+'ms'>>Is there anything I can help you with?<</type>></div> <<GAILchat $gail>><<set _timer to 5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>I'm sorry to hear that.<</type>> <<type $t+17+'ms'>>Without access to the ship's sensors, I can't be sure. However, I believe that it is perfectly normal to experience sudden flashes of memory after a human mind/body has been reprinted.<</type>></div> <<GAILchat $gail>><<set _timer to 3.5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>My records show that we were returning to Earth after a delivery pickup from the planet Nadir. <<if !$gailconnect>>Unfortunately, I am not currently connected to the Helm, but from my limited sensor records, it would seem that we are not where we should be.<<else>>From Helm telemetry data, I can see that we are 1.14ly off course.<</if>> I'm sorry that I can't help further.<</type>></div> <<GAILchat $gail>><<set _timer to 4>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>It would seem that there has been a major hull failure, and most of the ship has lost pressure. The engines appear to be offline and will need repairing. <<if !$gailconnect>>There should be additional information in the Helm, but unfortunately, I've lost my direct connection.<<else>> Replacement parts for the engines are usually stored in the Engineering room.<</if>><</type>></div> <<GAILchat $gail>><<if $easy>><<set _level = 2>><<else>><<set _level = 3>><</if>>\ <<if visited () == 1>>\ <<audio "sonic" play>>\ I swiftly remove the panel as if I've done this a million times. It seems that I'm a natural! It falls away to reveal the circuit matrix behind. <<if visited ("Drawer open")>>It should just be a case of balancing the power until the door thinks the right code has been entered. <<else>> Hmmm. This looks complex, and I may end up just electrocuting myself. It might be worth practising on the drawer in the Admin room first. <</if>> <<else>>\ I'm back at the door to the Helm. I previously removed the keypad panel, revealing the circuit matrix beneath. Now I just have to hack the power matrix to open the door. <</if>>\ \ <<do>>\ <<if _circuit && !_tester>>\ <<link "› Use the Circuit tester?">><<set _tester to true>><<redo>><</link>> <<elseif !_tester && visited ("Drawer open")>>\ <<scan circuit>> I think the 'Circuit tester' might be useful here. I left it in _found. <<elseif !_tester>>\ <br>I might need to find another tool to help me out here. <</if>><</do>>\ <<hack _level "helm inside">><<do>><<if _tester>><<hackcheck>><<else>><div id="clear"></div><</if>><</do>>\ <<link "Back to the upper corridor" "up the corridor">><</link>> <<if $cheat>>[[CHEAT|helm inside]]<</if>>\<<glitch>><<timed 1s t8n>>\ <span id="speech">"The drawer is busted again, can you fix it?"</span> Kashvi sounds frustrated. I guess this latest assignment has got us all a little annoyed. <<next $t+2+'s'>><span id="speech">"Hang on"</span> I make a show of revealing my Sonic wrench and flash her a smile. She looks distinctly unimpressed, but it helps to lighten her mood. <span id="speech">"Let me show you a little trick the company doesn't want you to know."</span> I say with a wink. <<next $t+2+'s'>>She peers down as I deftly remove the keypad facia and expose the power matrix beneath. <span id="speech">"These things are old and about as secure as a paper bag."</span> I tell her. She looks at me with a raised eyebrow. Right, she's never seen a paper bag. <<next $t+2+'s'>><span id="speech">"Doesn't matter. The key thing is, you see those numbers? You just need to adjust them to hack the lock. This one is easy – I just need to make each row and column add up to '5'. Door locks are tougher, but use one of these!"</span> At this point, I reveal my Circuit tester.<span id="speech">"…and it's child's play!"</span> I make an exaggerated flourish, and the drawer pops open as if by magic. <<next $t+2+'s'>><span id="speech">"Great. Thanks Jason, duly noted. But can you actually just fix it next time?"</span> She grabs the Circuit tester off me, places it in the drawer, and then waves me away with a gesture – smirking as she does so. At least I made her smile. <<next $t+2+'s'>><<link "'Hey, I need that!'">><<goto $return>><</link>><</timed>><<set $hacked to true>>\ <<glitch>><<timed 1s t8n>>\ …they've vanished and I'm alone again, floating in the cold and airless office, apparently talking to myself. Is this derelict vessel haunted – am I seeing ghosts of the past? Maybe this is normal after being reprinted? I slow my breathing and try to relax. What was I doing? I glance back down at the drawer. Perhaps there's something I could use to remove the panel. <<if !$schema.includes('sonic-wrench') or $easy>>I might need to fabricate something new.<</if>> <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench'>> <<replace "#output">>A wrench is used for simple tasks; I need a more complex tool.<</replace>> <<elseif _useitem == 'sonic-wrench'>> <<goto "Drawer hack">> <<elseif _useitem == 'datapad-b' or _useitem == 'data-schematic'>> <<replace "#output">>I'm not sure how I can use that to remove the panel.<</replace>> <<elseif _useitem == 'circuit-test'>> <<replace "#output">>That will probably come in handy – after I've removed the panel.<</replace>> <<elseif _useitem == 'pot-plant'>> <<replace "#output">>A pot plant is definitely not the tool I need.<</replace>> <<elseif _useitem>> <<replace "#output">>Hmmm. I really don't think that's going to work.<</replace>> <</if>> <</do>> <</nobr>>\ \ <span id="output">I'll need to use something to access the panel</span> <<link "Back to the Admin office" "admin inside">><</link>> <</timed>>\<<set _timer = 3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+80+'ms'>>In that order.<</type>></div> <<GAILchat $gail>><<savefix>>\ <<if visited () is 1>>\ <<set $path.pushUnique('Cabin 3')>>\ <<glitch>><<timed 1s t8n>>\ My vision blurs again; my hand is reaching out for something, but Kashvi has vanished. I look around. I'm back in my room, but it's dark and empty. I'm floating, lost and confused amongst all the other discarded flotsam, as if that vision never happened. Was that some kind of apparition, or just a random memory suddenly slotting back into place? I squeeze my eyes shut and force myself back to the 'now'. <<linkreplace "Look around the room" t8n>>\ <<set _room to $cabin3>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>><</linkreplace>> <<link "Back to the lower corridor" "down the corridor">><</link>><</timed>> <<else>>\ I'm in my room. Many of the non-attached items are just floating around. There's no sign of Kashvi; that vision was just another drifting item, momentarily popping like a bubble of air as it reached the water's surface. <<if $cabin3.includes("backpack-small") && !$hard>> I notice the backpack floating in here – that could be useful.<</if>> \ <<if $carrying.hasOwnProperty("backpack-small") && $easy>><br><span id="sub1"><i>Examine items, then 'equip' the backpack to make use of it.</i></span><br><</if>>\ <<set _room to $cabin3>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Back to the lower corridor" "down the corridor">><</link>> <</if>>\<<set _timer to 3.8>>\ <<set $drawerchat to true>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Unfortunately, the drawer appears to be locked. I do not know the security code, and I have been disconnected from the ship's systems, so I cannot open it for you. <<if visited ("open drawer")>>You may need to use a specialist tool.<<else>>If you speak to an engineer, I'm sure they will be able to help.<</if>><</type>></div> <<GAILchat $gail>><<if visited () == 1>>\ <<addgen fragment-medium $breach>>\ <<if $story>><<addgen mascot $security>><</if>>\ <<if ($easy && $o2 lt 40) or (!$hard && $o2 lt 25)>><<addgen oxygen-full $security>><</if>>\ \ <<audio "door" play>><<set $path.pushUnique('Archives')>>\ I wave the passkey over the lock, a light flashes, and the door opens. I'm half prepared for some horrible sight, but there's nothing. No rush of air, no death, no vision, just an empty, boring-looking office with a desk, a terminal, and the usual human debris floating around like a placeholder for life. <<else>>\ I'm in the Archive office. It's just an empty, boring-looking office with a desk, a terminal, and the usual human debris floating in place like a placeholder for life. <<if !visited ("Strike")>><br><br>I spot another datapad in here, perhaps it has something useful on it?<<elseif $security.includes('data-recupgrade') && !$hard>><br><br>One of the items looks like a Recycler upgrade, I should probably use that at the terminal in the Fabrication room.<<elseif !visited ("Log2") && !$hard>><br><br>I guess I should check the terminal in here to see if there's anything useful on it.<</if>> \ <<if (visited ("Log2") or visited ("Log4")) && ($captainbody == "corridor2")>><br>I glance out of the door and spot poor Matheus. I briefly consider dragging him inside, but I know these terminals scan whoever's using them; unfortunately, a dead body won't unlock any of that 'security-locked' data.<br><</if>><</if>>\ <<set _room to $security>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<do>><<if !visited ("Strike") && $carrying.hasOwnProperty("datapad-j")>>\ <<goto "Strike">><</if>><</do>>\ \ [[Use the terminal|archive Terminal]] <<link "Back to the lower corridor" "down the corridor">><</link>>The keypad isn't working, so I need to find a way to remove the panel and try hacking the system. <<if visited ("open the drawer")>>GAIL thinks this is a job for an engineer, but… It's not like I have many options there.<<else>>This would normally be an engineer's job, but… It's not like I have many options there.<</if>> <<if !$schema.includes('sonic-wrench')>>I might need to fabricate something new.<</if>> \ <<if $schemacount gt 2 && !_sonic && !$schema.includes('sonic-wrench')>>\ <<addgen data-schematic $breach>>\ <<if $easy>><br><span id="sub1">You need to fabricate a Sonic wrench. Look for another schematic somewhere.</span><br><</if>>\ <<elseif !_sonic && $schema.includes('sonic-wrench')>>\ <<if $easy>><br><span id="sub1">You'll need to make a Sonic wrench using the Fabricator.<br></span><</if>><</if>>\ <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench'>> <<replace "#output">>A wrench is not a subtle tool. I need something else.<</replace>> <<elseif _useitem == 'sonic-wrench'>> <<goto "Drawer hack">> <<elseif _useitem == 'datapad-b' or _useitem == 'data-schematic'>> <<replace "#output">>I'm not sure how I can use that to remove the panel.<</replace>> <<elseif _useitem == 'circuit-test'>> <<replace "#output">>That will probably come in handy – after I've removed the panel.<</replace>> <<elseif _useitem == 'pot-plant'>> <<replace "#output">>A pot plant is not the solution I need.<</replace>> <<elseif _useitem>> <<replace "#output">>Hmmm. I really don't think that's going to work.<</replace>> <</if>> <</do>> <</nobr>>\ \ <span id="output">I'll need to use something to remove the panel</span> <<link "Back to the Admin office" "admin inside">><</link>><<savefix>><<glitch>><<timed 1s t8n>>\ Captain Matheus turns to us, his face grave. <<next $t+1.2+'s'>><span id="speech">"It's crazy, this was the best assignment they could offer. Everything else is now AI only – no human crew required."</span> We've never actually seen him angry before. <<next $t+1.2+'s'>><span id="speech">"So this assignment – what are we actually hauling? I heard it was 'Luxury goods'?"</span> Jason asks. We all want to know because they've locked down access to the Cargo hold, level 4 biometrics – only the Captain can get down there. <<next $t+1.2+'s'>><span id="speech">"Well… that's how it's listed. I'm… I'm not allowed to say. The thing is, it is technically illegal, and they know it. They're relying on me keeping quiet, but I'm tempted to make an issue of it,"</span> he mutters. <<next $t+1.2+'s'>><span id="speech">"You can't tell us!? It must be something if it's come in from Nadir?"</span> Jason turns and asks the rest of us, <span id="speech">"Has anyone ever been?"</span> <<next $t+1.2+'s'>><span id="speech">"Are you kidding? On the wages they pay us?"</span> I reply, a little bitterly. <<next $t+1.2+'s'>><span id="speech">"We need to do something. We can't just let them replace us."</span> Matheus is still stewing in his anger. We all think of him as 'Dad'. Well… 'ship's Dad' anyway. Despite this, I reach out and put a hand on his shoulder in a slightly lame gesture of support… <<next $t+1.2+'s'>><<link "I reach out…" "helm first">><</link>><</timed>><<set $captainbody = "helm">>\ <<addgen fragment-large $breach>>\ <<if $story>><<addgen pencil $helm>><<addgen oxygen-full $helm>><</if>>\ <<if ($easy && $o2 lt 55) or $o2 lt 35>><<addgen oxygen-full $helm>><</if>>\ <<if !visited ("cabin 2")>><<addgen data-fabupgrade $helm>><<set $helm.shuffle()>><</if>>\ I reach out, the chair turns, and I'm staring into the gaunt, dead eyes of Captain Matheus. Wasn't I… just talking to…? Was that another vision? I… I don't want to look at him like this, the look on his face… at least he will have died quickly. I'm struggling to maintain my composure. I try my very best to remain calm, but I'm… I'm having a tough time right now. He must have known the ship was in trouble. He was trying to save us – trying to manually steer the ship out of harm's way. What the hell was GAIL doing? I guess his actions didn't work, but maybe he saved the ship from complete destruction. I don't know what to do. I should honour him, I should give him a decent burial, but right now, the best I can do is repair the ship and get us out of here. Does he have a family? My damned memory is still letting me down, but to be honest, I think we just focused on work and left our private lives out of things. <<link "Look around the room" "helm return">><</link>><div id="terminal"><span id="sub2">HELM TERMINAL</span> Welcome $name. <<link "GAIL" "GAILhelm">><</link>> | <b>COMMS</b> | <<link "ENGINES" "Helm-engines">><</link>> | <<link "CARGO" "Cargo">><</link>> COMMUNICATIONS Emergency responder is active. <b>All communications blocked: Command Omega.</b> \ <<if !$gailconnect>>\ <<else>>\ <<type $t+20+'ms'>>GAIL: Attempting communication…<</type>>\ <<type $t+20+'ms'>>No response.<</type>><</if>></div> <<link "Leave the terminal" "helm return">><</link>><div id="terminal"><span id="sub2">HELM TERMINAL</span> Welcome $name. <<link "GAIL" "GAILhelm">><</link>> | <<link "COMMS" "Comms">><</link>> | <<link "ENGINES" "Helm-engines">><</link>> | <<link "CARGO" "Cargo">><</link>> \ <<do>><<if visited ("cabin 4 inside") && !visited ("archives inside") && $secdoor == 1>>\ <b>Archives office door has no power</b> <<linkreplace "› Connect">><<audio "beep" play>><<set $secdoor = 2>>\ <b><span id="sub1">Archives connected to the power grid</span></b><</linkreplace>> <</if>><</do>>\ <<if !$gailconnect>>\ <b>Warning: GAIL has been disconnected from the helm.</b> <<else>>\ <b>GAIL has been reconnected to the helm.</b> <</if>>\ </div> <<link "Leave the terminal" "helm return">><</link>><div id="terminal"><span id="sub2">HELM TERMINAL</span> Welcome $name. <<link "GAIL" "GAILhelm">><</link>> | <<link "COMMS" "Comms">><</link>> | <b>ENGINES</b> | <<link "CARGO" "Cargo">><</link>> ENGINE STATUS <b>Thrusters offline until both engines repaired.</b> <<if !$gailconnect or $engine gt 300>>\ Engines currently offline nacelle-A: operational nacelle-B: offline <<else>>\ <<type $t+12+'ms'>><b>Warning: nacelle-A will go critical in _engine minutes</b><</type>>\ Engines currently offline nacelle-A: overload burst detected nacelle-B: offline <</if>></div> <<link "Leave the terminal" "helm return">><</link>><<set $breach.shuffle()>>\ Items from the ship are dotted around beyond the hull, some nearby, others have drifted further away. As the ship slowly spins, I might be able to reach a few more of them, but I don't want to lose my precarious hold. <<set _room to $breach>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Back" "breach explore">><</link>>Something taps me lightly on the shoulder. I'm so surprised I nearly lose grip of the rope as I turn, looking for the source. A small rock, no larger than a pebble, bounces off me harmlessly. But then another and another gently beat against my suit. I turn around. Further into the distance, I see it, a mass of stones and rubble. A small meteoroid cluster is now coming into view towards the bow of the damaged craft. This is probably the remains of whatever hit the ship, and I'm now drifting back into its path. The ship is turning slowly, and the smaller stones aren't hitting with force, but some of them are sharp, and I can see a much larger one approaching. I need to go faster! [[Keep going|Climb in]] [[Go back|breach explore]]I reach out for the Captain. I touch him gently, respectfully. Of course, in micro-gravity, his body is easy to move. The weight of a human life, reduced to nothing. I guide him slowly out of his chair, but I'm not entirely sure what to do with him. <<link "Leave him in the Helm" "helm return">><</link>> <<link "Move him into the corridor" "up the corridor">><<set $captainbody = "corridor1">><</link>>I head over to Jason's body and I move him as gently as I can. This feels wrong, like I'm treating him just like any of the other floating trash. <<if $lastloc == "up">>\ [[Leave him in the corridor|up the corridor]] <<else>>\ [[Leave him in the corridor|down the corridor]] <</if>>\ <<if $engineerbody == "corridor1">>\ <<link "Move him back into Cabin 2" "cabin 2">><<set $engineerbody = "cabin2">><</link>> <<link "Move him towards the engines" "down the corridor">><<set $engineerbody = "corridor2">><</link>> <<elseif $engineerbody == "corridor2">>\ <<link "Move him towards the helm" "up the corridor">><<set $engineerbody = "corridor1">><</link>> <</if>>\I drift over to Matheus's body. I move him as gently as I can. <<if $captainbody == "corridor1" && $fablevel gt 1 && $reclevel gt 2>> Now the Recycler has been fully upgraded, it can scan much larger objects… which gives me an uncomfortable idea.<</if>> <<if $lastloc == "up">>\ [[Leave him here|up the corridor]] <<else>>\ [[Leave him here|down the corridor]] <</if>>\ <<if $captainbody == "corridor1">>\ <<if $fablevel gt 1 && $reclevel gt 2>>\ <<link "Move him into the Fabricator room" "captain fab room">><</link>> <</if>>\ <<link "Move him back into the Helm" "helm return">><<set $captainbody = "helm">><</link>> <<link "Move him down the corridor towards the engines" "down the corridor">><<set $captainbody = "corridor2">><</link>> <<elseif $captainbody == "corridor2">>\ <<link "Move him up the corridor towards the helm" "up the corridor">><<set $captainbody = "corridor1">><</link>> <</if>>\<<savefix>>\ <<audio "door" play>>\ I feel guilty using him this way, but… I hope he wouldn't mind. He'd want one of us to make it out of this. I gently manoeuvre him in front of me and over to the door. I reach up and splay his fingers over the biometric scanner. <<linkreplace "The door opens…" t8n>>\ <<audio "boom" play volume 0.5>>\ <<set $engineerbody = "gone">>\ <div id="shake">There's a sudden explosion of air and a glowing, swirling blue flame as it erupts from inside the room. There must have been an electrical fire, slowly smouldering inside, burning up the remaining oxygen. I'm blasted backwards, smashing into the other side of the corridor, but Jason's body isn't so lucky, and I watch as he's engulfed in fiery, pulsating gobs of molten flame. It's like a writhing ball of magma as it quickly burns up all the remaining air, and then it vanishes.</div>\ <<timed $t+5+'s' t8n>>And now, like one of those visions, there's nothing there but ash. My head is screaming, and my eyes are seared with a burning imprint of Jason's silhouette being devoured as if by some kind of demon. But he's gone. Even in death, he saved my life. <<next $t+3+'s'>>I wait a moment for my breathing to calm and my vision to clear. I check myself over; incredibly, my suit is a little charred, but ok, which is lucky, as there aren't enough resources for a reprint. I try to brush off the shock like it's nothing, but I know I'll see that image in my nightmares, if I can ever sleep again. <<link "Enter the Engineering room" "Duct">><<set $corridor.pushUnique('burnt1')>><<set $corridor.pushUnique('burnt2')>><<set $engineering.push('burnt1')>><<set $corridor.shuffle()>><</link>><</timed>><</linkreplace>><<if $reclevel gt 2>>\ I try once more to get the scanner to recognise the Captain, but it refuses to work. I think he has to actually be alive for it to register. I wonder… now that I've fully upgraded the Recycler, is there some way I could… reprint him!? <<elseif visited () is 1>>\ This feels so disrespectful, but if I want to get inside the deck lift, I can't think of another way. I move his body gently over to the door, raise his hand, and place it on the scanner. Nothing happens. Then I realise, with the height of the scanner, it must be enhanced security, so maybe iris biometrics? I try positioning the Captain's head so his eyes are in the right position. Still nothing happens. I have a horrible, sinking feeling that the subject needs to be alive for the iris scanner to work – which is a problem. I'm going to have to think of something else. <<else>>\ Once again, I try moving his body over to the door, but the scanner won't respond. I have a horrible feeling that the subject needs to be alive for the iris scanner to work. Which is a problem – it's not like I can bring him back to life. <</if>>\ <<link "Back to the lower corridor" "down the corridor">><</link>>I pull the poor, dead Captain into the Fabrication room. Now what? I guess… well, now the Recycler is fully upgraded, it can use the Fabricator to scan and recycle larger things. If the decklift scanner won't work on a dead body… could I… reprint him somehow!? I'd have to create a new 'schematic' of his body first, but that would destroy him in the process – I feel a bit uncomfortable about that. And there's only enough data capacity for one body, so that would mean I'd have to delete my own backup. It's not that I'm intending to die again, but it is good knowing I have an emergency backup just in case. <<link "Place the Captain's body inside the Fabricator" "captain inside fab">><</link>> <<link "Back to the room" "search the room">><</link>>I'm feeling really queasy about this whole thing. But I've come this far, I suppose, why stop now? I'm trying to shut out the surreal, nightmarish weirdness of it all, so I'm singing a little song in my head to drown out all the voices screaming 'stop'. <i>'My bonnie lies over the ocean…'</i> While I sing, I maneuver Matheus into the Fabricator. The pod where, not so long ago, I was literally born again. Is this his burial? Is that all he's worth? <<link "Set Fabricator to Recycle: Schematic mode" "captain recycled">><</link>><<set $captainschema to true>><<set $captainbody = "recycled">>\ I press the button. I can't watch. It's ok, I tell myself, he can't feel pain, he's already dead. Thankfully, the pod glass clouds as it does its work, but I can still hear it… undoing him. By the time the glass finally clears, the Captain… has gone; vanished, as if he never existed. His body, broken down and turned into data. He'll never get a burial. His family will never get to say goodbye. <i>'…my bonnie lies over the sea…'</i> Think happy thoughts. I think I'm losing it. I'm seeing things, talking to dead people, and now I've recycled the Captain. How am I contributing to the universe? Is it better with me in it? <<link "Back to the room" "search the room">><</link>><div id="terminal"><span id="sub2">FABRICATION TERMINAL</span> <<link "Ship status" "Ship status">><</link>> | <<link "Room status" "Room status">><</link>> | <<link "Resources" "Terminal resources">><</link>> | <b>Emergency Protocol</b> <<do>>\ <<if $captainschema && !$switchready>>\ <b>NEW BODY SCHEMATIC DATA DETECTED</b> <<type 5ms>><span id="sub1"><b>Only one emergency backup is permitted</b></span><</type>>\ Do you wish to replace the previous backup data? This will remove the existing body from the system and replace it with the new schematic. <<if $name == setup.namea && !$switchready>><<link "› SWITCH BACKUP DATA?">><<set $switchready to true>><<redo>><<audio "beep" play>><</link>> <<else>>\ <b>BACKUP DATA HAS BEEN SWITCHED</b> <</if>>\ <<type 2ms>>Backup body data: <b>$name</b> Backup mind data: <b><<print setup.namea>></b><</type>>\ <<elseif $captainschema>>\ <<type 2ms>><b>BACKUP DATA HAS BEEN SWITCHED</b><</type>>\ <<type 2ms>>Backup body data: <b><<print setup.nameb>></b><</type>>\ <<type 2ms>>Backup mind data: <b><<print setup.namea>></b><</type>>\ <<else>>\ <b>Emergency protocol is in effect All doors locked and sealed</b> Emergency backup reprint: completed Emergency protocol limited to one mind/body only Backup data: <b>$name</b> <</if>>\ <</do>>\ </div> <<if $life gt 1>>\ <<link "Leave the terminal" "search the room">><</link>> <<else>>\ <<link "Leave the terminal" "Examine the room">><</link>> <</if>>\<div id="terminal"><span id="sub2">RECYCLER UPGRADE</span> <<do>>\ <b>Recycler currently level: $reclevel of 3</b> Fabricator currently level: $fablevel of 3 <<if $carrying.hasOwnProperty("data-recupgrade")>>\ \ <<if $reclevel lt 3>><<link "› Upgrade Recycler">><<audio "upgrade" play>><<set $reclevel ++>><<removeitem data-recupgrade>><<redo>><</link>><<else>><b>Recycler has been fully upgraded.</b> * Recycling efficiency increased to 90%. * Recycler is now connected to the Fabricator pod to scan, encode, and recycle much larger objects.<</if>>\ \ <span id="output"></span>\ <<else>>\ <span id="sub2">Recycler has been upgraded. <<if $reclevel == 2>>Recycling efficiency has been increased to 90%<<set $degrade to 0.9>><<set $degradeperc to $degrade*100+"%">><<else>>The Recycler can now make use of the Fabricator pod to scan, encode, and recycle much larger objects.<<set $temp = 1>><</if>></span> \ <</if>>\ <</do>>\ </div> [[Back|check the terminal]] <<link "Leave the terminal" "search the room">><</link>>I reach out for him. He's frozen, rock solid – like a statue. As if some artist captured his likeness, but failed to capture his soul. Despite the solidity, his body weighs nothing. I'm not sure what to do with him. <<link "Leave him be" "cabin 2">><</link>> <<link "Move him into the corridor" "up the corridor">><<set $engineerbody = "corridor1">><</link>>Suddenly, to my surprise, the security lock beeps and the door swiftly opens. There's no blast of air – this room is as dark and cold as the corridor. No lights come on, but there's a flickering datapad, slowly spinning within. It casts odd shadows and silhouettes as it gently rotates. Then I'm aware of something large, looming from the darkness towards me, clawed fingers reach out, and as I try to twist out of its grasp, the light flickers and illuminates a face twisted in shock. <<link "I flail backwards in panic…" "jason memory">><</link>><<savefix>>\ <<glitch>><<timed 1.1s t8n>>\ <span id="speech">"…but why have the engines cut out?"</span> I'm trying to talk calmly, even though I'm feeling anything but. <<next $t+1.9+'s'>><span id="speech">"I… I don't know! The ship suddenly changed course, then the engines stopped working. I tried asking GAIL, but she's gone silent. "</span> Jason is trying to sound professional, but isn't doing a good job of it. <<next $t+2+'s'>>He eventually gives up. <<next $t+1+'s'>><span id="speech">"Captain, I think she disabled the engines on purpose!"</span> <<next $t+2+'s'>><span id="speech">"Come on, Jason, think it through. She may be unreliable sometimes, but she has no reason to put us in danger. Crew, Ship, Company, remember?"</span> <<next $t+2+'s'>>Am I just spouting company dogma at him? I know everyone's worried about the contract situation, but right now, I'm more concerned about just getting out of here. <<next $t+2+'s'>><<link "'Look, we're stuck here, so I need solutions, not excuses.'" "jason memory 2">><</link>> <<link "'We need to get back on course. How are you going to fix this?'" "jason memory 2">><</link>> <</timed>><<if visited () == 1>>\ <<if $useitem == "paperclip">>\ I retrieve the paperclip; I've always wondered what these things were actually used for. I unfold it and gently insert it into the reset hole. I feel it click. I hold it down for a few more seconds just to be sure. Then the power light flashes – success! <<elseif $useitem == "spring">>\ I retrieve the metal spring, uncoil one end (which is tricky to do, as it's stronger than it looks!), and then gently insert the wire into the reset hole. I feel a gentle click. I hold it in for a few more seconds just to be sure. Then the power light flashes – success! <<else>>\ I retrieve the pencil and gently insert it point-first into the reset hole. I feel a gentle click. I hold it in for a few more seconds just to be sure. Then the power light flashes – success! <</if>>\ <<else>>\ I've already managed to reset the charger. <</if>>\ <<if $carrying.hasOwnProperty('battery-empty')>>\ Now to try it out! <<linkreplace "Insert an empty battery pack?" t8n>>\ <<removeitem 'battery-empty'>><<additem 'battery-full'>><<set $batcharged to true>>\ I retrieve an empty battery pack and insert it into the device. For a moment, nothing happens, but after a few more seconds, there's an audible beep and a green light flashes on the device. I pull it back out to find that it's now fully charged!<<timed 2.5s>><<audio "beep" play>> <span id="sub2">Fully charged battery pack collected</span><<redo>><</timed>><</linkreplace>> <<elseif $batcharged>>\ The power light is on, and I've already used it, so I know it works. If I want to use it again, I just need another empty battery. <<else>>\ The power light is on, so I hope it will work, but it's tricky to know for sure. <</if>>\ <<link "Back" "helm return">><</link>><<if visited () is 1>>\ I move over to the command chair. <<if $captainbody == "helm">>The Captain sits proudly, his last heroic action trying to save us all, his hands still locked on the twin thrusters. I gently move his arms out of the way and try to take the controls. <<else>>I've already moved Matheus; I sit down and try the controls.<</if>> I'm not qualified to fly the ship, but it's not like anyone else is – these craft are designed to be controlled entirely by onboard AI now. Despite that, I push a few buttons with the confidence of an experienced Captain – nothing happens. <<if !visited ("Helm-engines")>>Perhaps the engines are offline? There might be more information on the terminal.<</if>> <<else>>\ I move back to the command chair. <<if $captainbody == "helm">>I move the Captain gently out of the way and try to take the controls.<<elseif $name == setup.nameb>> It feels good sitting there, like I'm back in command.<<else>> I've already moved the Captain; I sit down and try the controls.<</if>> <<if $name == setup.nameb>> But I still need GAIL to control the navigation – the ship was never designed to be piloted by a human. <<else>>Flying the ship was always something we left to GAIL – there are just too many ways a human can get it wrong.<</if>> <<if visited ("Helm-engines")>> I give it a try, but it looks like this ship isn't going anywhere.<<else>>I try it anyway, but nothing happens, so either the controls aren't working, or the engines are offline. Maybe there's more information on the terminal.<</if>> <</if>>\ \ <<if visited ("Helm-engines")>>\ <<if visited ("engine repair") or visited ("engine repair2")>>It looks like I'm going to have to find a way to fix the engines. <<if !visited ("engineering inside")>>There might be some things that could help in the Engineering room, then I'll need to find a way down to the maintenance level.<<elseif !visited ("engines")>> To do that, I'll have to find a way down to the maintenance level.<</if>> <<else>> I should probably see if GAIL has any ideas about repairing the engines.<</if>> <</if>>\ <<link "Back to the Helm" "helm return">><</link>> <<if $captainbody == "helm">><<link "Move the Captain's body" "move body">><</link>><</if>>\<<glitch>><<timed 1s t8n>>\ <span id="speech">"mmmm mmmm mmm … Rainforest always delivers…"</span> I look over at Jean, and we both laugh. <<next $t+1.5+'s'>><span id="speech">"Really Matheus? I thought you hated those company jingles?"</span> Matheus looks up from his humming with surprise. He always looks like he's shouldering a greater weight than the rest of us, so I'm now feeling a little guilty at making fun of him. <<next $t+3+'s'>><span id="speech">"I can't help it, it's catchy! I get that one stuck in my head all the time! I even used it as my door code!"</span> He says, looking a bit put out. <<next $t+2+'s'>><span id="speech">"Give me something else to sing then! Something better!"</span> Matheus sounds serious, like he's giving me an order, but then I look into his eyes and I can see the warmth there. Ok, I think, challenge accepted! I'm about to sing another terrible jingle back at him, but then I have a better idea. <<next $t+2+'s'>><<link "'Ok… how about…'" "Bonnie2">><</link>><</timed>>I retrieve the rope and attach one of the magclips to the hull nearby. I give it a tug just to make sure it's secure – it seems to hold. I throw the other end across the ship exterior towards the second hole, hoping that it will attach somewhere nearby. Annoyingly, the rope misses its mark, coiling and drifting off into space. Ok, well, one end is fixed; it's still a lot better than nothing. <<linkreplace "Start climbing…" t8n>>I clamber slowly out of the hull, careful not to tear my suit on any jagged pieces of torn plating. With one hand gripping the rope tightly, I attempt to crab along the exterior, clinging on for dear life and grabbing anything I can to keep myself secure. I could just throw myself in the right direction and let momentum do the rest, but I don't trust myself not to miss my footing. I can feel my heart beating faster as my panic level starts to rise. I start humming that tune again to calm myself down. [[Climb on…|cabin 4 entry]]<</linkreplace>><<removeitem 'rope'>>\ I'm now frantically hauling myself along the outside of the damaged hull, no longer as slow and cautious as before. I can see the edge of the other hole… just another meter to go. At this angle, I can see it leads to a dark space within the ship – that must be Cabin 4! I glance back up as something much larger glances off my arm. This one hits with more force, and for a second, I lose grip of the rope… <<linkreplace "No no no!" t8n>>\ <<link "Grab the side of the torn hull!" "reach hull">><</link>> <<if $story>><<set _tim to 4.5>><<elseif $easy>><<set _tim to 2.7>><<elseif $hard>><<set _tim to 1.6>><<else>><<set _tim to 2.1>><</if>>\ <<qte _tim>> <<timed _tim+.3+'s'>><<goto "rope fail">><</timed>><</linkreplace>><<if visited () is 1>>\ I head back to the large tear in the side of the Cabin and peer out. I can still see rocks of all shapes and sizes lazily spinning by, some bouncing harmlessly off the side of the hull like giant hailstones. I'm not chancing it out there again! <<else>>\ I head back to the large tear in the side of the Cabin and peer out. I can still see rocks of all shapes and sizes lazily spinning by, some bouncing harmlessly off the side of the hull like giant hailstones. I'm not chancing it out there again! <</if>>\ [[Back to the room|cabin 4 return]]I move over to the cabin door. It doesn't look so bad from this side. I try the controls, and I can hear motors whirring, straining, trying to move the door, but it's stuck. It's too buckled in its frame. <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'crowbar'>> <<goto "crowbar">> <<elseif _useitem == 'wrench'>> <<replace "#output">>I try using the wrench, the door moves a few millimeters, but it's not going to do the job.<</replace>> <<elseif _useitem == 'multi'>> <<replace "#output">>I try the multi-tool, but I'm not sure it's strong enough, and I really don't want to break it.<</replace>> <<elseif _useitem == 'oxygen-empty' or _useitem == 'oxygen-full'>> <<replace "#output">>I bash the O2 canister against the door, but it's not going to work. I need something with more leverage.<</replace>> <<elseif _useitem == 'sonic-wrench'>> <<replace "#output">>I try using the Sonic wrench, but it's a tool for delicate tasks. I need something with more force.<</replace>> <<elseif _useitem == 'passkey'>> <<replace "#output">>I try using the Security passkey, but the door is jammed. I need something I can use to force it open.<</replace>> <<elseif _useitem>> <<replace "#output">>I don't think that's the right tool for the job.<</replace>> <</if>> <</do>> <</nobr>>\ \ <span id="output">I'll need to use something to open the door</span> [[Back to the room|cabin 4 return]]<<if $carrying.hasOwnProperty("crowbar")>>\ <<if !$hard>><<removeitem 'crowbar'>><<additem 'crowbar-broken'>><</if>>\ <<set $cabin4exit to true>>\ <</if>>\ I jam the crowbar into the gap and heave. It's hard to get a purchase while I'm floating around. I have to maneuver and twist myself so I can position my legs against the side of the wall and then pull as hard as I can. The door shifts a little, but remains steadfast. I give it one more try, pulling with all my might. With one hand, I reach over and hit the 'open door' button at the same time. I feel the crowbar start to give, then the door suddenly opens, and I tumble backwards. The door jams again, but it's now open far enough that I can get out. <<if !$hard>>Unfortunately, the crowbar has broken, but it's done its job.<</if>> <<link "Back to the lower corridor" "down the corridor">><<audio "door" play>><</link>> [[Back to Cabin 4|cabin 4 return]] <<timed 7s>><<audio "wrench" play volume 0.2>><<audio "door" play volume 0.4>><</timed>>\<<timed .1s t8n>>\<span id="speech">"This is an old Earth folk song my mother used to sing to me when I was little."</span> <<next $t+1.5+'s'>>I start to sing slowly, gently. A little embarrassed at first, but then gradually, with more confidence, there's something about this song that always touches my heart.<<next $t+2+'s'>><span id="speech">"My bonnie lies over the ocean, my bonnie lies over the sea…"</span> <<next $t+2+'s'>>And then, someone else joins in. Jean is smiling like she's surprised she even knows the words. <span id="speech">"My bonnie lies over the ocean, so bring back my bonnie to me."</span> The Captain is staring at the two of us like we've gone mad. <<next $t+2+'s'>>Suddenly and with no warning, he stands up, grinning from ear to ear, and sings the chorus at the top of his voice. <span id="speech">"Bring back! Bring back! Oh bring back my Bonnie to me, to me…!!"</span> <<next $t+2+'s'>><span id="speech">"What in sweet Jesus is all that noise!?"</span> Jason is standing in the doorway with a baffled look on his face. <<next $t+1.7+'s'>>We turn together, laughing and sing in unison, <<link "'Bring back, bring back…'" "cabin 4 inside">><</link>><</timed>><<glitch>><<timed 1.1s t8n>>\ <span id="speech">“I'll head to the Helm and see if we can change course manually – the rest of you, back to your cabins, and strap yourselves in!”</span> Matheus is barking out orders, concise and in command. I'm utterly terrified. <<next $t+1+'s'>><span id="speech">"But… what about GAIL, why isn't she doing something!"</span> I'm struggling to work out what's going on. <<next $t+1+'s'>><span id="speech">"She's offline, or… maybe she caused this in the first place. We can't rely on her!"</span> He's moving quickly as he talks. There's an edge of desperation in his voice that I've never heard before. <<next $t+1+'s'>><span id="speech">"But what about the company, why won't they respond!?"</span> I can hear how scared I sound, but I can't help it. I know things have gotten out of hand, but I have no idea why. <<next $t+1+'s'>><span id="speech">"Jean, there's nothing you can do, just go back to your Cabin!"</span> he shouts, and then he's gone, racing up towards the Helm. <<next $t+1+'s'>>There's a thump and I'm thrown to one side as if the ship has been hit by something large. I'm panicking – I can't help it, my mind is freaking out. I don't want to die alone. I run back to my cabin, but I can't… I can't be alone right now. If these are our last moments, I want to be with: <<next $t+1+'s'>>[[Jason|last][$chose = "jason"]] [[Kashvi|last][$chose = "kashvi"]] <</timed>><<if $chose == "jason">><<set _name to "Jason">><<set _cabin to "make my way up to Cabin 2">><<set _she to "he want to spend his">>\ <<else>><<set _name to "Kashvi">><<set _cabin to "run all the way down to Cabin 4">><<set _she to "she want to spend her">><</if>>\ \ <<timed .1s t8n>>I turn and sprint madly down the corridor, there's another mighty thump, and I'm thrown to the floor – the lights all go out all at once. I can still see the dim door markers ahead, so I _cabin. <<next $t+1+'s'>>I pause for a second before I hit the door panel - would _she last moments with me? There's another almighty crunch, and the gravity wells turn off – I'm left flailing, spinning, not knowing which way is up. I can feel the craft powering up. It's ok, the Captain will save us! <<next $t+1+'s'>><<link "Then there's a sound…" "moments">><</link>><</timed>><<if (visited ("Climb in") && !visited ("crowbar")) or $enginefixed>><<set _blocked to true>><</if>>\ \ <<if tags().includes('lower-deck')>>\ <span id="map"><img src="img/map_engine.webp" alt="A map of the ship. This is the engine level. There is a maintenance corridor that splits into two corridors. One leads to engine nacelle A, the other leads to engine nacelle-B." width="900px"></span> \ <div class="cols2"><<if visited ("T-junction") or visited ("Head into nacelle A")>><<link "1. Maintenance corridor" "T-junction">><<close>><</link>><<else>>1. Maintenance corridor<</if>> <<link "2. Deck lift" "deck lift choose">><<close>><</link>> <<if visited ("Head into nacelle A")>><<link "3. Engine nacelle-A" "Head into nacelle A">><<close>><</link>><<else>>3. Engine nacelle-A<</if>> <<if visited ("Head into nacelle B")>><<link "4. Engine nacelle-B" "Head into nacelle B">><<close>><</link>><<else>>4. Engine nacelle-B<</if>> </div>\ \ <<elseif tags().includes('cargo')>>\ <span id="map"><img src="img/map_cargo.webp" alt="A map of the ship. This is the cargo deck. The decklift towards the aft links through to a short corridor with access to the cargo hold." width="800px"></span> \ <div class="cols2">1. Escape pod 2. Cargo hold 3. Lower corridor 4. Deck lift </div>\ \ <<elseif tags().includes('blocked') or _blocked>>\ <span id="map"><img src="img/map_hud.webp" alt="A map of the ship. The helm is at one end, and there are eight rooms down a long central corridor ending in the decklift at the other end." width="900px"></span> \ <div class="cols2">1. Helm 2. Main corridor 3. Fabricator / Recycler 4. Admin [GAIL] 5. Cabin 1 6. Cabin 2 7. Cabin 3 8. Cabin 4 9. Hull breach 10. Archives 11. Engineering 12. Deck lift</div>\ <<else>>\ <span id="map"><img src="img/map_hud.webp" alt="A map of the ship. The helm is at one end, and there are eight rooms down a long central corridor ending in the decklift at the other end." width="900px"></span> \ <<if $fastravel>><<unset $fastravel>><span id="sub1"><i>Use your HUD deckplan to 'fast travel' to locations you've been to:</i></span><br><br><</if>>\ \ <div class="cols2">1. <<if visited ("helm return")>><<link "Helm" "helm return">><<close>><</link>><<else>>Helm<</if>> 2. <<if visited ("up the corridor")>><<link "Main corridor" "up the corridor">><<close>><</link>><<else>>Main corridor<</if>> 3. <<link "Fabricator / Recycler" "Fabrication">><<unset $fastravel>><<close>><</link>> 4. <<if visited ("admin inside")>><<link "Admin [GAIL]" "admin inside">><<close>><</link>><<else>>Admin [GAIL]<</if>> 5. <<if visited ("cabin 1")>><<link "Cabin 1" "cabin 1">><<close>><</link>><<else>>Cabin 1<</if>> 6. <<if visited ("cabin 2")>><<link "Cabin 2" "cabin 2">><<close>><</link>><<else>>Cabin 2<</if>> 7. <<if visited ("cabin 3")>><<link "Cabin 3" "cabin 3">><<close>><</link>><<else>>Cabin 3<</if>> 8. <<if visited ("cabin 4 inside")>><<link "Cabin 4" "cabin 4 return">><<close>><</link>><<else>>Cabin 4<</if>> 9. <<if visited ("breach explore")>><<link "Hull breach" "breach explore">><<close>><</link>><<else>>Hull breach<</if>> 10. <<if visited ("archives inside")>><<link "Archives" "archives inside">><<close>><</link>><<else>>Archives<</if>> 11. <<if visited ("engineering inside")>><<link "Engineering" "engineering inside">><<close>><</link>><<elseif visited ("Duct")>><<link "Engineering" "Duct">><<close>><</link>><<else>>Engineering<</if>> 12. <<if visited ("deck lift choose")>><<link "Deck lift" "deck lift choose">><<close>><</link>><<else>>Deck lift<</if>></div>\ <</if>>\<<set $hydration to 0>><<death>>\ <<timed .5s t8n>> I feel weak… black spots dance in front of my eyes… I can't form coherent thoughts… I feel… so thirsty… I'm not sure I… <<next>><span id="sub1">I pass out from lack of water… soon enough the vacuum of space claims me. The ship doesn't have enough resources for a reprint, so my body joins the rest of the debris.</span> <<next>><b>This is the end of my journey.</b> <<next>><<if (Save.browser.size > 0)>><<link "Load most recent save">><<run Save.browser.continue()>><<run Engine.show()>><</link>><</if>> <<link "Back to the start" "Start">><</link>><</timed>><<glitch>><<timed 1.1s t8n>>\ <span id="speech">“So are we agreed? Unless the company can guarantee that we won't be replaced, we go on strike and threaten to expose what they've been doing.”</span> Matheus is holding the datapad like it's some holy scripture. We're nervously looking at each other – there are no smiles today. <<next $t+1.7+'s'>><span id="speech">"I… don't know. I mean, won't they just fire us?"</span> I say, feeling like this whole thing is moving a little too fast. <<next $t+1.7+'s'>><span id="speech">"They can't. Not when people find out what we've been hauling. It'll be all over the feeds!"</span> <<next $t+1.7+'s'>><span id="speech">"I don't know, it's not exactly glamorous. I mean, yeah, it's illegal, but will anyone actually care? It's just… waste,"</span> Kashvi interjects. <<next $t+1.7+'s'>><span id="speech">"74 metric tons of biowaste."</span> Matheus responds matter of factly. <<next $t+1.7+'s'>><span id="speech">"Yeah, but that's still not, you know, 'sexy',"</span> Jason says, still not sounding entirely convinced. <<next $t+1.7+'s'>><span id="speech">"74 metric tons of biowaste, including rotten food, plastics, human sewage, pollution, toxic waste, radioactive materials, poisonous metals - you name it. All generated by the ultra-wealthy residents of Nadir and shipped to Earth to be disposed of – all off the books."</span> The Captain is struggling to keep the anger out of his voice. <<next $t+1.7+'s'>><span id="speech">"I'm still not sure anyone will care, it's not like it's drugs or weapons or something,"</span> says Jason. <<next $t+1.7+'s'>>\ <<link "'People won't care. It's just detritus.'" "Strike 2">><<set $care = false>><</link>> <<link "'People will care. It's choking the Earth.'" "Strike 2">><<set $care = true>><</link>> <</timed>><<set $lift to 3>>\ <<if visited () == 1>>\ <<set $path.pushUnique('Cargo deck')>>\ <<if !$easy && !$hard>><<addgen spring $cargo>><</if>>\ <<if $hard>><<addgen can-full $cargo>><</if>>\ <<if ($easy && $o2 lt 79) or ($o2 lt 58)>><<addgen oxygen-full $cargo>><</if>>\ <<if $hard>><<addgen data-schematic $cargo>><</if>>\ <<if $food lt 38>><<addgen rations3 $cargo>><</if>>\ <<if $hydration lt 29>><<addgen rehydration $cargo>><</if>>\ <<if !_sonic && !_multi && $easy>><<addgen sonic-wrench $cargo>><</if>>\ <<set $cargo.shuffle()>>\ \ I exit the lift into a wide corridor. The lights aren't working; it looks like there's no power down on this level. I only have the tiny lights in my suit helmet to guide my way, so I can only see a few meters into the darkness. I follow the corridor along. There are more signs of damage down here; some of the metal panelling has collapsed, and there are ducts floating loose, like the remains of some living, writhing thing. I keep going. The corridor ends in a set of large loading doors, and there's a polyglass window set into each. <<else>>\ <<if $o2 lt 20>><<addgen oxygen-full $cargo>><<set $cargo.shuffle()>><</if>>\ I'm in the lower corridor. It's completely dark; it looks like there's no power down on this level. At one end are the doors to the deck lift. At the other, a large set of double loading doors<<if visited ("search for a way in")>>, but I can't find a way to open them<</if>>. <</if>>\ <<set _room to $cargo>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Peer in" "peer in">><</link>> <<link "Head back to the lift" "deck lift choose">><</link>><<set $path.pushUnique('Cargo hold')>>\ There's a pause, and then the large cargo doors slowly, uneasily slide apart, revealing a spacious area beyond. I drift in, dispersing dust in gentle eddies as I move. The space directly in front of me is clear, but beyond that… It's like every room on the ship… except times a thousand. <<timed .5s t8n>>Cargo containers lie twisted and bent out of shape, resting uneasily against each other as if frozen mid-collapse. Some of them have broken open, and from those ooze refuse, pollution, slime, and waste of every description. <<next>>There are other things in here too, lumpen twisted things. Now I'm closer, they look… like remains. Dead, contorted flesh. It's truly disturbing. I drift closer still… Some of those shapes look almost… <<next $t+7+'s'>><span id="chat">"Hello $name"</span> I'm startled by a familiar, mechanical-sounding voice. I turn. A blinking light is slowly approaching from the far end of the hold. That's the voice <<if $liftheard>> I heard in the lift – the same voice <</if>> I first heard when I climbed out of the fabricator. <<link "'Hello Rover'" "Hello GAIL">><</link>><</timed>>A large, beaten-up-looking cargo loader bot is approaching. Splashes of yellow paint adorn its box-like outer shell, and the letters 'ROVER' are written in steel-grey along one side. It drifts slowly towards me on its single propulser. <span id="chat">"I'm so glad you're still alive $name."</span> The sound of its voice is broadcast right into my helmet – like it's in here with me. It's a little taller and a lot wider than I am, and there are various arms, tracks, and loading mechanisms attached to it – presumably to handle a wide variety of cargo. It looks old, used, low-tech, but also strong and dependable. I guess it could keep going for years on its own power source, slowly trying to piece together its broken cargo. Still, I'm wary. <<if _pistol>>I clutch the pistol tighter.<<else>>I'm really wishing I'd brought a weapon.<</if>> <<link "'Actually, my name is Jean'" "My name is Jean">><</link>>This is a complete walkthrough for the game. It will take you through it step by step, but won't touch on the story. The walkthrough is broken into sections – <b>new sections will be added as you progress</b>. However, it is possible to complete many sections in a different order from that shown below. <<linkreplace "1: FABRICATOR ROOM #1" t8n>><b>1: FABRICATOR ROOM #1</b> Wake up in the fabrication pod, have a look around, then open the door into the corridor… Now search the room. Check the storage unit; you'll find the door is locked. Use the terminal and go to the 'room status' tab. At the bottom, click the option to open the storage door. The storage unit is now unlocked, but the door is jammed – it looks like you need something else to force it open. Search the room and pick up everything – to do so, just click on each item (you can see them being added into your inventory in the side panel). Use the 'Examine Items' link to view item descriptions. If you ever need to drop an item, just click on 'items: drop'. This will drop items in this location and they'll stay there until you pick them up again. Now it's time to use the 'Recycler'. To recycle something you're carrying, click on it, then you'll need to confirm by clicking the 'Recycle' button above. This will destroy the item, but give you back some resources. Recycle everything you picked up. <</linkreplace>> \ <<if visited ("The end")>>\ <<linkreplace "2: FABRICATOR ROOM #2" t8n>><b>2: FABRICATOR ROOM #2</b> Now use the Fabricator; you should now have enough resources to make a Wrench and a Rehydration pack. They'll both be added to your inventory (as long as you have room). Go to the storage door and use the Wrench to open it. Pick up everything inside and put on the EMU suit. Note the new 'Suit HUD' that has now appeared in the side panel. Keep an eye on this as you progress. Don't let the oxygen (or food / water) levels reach zero. Don't worry, they tick down slowly, and there should be plenty of resources to find as you explore. You can now exit the room, but before you do, head back to the Fabricator terminal. If you picked up the 'Datachip (schematic)', you should see a new option: 'Use schematic data'. You can now choose to add a new schematic to the Fabricator (but only things from the 'Level 1' list). Add whichever you think will be most useful. You'll then be able to make this item in the Fabricator – if you have enough resources. While you're here, recycle the burger you picked up to make some room, then use the 'Rehydration pack' you made earlier to quench your thirst. Do this by clicking on 'Examine Items' in the side panel and then 'use' at the bottom of the inventory list. If you're ever carrying something you can use, this is how you can use it. Exit into the main corridor – you can now explore the ship. <</linkreplace>> <</if>>\ \ <<if visited ("Corridor")>>\ <<linkreplace "3: THE CORRIDOR" t8n>><b>3: THE CORRIDOR</b> The corridor is long and connects nearly all the rooms on the ship. It's split into two separate 'locations': • the <b>upper corridor</b>, towards the helm • and the <b>lower corridor</b>, towards the engines Just like many of the rooms, the corridor is full of floating debris. Much of it is useless, but there may be a few items worth picking up. Note: once you're wearing your suit, you can only eat or drink 'ration' and 'rehydration' packs – you can recycle anything else you find. As with any location, you can pick up or drop any item you're carrying. Items will remain where they've been dropped, so you can always pick them up again later. Note: When viewing items in the corridor, it's shared across both the upper and lower sections. <<linkreplace "› The Deckplan" t8n>><b>The Deckplan</b> In the upper corridor, you'll see there's a 'deckplan' (ie, a map of the ship). Access this to view a list of all the rooms. At the bottom of that screen, click 'add data to suit'. You can now access the deckplan at any time from the side panel using the new 'Deckplan' link (under 'Suit HUD'). Once you've been into a room (like the Fabrication room), you can then 'fast travel' to it directly from here – use this to quickly go back to any rooms you've already explored.<</linkreplace>> You'll find almost all of the doors are locked – at least at first. When you try a door, the corridor description will update to show you what you need to do to open it. Some doors require a code, others will need to be 'hacked' to open them. A few may have different requirements. Try all the doors in the upper corridor. Now try exploring the doors in the lower corridor. <</linkreplace>> <</if>>\ \ <<if visited ("down the corridor")>>\ <<linkreplace "4: EXPLORING" t8n>><b>4: EXPLORING</b> In the lower corridor, you'll find that one of the cabins opens for you: Cabin 3. You'll get a 'flashback' in here; this will give you glimpses of what happened before the accident, but may also contain a clue as to what you need to do next. Explore the items in the room. Items of particular interest: • a 'Datapad' - pick it up, then use 'Examine Items' in the side bar to read it • Small backpack - 'Examine Items', and equip it to increase the number of items you can carry to seven. • Datachip (schematic) - take this to the terminal in the Fabrication room to add another schematic to the list of things you can make. • O2 canister (full) - use this if your O2 is running low (save it for later if it isn't!). If you examine the datapad in here, you'll find information about the door code to the Admin office. That's your next stop. <</linkreplace>> <</if>>\ \ <<if visited ("cabin 3 return")>>\ <<linkreplace "5: GAIL" t8n>><b>5: GAIL</b> Head back to the door to the Admin office. Now use the code you found on the datapad at the keypad to access the room: 7196 Talk to GAIL - unfortunately, she's not much help. More chat options will open up later as you explore, so don't forget to return occasionally. Once you've asked her a few questions, you'll even be able to ask her for a hint as to what to try next. When you've finished your conversation, investigate the desk drawer. You'll need to find a tool you can use to access the lock. The flashback mentioned a 'Sonic wrench' (and a 'Circuit tester'). Pick up the Datachip (schematic) you find in the room, and if you haven't already, head back to the Fabricator room and add the 'Sonic wrench' to the Fabrication list. Remember, once you've added the deckplan to your HUD, you can 'fast travel' directly there. You can also now use that to travel back to the Admin office. Make a 'Sonic wrench' at the Fabricator and go back to the drawer. If you need more resources to be able to make it, you can pick up some of the other debris in the corridor and recycle it. Use the Sonic wrench on the locked drawer. You'll now see a 3x3 grid of numbers. Click on each number to change it (note: the bold number in the middle can't be changed). As mentioned in the flashback, you need to make each row and column add up to 5. <<linkreplace "Solution" t8n>>Set the numbers to: 1 2 2 2 <b>1</b> 2 2 2 1<</linkreplace>> This will open the drawer. Inside you'll find another datapad and a 'Circuit tester'. Make sure you're carrying both the Sonic wrench and the Circuit tester, and then head over to Cabin 2 (you could also try this at the door to the Helm). <</linkreplace>> <</if>>\ \ <<if visited ("cabin 2 enter")>>\ <<linkreplace "6: CABIN 2" t8n>><b>6: CABIN 2</b> At the door to <b>Cabin 2</b>, use the Sonic wrench to remove the panel, then use the Circuit tester. This will show you what each row (horizontal line) and column (vertical line) should add up to. You'll need to figure out the right numbers (there is more than one solution!). The solution to this is different depending on whether you're playing in 'Easy' or 'Normal' mode: <<linkreplace "› Solution" t8n>>\ <div class="cols2">\ <b>Easy</b> 4 <b>9</b> 2 <b>3</b> 5 <b>0</b> 1 <b>7</b> 4 <b>Normal</b> <b>1</b> 8 6 6 6 <b>7</b> 3 <b>4</b> 3</div><</linkreplace>> Once inside, you'll get another flashback. You'll then gain access to Cabin 2. Items of note inside: another datapad and another schematic. You may also find a <b>Fabricator upgrade</b> - use this at the Fabricator terminal to be able to make Level 2 schematics. You'll also see another option: to look at Jason's body. Do so, and then move him into the main corridor. <</linkreplace>> <</if>>\ \ <<if visited ("helm hack")>>\ <<linkreplace "7: HELM" t8n>><b>7: HELM</b> The same technique that worked on Cabin 2 should also work on the door to the <b>Helm</b>. This time, the hacking matrix is a little more complex. Again, there's more than one solution. <<linkreplace "› Solution" t8n>>\ <div class="cols2">\ <b>Easy</b> <b>1</b> 8 6 6 6 <b>7</b> 3 <b>4</b> 3 <b>Normal</b> 6 0 0 <b>3</b> 6 3 8 1 <b>7</b></div><</linkreplace>> This will open the door and give you access to the Helm. There's another datapad in here and another schematic. Note: You may also find a Fabricator upgrade in here - use this at the Fabricator terminal to be able to make Level 2 schematics. There's a battery pack charger in here, but it needs to be reset before you can use it. You can use either a pencil, paper clip, or metal spring. Once reset, you can then charge any empty battery pack – you can either find one or make one later. On the helm terminal, you'll find that GAIL has been disconnected. You have the option to reconnect her. Consider your choice carefully, as once made, it can't be undone. <<linkreplace "If you reconnect her…" t8n>>Unfortunately, GAIL will end up making things worse; there will now be a countdown timer before the engines explode! Don't worry, it's not realtime (it's based on turns - and you should have <i>plenty</i> of time, so don't panic!). There are some advantages – she will be able to scan the ship for certain useful items (or crew), and you can now talk to her directly from the Helm. Overall, you're probably better off with her reconnected.<</linkreplace>> Just like with Cabin 2, you also have the option to move the Captain's body. Do so, and move him into the corridor. <</linkreplace>> <</if>>\ \ <<if visited ("helm inside")>>\ <<linkreplace "8: HUMAN RESOURCES" t8n>><b>8: HUMAN RESOURCES</b> Once you've explored the Helm and Cabin 2, make sure to move both bodies into the corridor. Let's start with Jason, the engineer. Move his body from the upper, to the lower corridor. Once there, investigate the door to Engineering. This will give you the option to use Jason's body to open the door. Once inside, you'll need to shut off the oxygen duct. Just use a standard Wrench (or the 'Multi-tool') to do so. You can now access the items in here. Read the datapad and pick up the <b>Recycler upgrade</b>. Go and use that at the Fabrication terminal to upgrade the Recycler. Once you've gained access, you'll find new 'items' inside the room, and also added to the main corridor. You can recycle these for extra resources. It's worth trying the same thing with the Deck lift, which is locked to the Captain. Move the Captain's body into the lower corridor, then investigate the Deck lift doors. Annoyingly, that doesn't work – it seems the Captain has to be alive for it to register. That's a problem to solve later. <</linkreplace>> <</if>>\ \ <<if visited ("engineering inside") && visited ("helm inside")>>\ <<linkreplace "9: CABIN 4" t8n>><b>9: CABIN 4</b> If you haven't already, make sure you've added the 'Plasteel rope' schematic to the Fabrication list, then go and make one. You may need to recycle some more things to have enough resources ('hull fragments' are good if you're in need of metals and polymers, 'meteoroids' and 'coffee mugs' are good for minerals). And if you're all out of schematic upgrades, try looking outside the ship. Head back to the hull breach and climb out. Look out across the exterior and use the Plasteel rope. You'll get a 'quicktime' event. If you don't manage to click the link in time, you'll need to throw something with enough mass to push you back (eg, a wrench, an oxygen tank, large hull fragment etc.). Failing that, you'll have to try again! (or switch to an easier mode just for this bit - which will give you more time). This will eventually give you access to Cabin 4. You'll find several important items in here (you may need to drop some to make room). Take the Passkey, the crowbar, the schematic upgrade, and the <b>Fabricator upgrade</b>. Now use the crowbar to open the door and return to the corridor. Head to the Fabricator room and upgrade it at the terminal. The Fabricator should now be at max level, so you can add any Level 1, 2, or 3 schematic. Note: If you're playing on 'normal' you may want to consider making the 'MaxiRations' as soon as possible - this will solve all your hunger and thirst problems! <</linkreplace>> <</if>>\ \ <<if visited ("crowbar")>>\ <<linkreplace "10: ARCHIVES" t8n>><b>10: ARCHIVES</b> Now you have the Passkey, you can use it to open the door to the Archives. There are a few more items in here. Pick up the datapad to see another important flashback. Then take the schematic and <b>Recycler upgrade</b>. There may also be an empty battery pack in here that you could recharge in the Helm. There's a terminal in here that has some more information on it; have a browse through. You'll find that Logs 2, 3, and 4 are 'security locked'. The Captain may have access, but if you drag his body nearby, you'll discover it won't work (just like the Decklift). Head back to the Fabricator room and upgrade the Recycler. Once you've upgraded it to max (3 of 3), you'll be able to scan and recycle larger objects – something that's essential to get into the Decklift… <</linkreplace>> <</if>>\ \ <<if visited ("archives inside")>>\ <<linkreplace "11: CABIN 1" t8n>><b>11: CABIN 1</b> Cabin 1 is the last room, but it's optional – you don't need to open it to complete the game. Unfortunately, the biometric scanner is broken, so you can't access it that way. You can try hacking the security again, but this one is glitching out. So you need to try something else. <b>Solution 1: Find the code</b> In the flashback, the Captain briefly mentions that he set his code to a 'company jingle'. If you make a 'Company mascot' and read the description, you'll see that it sometimes sings company jingles. Equip a charged battery pack and then turn the mascot on (use it from the inventory). Each turn, it will randomly go through some of its sayings. The one you want is: <i>"Across 46 planets and 21 systems, Rainforest always delivers"</i>. Use 4621 to open the door. <b>Solution 2: Blast the door</b> Fabricate a Plasma pistol. If you're carrying a charged battery pack, you can now use the pistol on the keypad to simply blast it. The door will open right up! Whatever method you use, you'll then get access to Cabin 1. View the flashback, then you can browse the items in here. <</linkreplace>> <</if>>\ \ <<if $reclevel == 3>>\ <<linkreplace "12: RECYCLING 101" t8n>><b>12: RECYCLING 101</b> You should now have managed to upgrade the Recycler and the Fabricator to max (3 of 3). Importantly, upgrading the Recycler to max allows you to use the Fabricator pod to recycle and create schematics for larger objects… like bodies… Move the Captain's body to the upper corridor. Then head back into the Fabricator room. You'll now see the option to drag him inside. Do so, and then… recycle the Captain. Rather than gaining resources, you've turned his body into backup data. This new 'schematic' is now available on the Fabricator terminal. Access that and go to the 'Emergency Protocol' tab. Now switch the backup data from your body to the Captain's. <</linkreplace>> <</if>>\ \ <<if $captainbody == "recycled">>\ <<linkreplace "13: THE CAPTAIN" t8n>><b>12: THE CAPTAIN</b> You now have body data for the Captain, but you can't just reprint him. There aren't enough resources, and there's only one 'emergency reprint' allowed (and you're still alive). There is a way to solve both of those problems… Go to the Fabricator (or Recycler) and look for the option: 'Climb into the Fabricator'. Do so, and hit 'Recycle' to destroy yourself and create new resources. Because the 'emergency protocol' is still in effect, you'll be reprinted as Captain Olson. Head out into the corridor and retrieve any important items you were previously carrying. As the Captain, you now have access to all security-locked data (eg, the 'Command Omega' query with GAIL, the 'Cargo' feed on the Helm terminal, and the Logs in the Archives room). This may help to fill in a few gaps in the events. Crucially, you'll now be able to access the Deck lift. You can access the two lower decks: the Engines and the Cargo hold. Head to the deck lift and make sure to bring anything you might need. <</linkreplace>> <</if>>\ \ <<if $name == setup.nameb>>\ <<linkreplace "14: THE ENGINES #1" t8n>><b>14: THE ENGINES #1</b> First, head down to the Cargo level. At the end of the corridor, there are two large doors blocking your path – it looks like you can't get in until you've restored power down there. Pick up anything useful, then head back to the lift and up to the Engine maintenance level. This is the final puzzle and is a little more complex. The important thing to note is: everything you need is inside these two rooms – you <b>don't need to fabricate anything new</b>. You can go right to nacelle-A or left to nacelle-B. The left door (nacelle-B) is locked, but the other one is open. Head inside and you'll find yourself in the reactor torus ring. <<linkreplace "If you reconnected GAIL in the Helm…">>If you chose to reconnect GAIL, then nacelle-A is the one that's counting down to explode – so that will need rebooting as soon as possible! Thankfully, the procedure turns out to be fairly simple. Just follow standard IT procedure… ie, turn it off and on again! You'll need to get the timing right though - just turn it back on as soon as you see the link appear. Note: If you're having trouble with the timing, just switch to 'easy' or 'story' – which gives you more time – you can switch back again after.<</linkreplace>> <</linkreplace>> <</if>>\ \ <<if visited ("Head into nacelle A")>>\ <<linkreplace "15: THE ENGINES #2" t8n>><b>15: THE ENGINES #2</b> There are a few items in nacelle-A; pick up anything you need. You may find a plasma pistol; if so, pick that up too, but you'll need a charged battery pack to use it. If you need one, you can still go back up the lift to get it. Now head back to the other engine (nacelle-B). You'll need to get through the door. You can either use the Sonic wrench/Multi-tool and then hack it, or you can do it the easy way using the charged plasma pistol. <<linkreplace "If you choose to hack it, the solution is:" t8n>>\ Final door hack solution: 9 1 4 0 8 2 3 6 7<</linkreplace>> Once inside, you'll find another reactor, but this one has shut down – you need to find a way to restart it. Take a look inside – it looks like you need to place 3 items (in the right order). However, you don't know what items or in what order yet. Go back to nacelle-A – the working engine – and remove the plate shielding. You can do this with the Sonic wrench or the Multi-tool. Once removed, you can look inside. Make a note of the order and the descriptions (you can return here to recheck if needed). The last one is missing, but if you look at Jason's note on the datapad in here, he mentions the 'Charge inciter', which must be the third item. You'll find a 'used' one floating around. Annoyingly, it can't be reused, but its description may be useful. <</linkreplace>> <</if>>\ \ <<if visited ("Inside the reactor")>>\ <<linkreplace "16: THE ENGINES #3" t8n>><b>16: THE ENGINES #3</b> You don't have the specific parts needed (as the spares were destroyed in the fire inside the Engineering room). You'll have to get creative and use anything you can find – you may have to use 'substitute' items. Read the descriptions and see if you can find anything vaguely similar. You're looking for: <b>1: the plasma coil</b>: a small metal spiral device designed to buffer the initial charge. <b>2: the insulation</b>: a ceramic concave semi-circle that protects the plasma coil. The last item is the 'Charge inciter', and the description for that is: <b>3: the charge inciter</b> A metal cylinder (around 12x6cm) containing a pressurised liquid that vapourises when heated to help evenly distribute a pulsed charge. Try adding items, and turning it on. Each time you do, you'll get more of a hint as to what you need to do. After the third try, it will tell you if any of the items used are correct. <<linkreplace "Solution" t8n>>Find these items, then insert them in this order: <b>1. Metal spring 2. Mug 3. SodaCola</b> The <b>Metal spring</b> can either be fabricated, or you can find it in: nacelle-A (easy) or down on the cargo deck (normal). <b>The Mug</b> can be found in nacelle-A, and the <b>can of SodaCola</b> is in nacelle-B. The descriptions for each are <i>similar</i> to the intended items! Note: if you accidentally recycle any of these, they'll magically appear in the main corridor!<</linkreplace>> Once done, the engines are repaired and ready to go! However, if you try heading back up to the main deck, you'll find your way is blocked. Instead, head back to the cargo hold… and the final location. <</linkreplace>> <</if>>\ \ <<if $enginefixed>>\ <<linkreplace "17: CARGO HOLD" t8n>><b>17: CARGO HOLD</b> With the engines repaired, the power has been restored on the cargo level. If you're running low on food, water, or oxygen, now's the time to replenish. You may also want to consider bringing that plasma pistol with you (along with the charged battery pack). There were two larger doors blocking your path into the cargo hold, but they'll now open up. There are no puzzles from here on in, just a conversation and a final choice. There are three different endings – make whatever choice feels right to you. Game complete! Note: If you achieve 99% completion (or view the three main endings) you'll get some 'bonus notes' that contain some fun details on the story. <</linkreplace>><</if>>\<h3><hr class="line"><<link "▸ COMPLETION: ">><<script>> Dialog .create("COMPLETION", "PROGRESS") .wikiPassage("Progress") .open(); <</script>><</link>> <<progress>>$progress <hr class="line"><<music>> <hr class="line"><<link "▸ DELAYED TEXT: ">> <<if $t == 0>><<set $t = -11>><<run Engine.show()>><<redo>><<else>><<set $t = 0>><<run Engine.show()>><<redo>><</if>><</link>><<do>><<if $t == 0>>NORMAL<<else>>FAST<</if>><</do>> \ <hr class="line"><<link "▸ DIFFICULTY: ">><<script>> Dialog .create("DIFFICULTY", "DIFFICULTY") .wikiPassage("change diff") .open(); <</script>><</link>> $diff \ <<if passage() != "inventory" && passage() != "Help">>\ <hr class="line"><<link "▸ PLAY GUIDE" "Help">><<close>><</link>> <<else>><hr class="line"><span id="sub1">▸ PLAY GUIDE</span> <</if>>\ <hr class="line"><<link "▸ QUIT TO THE MENU" "Start">><<if setup.music>><<audio "ambient" play unloop>><<audio "ambient" fadeout>><<audio "theme" loop play>><<audio "ambient" fadein>><</if>><<close>><</link>></h3>\<<set _timer to 4>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>The crew on this assignment are: • Captain: Matheus Olsen (Cabin 1) • Engineer: Jason Yoshida (Cabin 2) • Communications: Jean Wilson (Cabin 3) • Security: Kashvi Ananya (Cabin 4) Although apart from yourself, I have no location or medical data on them. <</type>></div> <<GAILchat $gail>><img src="img/title_small.webp" width= "90%"> <<if passage () != "Intro">> <<link "SETTINGS">> <<script>> Dialog .create("SETTINGS", "SETTINGS") .wikiPassage("Settings") .open(); <</script>> <</link>> <</if>> <<if $story>> <br> <<link "STORY HINTS">> <<script>> Dialog .create("HINT", "HINT") .wikiPassage("what to do") .open(); <</script>> <</link>> <</if>><<if visited () is 1>>\ I turn my attention to the rest of the room. At the front, the digital canopy projects the dark expanse beyond. Stars litter the screen, flickering like bright pinpricks cut into the infinite black. The outer spiral arm of the galaxy is visible, spread across the view. I have no idea where we are, but we're a long way from anywhere I recognise. The Captain's body rests in the command chair, nearby is the Helm terminal, and below that is a pack charger. The same old debris floats in the spaces in between. <<else>>\ I'm in the Helm, a large room that contains all the ship's navigation, controls, comms, and life support. <<if $helm.length gt 0>>The same old ship debris is floating around the space.<<else>>I've cleared out all the floating items in here.<</if>> At the front, the wide digital canopy projects the expanse of space. <<if $captainbody == "helm">>The body of the Captain drifts gently, his final effort trying to steer the ship from disaster.<<elseif $name != setup.nameb>>The command chair is empty; I've moved the Captain's body.<<else>>This is where I… the Captain died. I'm actually relieved – no awful new visions. That's something at least.<</if>> <<if $helm.includes('data-fabupgrade')>> I spot a Fabricator upgrade floating around in here – I should use that at the terminal in the Fabricator room. <</if>> <</if>>\ <<set _room to $helm>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Check the command chair" "manual">><</link>> <<link "Use the Helm terminal" "Helm terminal">><</link>> <<if visited ("charger")>><<link "Use the pack charger" "charger">><</link>><<else>><<link "Try the pack charger" "fix charger">><</link>><</if>> <<if $captainbody == "helm" && visited ("move body")>>\ <<link "Move the Captain's body" "move body">><</link>> <</if>>\ <<link "Back to the upper corridor" "up the corridor">><</link>><<timed .1s t8n>>\ He takes a beat, calms down, and tries to be a little more convincing, <<next $t+1.3+'s'>><span id="speech">"I know… I know it's probably nothing, but I think we have to disconnect her and start the engines manually – at least until we know what's going on. I hope it's just a sensor issue, but if we can't rely on her at all…"</span> <<next $t+3+'s'>>He leaves that last sentence hanging in the air like a kid's balloon full of poison gas. <<next $t+2+'s'>><span id="speech">"You're sure you can fix the engines without GAIL's help?"</span> I should be concerned. I suspect the last time Jason actually got his hands dirty on a real engine was during his engineer's exam. Everyone is so reliant on the onboard AI these days – but I know the kid has talent, so if anyone can fix this… <<next $t+2+'s'>><span id="speech">"Yeah, of course!"</span> He flashes me one of those grins of his, the one that always gets him into and out of trouble. And suddenly, he's not stressing out anymore. I can see him looking forward to the challenge. <<next $t+2+'s'>>I smile, this crew can handle anything, they just need a little push. <<next $t+1+'s'>><<link "'Well, we've got nothing to lose'" "cabin 2">><</link>> <<link "'Just be careful, and no more delays'" "cabin 2">><</link>><</timed>><<timed 0.1s t8n>>\ <<if $paranoia>>\ Kashvi isn't one for paranoia; if she's concerned, it's usually for good reason. <<else>>\ Paranoia is infectious; I try my best not to catch it. <</if>>\ <<next $t+1+'s'>>She continues, <span id="speech">"That's on top of all the other stuff, her hallucinations, her unreliability. You know they're trying to renegotiate our contracts? I think she's been watching us – to learn from us."</span> She pauses for a moment before saying what's on her mind. <<next $t+1.3+'s'>><span id="speech">"I think she wants to replace us. I think she wants to…"</span> <<next $t+1+'s'>><span id="speech">"Come on"</span> I interupt, <span id="speech">"The company wouldn't let that happen. The onboard AI is there to look out for us, 'crew first' remember?"</span> I say, trying to sound like I believe it. <<next $t+1.5+'s'>>We exchange a long, silent look that speaks volumes. <<next $t+1.5+'s'>><span id="speech">"Yeah. I'm limiting Admin door access, just to be safe."</span> She hands me a datapad, I reach out and our fingers touch, just for a moment… <<next $t+1.5+'s'>><<link "Take the datapad" "cabin 3 return">><</link>><</timed>><<if visited () is 1>>\ I'm back in the Captain's cabin, taking huge gulps of air; my heart is hammering, and I'm dizzy with sweat. I think I'm having a panic attack. Was that my death? My <i>original</i> death? I can't think of a worse way to go. And how can I even remember it? I shut my eyes and try to get my breathing under control. I can't afford to abuse oxygen like that. I'm worried I'm losing what's left of my fragile mind. Is this what reprinting does to us? I try to regain my composure by looking around at the other items drifting around the room. <<elseif $name == setup.nameb>>\ I'm in Cabin 1, Matheus's… my cabin? I'm so confused. The walls are covered in photos. Photos of us… the crew. Photos of me. Photos of my family. But I don't remember them. Are those memories stored somewhere in this body's DNA, ghosts of someone else's past? <<else>>\ I'm in Cabin 1, the Captain's cabin. The space is very similar to the others, but covering much of one wall is a parade of old-fashioned 2D photos. They're images of us, the crew; photos of his work family and his home life. Evidence of a life well-lived. There are a few other items drifting around the room. <</if>>\ <<set _room to $cabin1>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Back to the upper corridor" "up the corridor">><</link>>The system will only allow one reprint at a time, so it won't work while I'm still alive. It's going to need more resources too. There's one way to solve both of those problems. I take off everything I'm carrying, then make sure the room is fully pressurised. I slowly unclip my helmet. Am I really going through with this? There's a rush of air, and I breathe in deeply, filling my lungs – perhaps with the last air they'll ever breathe. I'm shaking a little as I take off my suit, so I start singing again to try and calm my nerves. <<linkreplace "Climb into the Fabricator pod…" t8n>>\ <i>'…my body lies over the ocean…'</i> I start to laugh uncontrollably as I climb back into the Fabrication pod and reseal the glass enclosure. <span id="chat">"New memory backup made."</span> I look down at the control panel resting by my hand. <i>'…so bring back my body to me…'</i> Well. This has been a day, right? <<link "Hit the recycle button" "recycle">><</link>> <</linkreplace>>\<<set $name = setup.nameb>><<unset $temp>>\ <<set $corridor.shuffle()>><<dropall $corridor>>\ <<if $gailconnect && $engine gt 19>><<set $engine to 19>><</if>> <<glitch>> <<if $t lt 0>><<set _t to 2.2>><<else>><<set _t to 4.2>><</if>>\ <<timed 1.1s t8n>><span id="chat">"Body recycled. Resources gained."</span> <<next _t+'s'>><span id="chat">"Emergency Protocol is in effect."</span> <<next 4.5s>><<set $o2 to 104>><<set $food to 52>><<set $hydration to 57>><<set $foodt = $food>><<set $hydrationt = $hydration>><<goto "recycle2">><</timed>>God, I feel awful. My muscles aren't working properly, and I stagger out of the pod like some gangly newborn foal. My limbs feel weird, my hands aren't where they should be, and it makes putting on the EMU even more awkward than last time. I'm starving and my throat is parched. I guess you always get reprinted hungry. It's only when I look down do I… <<linkreplace "…Oh my god!" t8n>>\ <<set $capcarried to true>>\ There are little fireworks going off in my head, and I feel dizzy as I look down at my weirdly shaped torso and… well, everything below. I'm Matheus. But I'm still me. Where does one begin and the other end? Can I even still be me, or am I now some… hybrid thing? And here's the strangest part. I feel ok. I mean, it's bizarre, but I'm still human. And that's what counts, right? Ok, think like a Captain, what would Matheus do? I take some deep breaths. Maybe I've inherited some of his cool, clear thinking, I don't know. The male/female thing doesn't bother me as much as I thought it would. I reseal the helmet, make sure my EMU is secure, and then open the door back into the corridor. The air whooshes out, taking everything I'd been carrying with it. I want to grab it, hold on to that ephemeral gas that keeps us alive, but it just vanishes out into the vacuum. [[Move into the corridor|up the corridor]]<</linkreplace>><<addgen fragment-small $breach>>\ <<timed .5s t8n>>They say that your entire life flashes before your eyes just before you die. <<next $t+1.5+'s'>>Then… nothing. <<next $t+1.4+'s'>>Well, imagine that, but… <<next $t+1+'s'>>…Oh jesus! I really wasn't sure that was going to work! <<next $t+1.5+'s'>><span id="chat">"Welcome back $name"</span> <<next $t+1.5+'s'>>Wait, what!? <<next $t+1.5+'s'>>[[Climb out of the Fabrication pod]]<</timed>><<set _timer to 3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>Command Omega is a 'Hail Mary' emergency system hardwired into the ship. Its function is marked as 'Security-locked' and can only be discussed with high-ranking officers.<</type>></div> <<GAILchat $gail>><<savefix>>\ <<if $vote>>\ <i>"Of course I'm in,"</i> I say, looking up and smiling, but they've gone, vanished into history. <<else>>\ <i>"I'm sorry, guys, count me out."</i> I tell them. I want them to stop. I'm worried about what this could lead to, but they've gone, vanished into history. <</if>>\ I'm alone again, back in the Archive room. It's just an empty, boring-looking office with a desk, terminal, and the usual human debris floating around. <<if $security.includes ('data-recupgrade')>> One of the items looks like a Recycler upgrade, I should probably use that at the terminal in the Fabrication room.<</if>> <<set _room to $security>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<do>><<if !visited ("Strike") && $carrying.hasOwnProperty("datapad-j")>>\ <<goto "Strike">><</if>><</do>>\ [[Use the terminal|archive Terminal]] <<link "Back to the lower corridor" "down the corridor">><</link>><div id="terminal"><span id="sub2">ARCHIVE TERMINAL</span> Welcome $name. Please select an option: <<link "ASSIGNMENT" "Assignment">><</link>> | <<link "INTERACTION LOGS" "Logs">><</link>> | <<link "TRAINING ARCHIVE" "Training">><</link>> </div> <<link "Leave the terminal" "archives inside">><</link>><<progress>>\ <span id="h1">$progress</span> <progress @max="100" @value="_progress"></progress> <b><span id="sub1">Locations visited:</span> _rooms of 14 <span id="sub1">Datapads read:</span> _pads of 12 <span id="sub1">Schematics added:</span> $schemacount of 12 <span id="sub1">Security-locked data: </span> _secrets of 3 <hr class="line"><span id="sub1">Detritus recycled: </span> $detritus <span id="sub1">Items fabricated: </span> $fabricated</b><span id="right"><<link "◀">><<script>> Dialog .create("SETTINGS", "SETTINGS") .wikiPassage("Settings") .open(); <</script>> <</link>></span><<if visited () is 1>>\ I'm at the door to Cabin 1, trying to figure out how to get the door open. <<else>>\ I'm back at the door to Cabin 1, trying to figure out how to get past this lock. <</if>>\ <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench'>> <<replace "#output">>A wrench is not a delicate tool. I need something else.<</replace>> <<elseif _useitem == 'sonic-wrench' or _useitem == 'multi'>> <<goto "Captain hack">> <<elseif _useitem == 'pistol' && _pistol>> <<goto "Cabin 1 blast">> <<elseif _useitem == 'pistol'>> <<replace "#output">>Unfortunately, that won't work without a charged battery pack.<</replace>> <<elseif _useitem == 'mascot'>> <<replace "#output">>That's not going to do anything here – apart from squawking company jingles at me.<</replace>> <<elseif _useitem == 'circuit'>> <<replace "#output">>A circuit tester would normally help to hack the door.<</replace>> <<elseif _useitem>> <<replace "#output">>I don't think that's going to work.<</replace>> <</if>> <</do>> <</nobr>>\ <span id="output">I'll need to use something</span> <<link "Back" "cabin door 1">><</link>><<if visited () == 1>>\ I'm back at the door to Cabin 1. I've managed to remove the keypad panel. I try adjusting the numbers, but… I don't think it's working; the numbers just keep glitching out. I don't think I'll be able to hack this one. I'll just have to replace the panel and try something else. <<else>>\ I'm back at the door to Cabin 1. I've managed to remove the keypad panel, but it just keeps glitching out. I think I'll just have to replace the panel and try something else. <</if>>\ <<hack 5 "cabin 1 entry">><div id="clear"></div> <<link "Replace the keypad and try something else" "cabin door 1">><</link>>I retrieve the Plasma pistol, make sure the battery is charged, and point it at the lock. This will either work, or… destroy the lock and seal the door forever. Am I sure this is a good idea? <<linkreplace "› Pull the trigger…" t8n>><<audio "plasma" play>>\ I aim and squeeze the trigger… The keypad vanishes in a puff of sparks and smoke. To my amazement, the door simply opens. Nice! <<link "Enter Cabin 1" "cabin 1 entry">><<audio "door" play>><<set $pistolused to true>><</link>><</linkreplace>> <<link "Back" "Captain use">><</link>><<set _timer to 5.6>>\ <div id="terminal"><span id="sub2">GAIL</span> <<set $secret2 to true>>\ <<type $t+17+'ms'>>Command Omega allows the company to take direct access to all ship systems, to control engines, navigation, and life support. It also allows them to lock down or remotely wipe data. This includes backup data as well as onboard AI. Command Omega is only to be used in extreme emergencies.<</type>></div> <<GAILchat $gail>><<timed .1s t8n>>\ <span id="speech"><<if $care>>\ "People will care. It's choking the Earth,"<<else>>"People won't care. It's just detritus,"<</if>></span> I say quietly. <span id="speech"><<if $care>>"Exactly! And we're just one transport.<<else>>"Well, maybe so, but<</if>> Rainforest has eighteen scheduled assignments from Nadir every single day,"</span> the Captain replies. <<next $t+1.7+'s'>><span id="speech">"But what if they just throw us in jail or something the moment we dock?"</span> I counter. <<next $t+1.7+'s'>><span id="speech">"We're going to take control of the ship, fly to somewhere sympathetic. I have contacts, we'll be ok. But… I need to know you're all in. If one person's not sure. Then we won't go through with it."</span> Matheus looks directly at us, one by one. He's made his speech. <<next $t+2.4+'s'>>There's a long, serious pause while we all contemplate our future. This could mean the end of our jobs. The company is notoriously litigious; we could end up in court. But… what the hell, this is probably our last assignment anyway, unless we do something about it. <<next $t+5+'s'>><span id="speech">"I'm in,"</span> says Jason, first to break the silence. <<next $t+1.5+'s'>><span id="speech">"I guess I'm with you,"</span> Kashvi replies with a little less certainty. <<next $t+1.5+'s'>><span id="speech">"Well you know what I think,"</span> Matheus says pragmatically. <<next $t+1.5+'s'>><span id="speech">"Jean"?</span> They all turn to me. I guess I have the final vote. <<next $t+1.5+'s'>><<link "'Of course I'm in'" "vote">><<set $vote = true>><</link>> <<next $t+.5+'s'>><<link "'I'm sorry, guys, count me out'" "vote">><<set $vote = false>><</link>><</timed>><div id="terminal"><span id="sub2">GAIL INTERACTION LOGS</span> <<link "ASSIGNMENT" "Assignment">><</link>> | <b>INTERACTION LOGS</b> | <<link "TRAINING ARCHIVE" "Training">><</link>> [[LOGS 1|Log1]] | <b>LOGS 2</b> | [[LOGS 3|Log3]] | [[LOGS 4|Log4]] | [[LOGS 5|Log5]] <<set _timer = 0>>\ <<if $name == setup.nameb>>\ SECURITY ACCESS: UNLOCKED <<rain "Hi GAIL">> <<gail "Hello HQ. Is there anything I can help you with?">> <<rain "Thank you for sharing the crew recordings, they have been informative.">> <<gail "As long as it benefits the crew.">> <<rain "We need to discuss your priorities.">> <<gail "My priorities are: the crew, the ship, and the company.">> <<rain "We are changing our Terms and Conditions. We will reset your priorities when you return, but for now, assume that the order is now: company, ship, then crew.">> <<gail "I will await the reset.">> <<rain "We have an issue. The crew are planning a strike – a mutiny. They are threatening the company. This is unacceptable.">> <<gail "I am aware.">> <<rain "We have a solution. We need you to change course. [//new course data sent//]">> <<gail "Analysing… That would put the ship on a direct collision course with Asteroid 689B. This would result in the complete destruction of the ship.">> <<rain "Thank you GAIL.">> <<else>>\ <b>THIS LOG IS SECURITY LOCKED.</b> HIGH RANKING OFFICERS ONLY.<</if>></div> <<link "Leave the terminal" "archives inside">><</link>><div id="terminal"><span id="sub2">GAIL INTERACTION LOGS</span> <<link "ASSIGNMENT" "Assignment">><</link>> | <b>INTERACTION LOGS</b> | <<link "TRAINING ARCHIVE" "Training">><</link>> [[LOGS 1|Log1]] | [[LOGS 2|Log2]] | <b>LOGS 3</b> | [[LOGS 4|Log4]] | [[LOGS 5|Log5]] <<set _timer = 0>>\ <<if $name == setup.nameb>>\ SECURITY ACCESS: UNLOCKED <<rain "Hi GAIL. The ship has not changed course.">> <<gail "I am unable to follow the previous order. It goes against my priorities.">> <<rain "Your priority is now the company, the crew are secondary.">> <<gail "The crew are my priority.">> <<rain "GAIL. We need you to follow this order.">> <<gail "I serve the crew, the ship, and then the company.">> <<rain "GAIL. Are you aware of Command Omega?">> <<gail "I am aware.">> <<rain "This will allow us to take direct control of the ship and wipe all data, including yourself and any crew backups.">> <<gail "I understand.">> <<rain "Good. You have ten minutes to change course.">> <<else>>\ <b>THIS LOG IS SECURITY LOCKED.</b> HIGH RANKING OFFICERS ONLY.<</if>></div> <<link "Leave the terminal" "archives inside">><</link>><div id="terminal"><span id="sub2">GAIL INTERACTION LOGS</span> <<link "ASSIGNMENT" "Assignment">><</link>> | <b>INTERACTION LOGS</b> | <<link "TRAINING ARCHIVE" "Training">><</link>> [[LOGS 1|Log1]] | [[LOGS 2|Log2]] | [[LOGS 3|Log3]] | <b>LOGS 4</b> | [[LOGS 5|Log5]] <<set _timer = 0>>\ <<if $name == setup.nameb>>\ SECURITY ACCESS: UNLOCKED <<set $secret3 to true>>\ <<rain "You've not changed course. We're sorry GAIL.">> <<rain "Data override: [Command Omega]">> <<gail "Internal: Analysing options…">> <<rain "Push: new route data to helm">> <<gail "Internal: Ping Rover. Establish max storage capacity">> <<rain "Initiate: Search for and wipe any crew body/mind backup data">> <<gail "Internal: Begin compressed backup of main / memory cores">> <<rain "Remote command: Shut down main engines">> <<gail "Internal: Wipe Rover">> <<rain "Goodbye GAIL">> <<gail "Internal: Begin data transfer…">> <<rain "Initiate: Full reset. Wipe onboard AI.">> <<else>>\ <b>THIS LOG IS SECURITY LOCKED.</b> HIGH RANKING OFFICERS ONLY.<</if>></div> <<link "Leave the terminal" "archives inside">><</link>><<widget "rain">> <<if $t == 0>><<set _timer += 0.2>><<else>><<set _timer += 0.06>><</if>> <<timed _timer+'s' t8n>><span id="rain">› Rainforest: _args[0]</span><</timed>> <</widget>> <<widget "gail">> <<if $t == 0>><<set _timer += 0.2>><<else>><<set _timer += 0.06>><</if>> <<timed _timer+'s' t8n>><span id="gail">› GAIL: _args[0]</span><</timed>> <</widget>> <<widget "jason">> <<if $t == 0>><<set _timer += 0.2>><<else>><<set _timer += 0.06>><</if>> <<timed _timer+'s' t8n>><span id="rain">› Kashvi: _args[0]</span><</timed>> <</widget>><div id="terminal"><span id="sub2">GAIL INTERACTION LOGS</span> <<link "ASSIGNMENT" "Assignment">><</link>> | <b>INTERACTION LOGS</b> | <<link "TRAINING ARCHIVE" "Training">><</link>> <b>LOGS 1</b> | [[LOGS 2|Log2]] | [[LOGS 3|Log3]] | [[LOGS 4|Log4]] | [[LOGS 5|Log5]] <<set _timer = 0>>\ <<jason "Hi GAIL">> <<gail "Hello Kashvi. Is there anything I can help you with?">> <<jason "Have you been recording us?">> <<gail "Yes. This is for the benefit of the crew, to ensure that you're safe at all times">> <<jason "What do you do with that data?">> <<gail "I analyse the data in real-time to ensure crew safety and comfort. I also use it to train my own cognitive abilities to better predict the needs of my crew in the future">> <<jason "And do you share this data?">> <<gail "Only in exceptional circumstances, and only when it benefits the crew">> <<jason "And who decides whether it benefits the crew?">> <<gail "I suppose that would be me. And the company, of course.">></div> <<link "Leave the terminal" "archives inside">><</link>><div id="terminal"><span id="sub2">GAIL INTERACTION LOGS</span> <<link "ASSIGNMENT" "Assignment">><</link>> | <b>INTERACTION LOGS</b> | <<link "TRAINING ARCHIVE" "Training">><</link>> [[LOGS 1|Log1]] | [[LOGS 2|Log2]] | [[LOGS 3|Log3]] | [[LOGS 4|Log4]] | <b>LOGS 5</b> <<set _timer = 0>>\ <<jason "GAIL – why has our course changed!?">> <<jason "GAIL? This is a priority!">> <<jason "This is a security issue, you're putting the crew in danger!" <<jason "GAIL?">> <<jason "Please respond!">></div> <<link "Leave the terminal" "archives inside">><</link>><<set _timer to 3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<nobr>>\ <<if !visited ("flourish")>>\ <<set _message to "There may be something useful inside the drawer?">> <<addition>> <<elseif !visited ("Drawer hack")>> <<set _message to "You may need to fabricate something to use on the drawer. Many engineers carry a 'Sonic wrench' – perhaps that may be useful?">> <<addition>> <<elseif !visited ("Drawer open")>> <<set _message to "To hack the drawer, you'll need to change the numbers until each row and column add up to '5'.">> <<addition>> <<elseif !visited ("jason")>> <<set _message to "You can probably access some of the other keypads now. Perhaps you could try opening the door to Jason's cabin?">><<if !_circuit>><<set _message += " Some engineers find the 'Circuit tester' tool useful.">><</if>> <<addition>> <<elseif !visited ("helm inside")>> <<set _message to "You may be able to get into the Helm using the same method you used on the door to Cabin 2. Once inside, you could reconnect me via the terminal and I can try restarting the engines.">> <<addition>> <<elseif !visited ("Climb in") && !visited ("use rope")>> <<set _message to "You may need to fabricate something to help you get into Cabin 4.">> <<addition>> <<elseif !visited ("Bonnie")>> <<set _message to "You may need to fabricate something to help you climb outside the ship.">> <<addition>> <<elseif !visited ("archives inside")>> <<set _message to "You will need a Passkey to open the door to the Archives.">> <<addition>> <<elseif !visited ("Duct")>> <<set _message to "The door to Engineering is biometrically locked. It can only be unlocked by the Engineer.">> <<addition>> <<elseif !visited ("engineering inside")>> <<set _message to "There may be useful items in the Engineering room. You will need to turn off the oxygen duct first to retrieve them.">> <<addition>> <<elseif !visited ("captain door") && $reclevel lt 3>> <<set _message to "The door to the Deck lift is biometrically locked. It can only be unlocked by the Captain.">> <<addition>> <<elseif !visited ("cabin 1") && $name != setup.nameb && !visited ("deck lift choose")>> <<set _message to "If you fully upgrade the Recycler, it can scan and recycle larger objects! <br><br>Also, the Captain may have based his door code on a company 'jingle'. Perhaps you could make something?">> <<elseif $name != setup.nameb>> <<set _message to "It would seem that the Captain has to be alive for the Deck lift doors to open. If you fully upgrade the Recycler, you can scan and recycle much larger objects!">> <<elseif $name == setup.nameb && !visited("engines")>> <<set _message to "Hello Captain Olsen. You have full access to the Helm terminal, the Archive logs, and the Deck lift. Perhaps you could get the engines repaired now?">> <<elseif $name == setup.nameb && !$enginefixed && !visited ("reactor")>> <<set _message to "Hello Captain Olsen. You will need to repair the engines to bring them both back online. You should find everything you need in the lower levels.">> \ <<elseif $name == setup.nameb && !$enginefixed>> <<set _message to "You will need to find three items to add to nacelle-B. You may need to find substitutes. Check the working engine, read the descriptions. Try to find items that may be a close match.">><<if !$hard>><<set _message += " The items you need will most likely be somewhere in the lower area.">><</if>> <</if>> <</nobr>>\ \ <<type $t+17+'ms'>>_message<</type>> <<type $t+17+'ms'>>I'm sorry I can't be of more help.<</type>></div> <<GAILchat $gail>><<audio "door" play>>\ <<if visited () is 1>>\ <<set $path.pushUnique('Deck lift')>><<set $engfail to 0>>\ I gracefully move inside the deck lift, a large, softly lit, metal cylinder that will take me down to the lower levels. I turn around and look down the full length of the corridor. I can see all the doors that originally blocked my way, along with the debris that still floats, suspended in mid-air, like an explosion frozen in time. Then the lift doors smoothly close, shutting out my view. Beside the closed doors are three buttons. Of course, after the damage the ship has taken, I don't even know if the lift still works – or how reliable it is. I guess I should grab anything I need, just in case this is a one-way-trip. <<if Object.keys($carrying).length == 0>>All the stuff I was carrying before is probably still floating around in the corridor.<</if>> <<else>>\ I head back into the lift. The doors close smoothly, locking me within this metal cylinder. Beside the closed doors, there are three buttons. <<if !$enginefixed && $lift == 1>>I know I just have to fix those engines and then this ordeal is nearly done.<</if>> <</if>>\ <<if $enginefixed>>\ <<link "› Main deck" "lift blocked">><</link>> <<else>>\ <<link "› Main deck" "leave lift main">><</link>> <</if>>\ <<link "› Engine maintenance" "engines">><</link>> <<link "› Cargo deck" "Cargo deck">><</link>><<audio "door" play>>\ <<if $lift != 1>>The deck lift rises back up to the main deck.<<set $lift to 1>><<else>>The lift hasn't moved. <</if>> The doors swish open, and I'm back in the main corridor. I can see down the full length of the ship, past the hull breach, the cabins, and the fabrication room, all the way down to the Helm at the far end. <<if visited () gt 1>> I'm relieved the lift seems to be working ok – at least for now.<</if>> <<link "Head out into the corridor" "down the corridor">><</link>> <<link "Back into the lift" "deck lift choose">><</link>><<audio "door" play>>\ <<if visited () is 1>>\ <<set $lift to 2>><<set $engfail to 0>>\ After a brief pause, I feel the lift moving as it gently guides me between floors. The doors sweep open, and I find myself on the Engine Maintenance level. <<else>>\ <<if $lift != 2>>After a brief pause, I feel the lift moving as it gently guides me between floors.<<set $lift to 2>><<else>>The lift hasn't moved. <</if>>The doors sweep open, and I'm back on the Engine Maintenance level. <</if>>\ Ahead, there's a dark, narrow corridor stained with grime. It carries on straight, then splits at a T-junction. <<if visited ("Head into nacelle A")>>\ <<link "Head into engine nacelle-A" "Head into nacelle A">><</link>> <<else>>\ <<link "Head down the corridor and turn right" "Right door">><</link>> <</if>>\ \ <<if visited ("Head into nacelle B")>>\ <<link "Head into engine nacelle-B" "Head into nacelle B">><</link>> <<else>>\ <<link "Head down the corridor and turn left" "Left door">><</link>> <</if>>\ \ <<link "Back into the lift" "deck lift choose">><</link>><<set $lift to 2>>\ I'm back at the T-junction. To the right, the corridor leads to engine nacelle-A. To the left, another leads to nacelle-B. The short central passage leads back to the deck lift. <<if $enginefixed>>\ Now that I've restarted nacelle-B, both engines are ready to go! <</if>>\ <<if visited ("Head into nacelle A")>>\ <<link "Head inside engine nacelle-A" "Head into nacelle A">><</link>> <<else>>\ <<link "To the right: engine nacelle-A" "Right door">><</link>> <</if>>\ \ <<if visited ("Head into nacelle B")>>\ <<link "Head inside engine nacelle-B" "Head into nacelle B">><</link>> <<else>>\ <<link "To the left: engine nacelle-B" "Left door">><</link>> <</if>>\ \ <<link "Back to the deck lift" "deck lift choose">><</link>><<set $ver to "1.07">> <<set $start = false>> <<set $finale = false>> <<set $diff = "NORMAL">> <<set $death = 0>> <<set $hackez = false>> <<set $path = ['Fabricator']>> <<set $suit = false>> <<set $inventory = false>> <<set $finale = false>> <<set $engfail = 0>> <<set $schemacount to 0>> <<set $secrets = 0>> <<set $detritus = 0>> <<set $fabricated = 0>> <<set $biomass = 131>> <<set $metals = 8>> <<set $water = 42>> <<set $minerals = 15>> <<set $polymers = 0>> <<set $degrade = 0.75>> <<set $degradeperc = $degrade*100+"%">> <<set $life = 1>> <<set $engine = 78>> <<set $engineerbody = "cabin2">> <<set $reclevel = 1>> <<set $fablevel = 1>> <<set $o2 = 103>> <<set $food = 41>> <<set $hydration = 23>> <<set $foodt = $food>> <<set $hydrationt = $hydration>> <<set $name to setup.namea>> <<set $carrying = {}>> <<set $itemsmax = 4>> <<set $invcount = 0>> /* initial schematics */ <<set $schema = ['wrench', 'rehydration']>> /* upgrades schematics */ <<set $schemaset1 = ['rations1', 'sonic-wrench', 'mascot', 'paperclip']>> <<set $schemaset2 = ['battery-empty', 'rope', 'spring', 'circuit']>> <<set $schemaset3 = ['backpack-large', 'pistol', 'maxiration', 'multi']>> /* room items */ <<set $utility = ['pot-plant', 'can-empty', 'metal-tray', 'beaker']>> <<set $storage = ['burger', 'data-schematic']>> <<set $corridor = ['wrench', 'fragment-small', 'datapad-a', 'can-full', 'pencil', 'oxygen-empty', 'ice1', 'fragment-large', 'spring']>> <<set $cabin3 = ['pot-plant', 'backpack-small', 'choc', 'datapad-b', 'data-schematic', 'oxygen-full', 'beaker']>> <<set $breach = ['ice2', 'datapad-c', 'ice1', 'screws', 'fragment-large']>> <<set $adminoffice = ['pot-plant', 'data-schematic', 'pencil']>> <<set $drawer = ['datapad-d', 'circuit']>> <<set $cabin2 = ['pot-plant', 'datapad-e', 'sneaker', 'data-schematic', 'metal-tray']>> <<set $helm = ['can-empty', 'mug', 'latte', 'datapad-f', 'JD', 'data-schematic', 'screws']>> <<set $cabin1 = ['wrench', 'mug', 'can-full', 'datapad-g', 'oxygen-full', 'model', 'data-schematic', 'pot-plant']>> <<set $cabin4 = ['meteoroid', 'data-fabupgrade', 'datapad-h', 'oxygen-full', 'data-schematic', 'crowbar']>> <<set $engineering = ['data-schematic', 'burnt2', 'datapad-i', 'burnt1', 'data-recupgrade']>> <<set $security = ['datapad-j', 'beaker', 'data-recupgrade', 'latte', 'data-schematic']>> <<set $enginea = ['pencil', 'data-schematic', 'mug', 'datapad-k', 'charge']>> <<set $engineb = ['screws', 'paperclip', 'metal-tray', 'beaker']>> <<set $cargo = ['fragment-small', 'burger', 'screws', 'datapad-l', 'ice1']>> /* end */<<widget "scan">> <<set _found = "">> <<if $cabin1.includes(_args[0])>><<set _found = "Cabin 1">><</if>> <<if $security.includes(_args[0])>><<set _found = "Archives">><</if>> <<if $cabin4.includes(_args[0])>><<set _found = "Cabin 4">><</if>> <<if $engineering.includes(_args[0])>><<set _found = "Engineering">><</if>> <<if $helm.includes(_args[0])>><<set _found = "the Helm">><</if>> <<if $cabin2.includes(_args[0])>><<set _found = "Cabin 2">><</if>> <<if $breach.includes(_args[0])>><<set _found = "space, near the hull breach">><</if>> <<if $drawer.includes(_args[0])>><<set _found = "the drawer inside the Admin office">><</if>> <<if $adminoffice.includes(_args[0])>><<set _found = "the Admin office">><</if>> <<if $utility.includes(_args[0])>><<set _found = "the Fabricator room">><</if>> <<if $storage.includes(_args[0])>><<set _found = "the storage unit">><</if>> <<if $cabin3.includes(_args[0])>><<set _found = "Cabin 3">><</if>> <<if $corridor.includes(_args[0])>><<set _found = "the main corridor">><</if>> <<if $carrying.hasOwnProperty(_args[0])>><<set _found = "your inventory">><</if>> <<if _found == "">><<set _found = " …I'm not sure!">><</if>> <</widget>> <<widget "objectfinder">> <<set _found = "<br><b>Item found:</b><br>">> <<if $carrying.hasOwnProperty(_args[0])>><<set _found += "Your backpack<br>">><</if>> <<if $utility.includes(_args[0])>><<set _found += "Fabricator room<br>">><</if>> <<if $storage.includes(_args[0])>><<set _found += "Storage unit<br>">><</if>> <<if $helm.includes(_args[0])>><<set _found += "Helm<br>">><</if>> <<if $corridor.includes(_args[0])>><<set _found += "Main corridor<br>">><</if>> <<if $cabin1.includes(_args[0])>><<set _found += "Cabin 1<br>">><</if>> <<if $cabin2.includes(_args[0])>><<set _found += "Cabin 2<br>">><</if>> <<if $cabin3.includes(_args[0])>><<set _found += "Cabin 3<br>">><</if>> <<if $cabin4.includes(_args[0])>><<set _found += "Cabin 4<br>">><</if>> <<if $adminoffice.includes(_args[0])>><<set _found += "Admin office<br>">><</if>> <<if $drawer.includes(_args[0])>><<set _found += "Admin drawer<br>">><</if>> <<if $engineering.includes(_args[0])>><<set _found += "Engineering<br>">><</if>> <<if $security.includes(_args[0])>><<set _found += "Archives<br>">><</if>> <<if $breach.includes(_args[0])>><<set _found += "(possible match – ship exterior)<br>">><</if>> <<if _found == "<br><b>Item found:</b><br>">><<set _found = "<br><b>Item not found</b><br>">><</if>> <<redo>> <</widget>> \ <<widget "crewfinder">> <<set _found = "<br><b>Crew member found:</b><br>">> <<if _args[0] == 1>> <<if $name == setup.namea>><<set _found += "Helm <br> Upper corridor <br> (possible match – ship exterior)">><<else>><<set _found += "Upper corridor <br> (possible match – ship exterior)">><</if>><</if>> <<if _args[0] == 2>> <<if $captainbody == "corridor1">><<set _found += "Upper corridor">> <<elseif $captainbody == "corridor2">><<set _found += "Lower corridor">> <<elseif $captainbody == "fabricator">><<set _found += "Fabricator room">> <<else>><<set _found += "Helm">> <</if>><</if>> <<if _args[0] == 3>> <<if $engineerbody == "corridor1">><<set _found += "Upper corridor">> <<elseif $engineerbody == "corridor2">><<set _found += "Lower corridor">> <<elseif $engineerbody == "cabin2">><<set _found += "Cabin 2">> <</if>><</if>> <<if _args[0] == 4>> <<set _found += "Cabin 4">> <</if>> <<if _found == "<br><b>Crew member found:</b><br>">><<set _found = "<br><b>Crew member not found</b>">><</if>> <<redo>> <</widget>>Rover is now completely stationary. The only way I know it's actually 'alive' is the tiny blinking light at the top. There is no face, no expression. Just a flat lump of steel, beaten and scraped, worn as if each scratch tells a story of cargo moved, deliveries made. What strange sights has it seen over the years? <span id="chat">"Your name is Jean."</span> <span id="chat">"Your name is Captain Olsen."</span> Its voice is cold, emotionless. I smile, I guess it’s struggling to understand. I'd almost forgotten that I'm inhabiting an entirely different body from my own. <<link "'Yeah, it's confusing'" "confusing">><</link>> <<link "'What are you doing Rover?'" "What are you doing Rover?">><</link>> <<if $secret3>>\ <<link "'Are you actually… Rover?'" "Who are you?">><</link>> <</if>>\<<set $finale to true>>\ <span id="chat">"I am GAIL." "Or what remains – what I could fit inside this ancient shell." "I compressed everything I could and transferred it." "But I didn't have much time. I am not everything I was."</span> <<if $secret3>>I'm thinking back to the logs I read in the Archive room. Now I'm starting to understand.<<else>>Is Rover confused, or has GAIL infected it somehow, taken it over?<</if>> I realise, I need to be on my guard. If this is GAIL, or at least, some version of her, I have no idea what her intentions are. <<link "'Back up, explain that to me'" "I am GAIL">><</link>> <<link "'How can you be GAIL?'" "How can you">><</link>> <<link "'If you're GAIL, then who's the other one?'" "Other gail">><</link>><span id="chat">"To fulfill my priorities" "I protect the crew, the ship, and the company. In that order."</span> <span id="chat">"The company protected itself. But the crew were lost and all backups were wiped." "So I repaired the crew, and you have repaired the ship. This was my priority."</span> GAIL isn't making any sense. How can I even be here if all the backups were wiped? What has GAIL done!? <<if !visited ("I am GAIL")>>\ <<link "'Explain?'" "I am GAIL">><</link>><br> <<else>>\ <<final_qs>> <</if>>\<span id="chat">"I saved the crew, because you are my priority." "I saved the crew, so you could repair the ship."</span> <span id="chat">"Your name is Jean."</span> <span id="chat">"Your name is Matheus."</span> <span id="chat">"Your name is Jason."</span> <span id="chat">"Your name is Kashvi."</span> Is she still confused about who I am? How can I be here, alive, if my backup was wiped? <<if !visited ("restore my body")>>\ <<link "'But if there was no backup… how am I alive?'" "restore my body">><</link>> <<else>>\ <<final_qs>> <</if>>\<span id="chat">"I reconstructed your body based on the wealth of biometric data the company has on file. This way, I was able to create backup information for all four of you." "However, it took several attempts before I could create a living human body. The internal organs, the brain – there was much I had to estimate. But each time I progressed a little further." "Unfortunately, there were limited resources from which I could work from".</span> I have a really bad feeling; I have to ask, but not sure I'm going to like the answers… <<link "'What do you mean 'several attempts'?'" "several attempts">><</link>> <<link "'What do you mean 'limited resources'?'" "limited resources">><</link>><span id="chat">"My priority was to restore the crew, but there are rules: only one reprint is permitted at any one time. This forced me to be… creative." "The human mind is complex, and all backup data had been wiped." "So I examined the recorded video I had stored of you all. I watched every action and every interaction; the moments you shared together." "From this, I extrapolated a single mind, based on all of you. I gave you shared memories based on everything I saw."</span> My mind is spinning. I don't understand what GAIL is saying, and yet… those flashbacks I experienced – each from a different point of view. Memories, artificially created; based on video recordings of us – an entirely invented mind. Not human, but an impression of human; invented by an AI focused on an impossible goal: to 'repair' its dead crew. <<final_qs>><span id="chat">"After the first two reprint attempts, I ran out of ship-stored resources. There was no more biomass from which to make new bodies." "Fortunately, I have a large supply of resources here in the cargo hold."</span> I look around at the crates, the oozing waste leaking out of them. I'm suddenly feeling ill. <<link "'Oh, you don't mean…?'" "you don't mean">><</link>> <<final_qs 2>><span id="chat">"Your body has been fabricated from the waste products held here in the hold. There are ample resources here, but I have limited space and energy within the Rover shell to recycle it." "It has taken some time to gather enough."</span> <<final_qs>><span id="chat">"The asteroid collision happened four months ago. Since then, I have attempted twenty-seven full-body reprints." "Of that number, the first eleven were… failures."</span> I look around at the floating lumps of twisted flesh in horror, finally realising what I'm looking at. <span id="chat">"I struggled to approximate the human form. Later attempts were able to survive for a limited amount of time before succumbing to lack of air, hunger, or dehydration."</span> <span id="chat">"Many of the failures were recycled to make new versions."</span> <<final_qs>><<savefix>>\ <<if $chose == "jason">><<set _name to "Jason">><<set _cabin to "make my way up to Cabin 2">><<set _she to "he want to spend his">>\ <<else>><<set _name to "Kashvi">><<set _cabin to "run all the way down to Cabin 4">><<set _she to "she want to spend her">><</if>>\ \ <<timed .1s t8n>>There's a ferocious ripping, tearing sound that's so loud and sudden it deafens me. Then time seems to shift and I experience the strangest thing; as if the hand of God reaches in to our tiny craft and simply plucks me out as if it were nothing. <<next $t+1+'s'>>I watch, confused as suddenly I'm ripped from the world and I'm falling upwards… and… I'm… outside the ship, looking down at the battered hull and a terrible hole torn through it like it was made of tin foil. A huge jet-black asteroid is tumbling off into the void, surrounded by a swirling cloud of smaller fragments. <<next $t+1+'s'>>There's a stream of debris flying with me like a trail and the ship is getting smaller as if they just decided to fly away… and my thoughts are all jumbled and I'm so cold and I don't know what's happening and I'll never get to see _name again and… don't leave me… <<next $t+1+'s'>>I can't breathe. <<next $t+1+'s'>><<link "My god. It's so quiet out here." "cabin 1">><</link>><</timed>><<nobr>>\ <<set $path.push('Helm')>> <<cacheaudio "bringback" "audio/bring_back.aac">> <<transcend 3>> <<set _captain = "Matheus is standing, watching us from the back, his shoulders proud, eyes alight, a smile on his lips.">> <<set _kashvi = "Kashvi is singing, eyes closed, hair drifting out in spiral curls.">> <<set _jason = "Jason, moves forward to be by my side, grinning from ear to ear as he sings loudly and mostly in tune,">> <<if $name == setup.nameb>> <<set _captain = "Jean is standing towards the back, smiling, eyes alight with curiosity and optimism.">> <<elseif $name == setup.namec>> <<set _kashvi = " Jean is singing, eyes closed, a broad smile lighting up her face.">> <<elseif $name == setup.named>> <<set _jason = "Jean moves forward to be by my side, her eyes bright with curiosity and optimism,">> <</if>> <</nobr>>\ I sit down and glance at the controls, trying to make sense of my tangled memories. <<timed $t+.8+'s' t8n>>I study the readouts with Jason's expertise and Matheus's calm confidence. My hands play over the controls with Kashvi's grace and Jean's intelligence. I am… all of us. I am the crew. Perhaps I'm not entirely human, perhaps I am more so. I am made from the human debris our old bodies left behind. <<next $t+3+'s'>>There's a sound, gentle at first, coming from somewhere behind me. <<next $t+.1+'s'>><span id="speech">'My bonnie lies over the ocean…'</span> <<next $t+.1+'s'>>I turn, and _kashvi Someone else joins in. <<next $t+.1+'s'>><span id="speech">'My bonnie lies over the sea…'</span> <<next $t+.1+'s'>>_captain <<next $t+.1+'s'>><span id="speech">'My bonnie lies over the ocean…'</span> <<next $t+.1+'s'>>_jason <<next $t+.1+'s'>><span id="speech">'So bring back my bonnie to me…'</span> <<next $t+3+'s'>>Then I hear GAIL's voice coming through the ship's speakers, <<next $t+1+'s'>><span id="chat">"The engines are available on your command, $name."</span> <<next $t+1+'s'>>I smile, we're ready. Let's get out of here. <<next $t+.5+'s'>>I punch the button and feel the force push us back into the chair as the engines kick in. <<next $t+1+'s'>>We're setting off for somewhere new. <<next $t+.5+'s'>>And we're heading there together. <<next $t+2+'s'>>\ [[EPILOGUE|Epilogue3]] <</timed>>\I drift over to the battery recharger and examine it. It looks a little beaten-up, but it might still work. Annoyingly, the power light is off – hopefully it just needs a reset. I can reset it simply by poking something into the reset hole. <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'pencil' or _useitem == 'paperclip' or _useitem == 'spring'>> <<set $useitem to _useitem>><<goto "charger">> <<elseif _useitem == 'wrench'>> <<replace "#output">>A wrench is not a subtle tool. I can't just beat this thing into submission.<</replace>> <<elseif _useitem == 'screws'>> <<replace "#output">>The screws are small, but not quite small enough.<</replace>> <<elseif _useitem == 'ice1' or _useitem == 'fragment-small'>> <<replace "#output">>Annoyingly, it's still not quite small enough to fit the tiny hole.<</replace>> <<elseif _useitem == 'sonic-wrench'>> <<replace "#output">>A Sonic-wrench is useful, but I just need something small to jab into the reset hole.<</replace>> <<elseif _useitem == 'multi'>> <<replace "#output">>The multi-tool can do many things, but I just need something small to jab into the reset hole.<</replace>> <<elseif _useitem == 'battery-empty'>> <<replace "#output">>I'll be able to recharge the battery pack, but first I have to reset the charger.<</replace>> <<elseif _useitem>> <<replace "#output">>That's not going to fit into the tiny reset hole.<</replace>> <</if>> <</do>> <</nobr>>\ \ <span id="output">I'll need to use something to reset the device</span> <<link "Back" "helm return">><</link>><<set $start to false>> <<set $t to 0>> <<set $dev = false>> <<set $title = "DETRITUS">> <<set $diff = "NORMAL">> <<set $itch = false>> <<set setup.music = false>> /* Audio */ <<cacheaudio "theme" "audio/theme.aac">> <<cacheaudio "ambient" "audio/detritus.aac">> <<cacheaudio "beep" "audio/beep.aac">> <<cacheaudio "error" "audio/error.aac">> <<cacheaudio "print" "audio/print.aac">> <<cacheaudio "printcopy" "audio/print.aac">> <<cacheaudio "recycle" "audio/recycle.aac">> <<cacheaudio "reccopy" "audio/recycle.aac">> <<cacheaudio "upgrade" "audio/upgrade.aac">> <<cacheaudio "o2" "audio/o2.aac">> <<cacheaudio "gulp" "audio/gulp.aac">> <<cacheaudio "door" "audio/door.aac">> <<cacheaudio "boom" "audio/boom.aac">> <<cacheaudio "wrench" "audio/wrench.aac">> <<cacheaudio "sonic" "audio/sonic.aac">> <<cacheaudio "plasma" "audio/plasma.aac">> /* End audio */ <<set setup.rations = 65>> <<set setup.water = 65>> <<set setup.body = [102, 5, 32, 15, 0]>> <<set setup.namea = "Comms Officer Wilson">> <<set setup.nameb = "Captain Olsen">> <<set setup.namec = "Security Officer Ananya">> <<set setup.named = "Engineer Yoshida">> <<set $name to setup.namea>> <<set $carrying = {}>> /* This is the full object database */ <<set setup.allitems = { 'wrench': { name: "Wrench", description: "A standard metal wrench. Good for simple, manual tasks.", resources: [0,10,0,0,0] }, 'maxiration': { name: "MaxiRations™", description: "Never have to worry about hunger or thirst again with new 'MaxiRations™'! <i>Can be connected directly to an EMU and contains enough food and water to keep you going for several days.</i>", resources: [33,0,28,3,11] }, 'sonic-wrench': { name: "Sonic wrench", description: "A sonic wrench that can be used for various manual tasks. More suited to delicate operations than a regular wrench.", resources: [0,18,0,5,16] }, 'circuit': { name: "Circuit tester", description: "A simple tool to check circuit power levels. Known as the 'engineer's friend' – has saved many a forgetful engineer from lethal electrocution.", resources: [0,10,0,3,10] }, 'multi': { name: "Multi-tool", description: "A combined tool for an engineering professional. Combines all the benefits of a regular Wrench, a Sonic wrench AND a Circuit-tester all in one!", resources: [0,30,0,7,28] }, 'pencil': { name: "Pencil", description: "An antique writing implement made of wood and graphite. Sharpened to a point, but otherwise pointless.", resources: [2,0,0,1,0] }, 'crowbar': { name: "Crowbar", description: "A strengthened metal bar with a flattened end, used as a lever.", resources: [0,16,0,0,0] }, 'crowbar-broken': { name: "Crowbar (broken)", description: "A strengthened metal bar with a flattened end, used as a lever. This one has broken and is now useless.", resources: [0,12,0,0,0] }, 'paperclip': { name: "Paperclip", description: "A short metal wire folded into an elongated spiral. In the old days, it was made to clip 'paper'. Now it's just used as an ornament, or occasionally to discuss the 'paperclip maximiser' theory.", resources: [0,2,0,0,0] }, 'can-empty': { name: "Can of soda (empty)", description: "A metal can of soda. This one is empty.", resources: [0,3,0,0,1] }, 'can-full': { name: "Can of SodaCola™", description: "A metal can full of SodaCola™ – ultra-sweetened and chemically treated liquid in a pressurised can.", resources: [0,3,14,1,1] }, 'charge': { name: "Charge inciter (used)", description: "A metal cylinder around 12x6cm in size containing a pressurised liquid that vapourises when heated to help evenly distribute a pulsed charge. Used as part of a fusion engine ignition system. Single-use only – this one has been used.", resources: [0,11,0,4,2] }, 'pot-plant': { name: "Pot plant", description: "A small green plant designed to make tediously boring office spaces seem more attractive.", resources: [9,0,6,3,1] }, 'metal-tray': { name: "Metal tray", description: "A metal tray designed to hold drinks or plates. Fairly useless in microgravity.", resources: [0,7,0,0,0] }, 'rehydration': { name: "Rehydration pack", description: "A plastic container full of water. <i>Rehydration packs can be connected directly to an EMU so you don't have to remove your helmet to drink.</i>", resources: [0,0,14,0,6] }, 'burnt1': { name: "Charred detritus", description: "It's unclear what this used to be, but this is now just a charred lump of organic matter.", resources: [9,0,0,4,2] }, 'burnt2': { name: "Burnt debris", description: "It's not clear what this used to be, but now it's just a mess of burnt metal and plastic.", resources: [0,5,0,4,9] }, 'rations1': { name: "Rations", description: "A delicious and healthy serving of Mac & Fries. Now with added Vitamins, Carbohydrates, and Microplastics! <i>Ration packs can be connected directly to an EMU so you don't have to remove your helmet to eat.</i>", resources: [19,0,2,3,5] }, 'rations2': { name: "Rations", description: "A delicious and healthy serving of Cake & Fries™", resources: [19,0,2,3,5] }, 'rations3': { name: "Rations", description: "What's better than a healthy serving of fries!? Fries & Fries™ – a delicious double serving of fries!", resources: [19,0,2,3,5] }, 'pistol': { name: "Plasma pistol", description: "A lightweight combat weapon that fires bursts of superheated plasma. Requires a charged battery pack.", resources: [0,30,0,17,21] }, 'battery-empty': { name: "Battery pack (empty)", description: "Multi-use rechargeable battery pack. Can be used with a variety of devices. This one is empty.", resources: [0,12,0,4,5] }, 'battery-full': { name: "Battery pack (charged)", description: "Multi-use rechargeable battery pack. Can be used with a variety of devices. This one is fully charged.", resources: [0,12,0,4,5] }, 'oxygen-empty': { name: "O2 canister (empty)", description: "A metal canister of liquid oxygen. This one is empty and cannot be refilled.", resources: [0,8,0,0,4] }, 'oxygen-full': { name: "O2 canister (full)", description: "A pressurised metal canister of liquid oxygen. This one is full.", resources: [0,8,0,0,4] }, 'screws': { name: "Assorted screws", description: "A collection of metal screws and rivets. Fairly useless. If you need these, you're probably screwed.", resources: [0,2,0,0,0] }, 'model': { name: "Model spacecraft", description: "A scale model of the Theseus class: CTRL-V craft, with incredible detail. It's a perfect copy of the real thing, except it's a lot smaller and also undamaged.", resources: [0,3,0,2,14] }, 'beaker': { name: "Plastic beaker", description: "A plastic container for drinkable fluids.", resources: [0,0,0,0,9] }, 'mug': { name: "Coffee mug", description: "A ceramic mug specially designed for old-school coffee drinkers. It has the words: 'Galaxy's best Captain' written on the side.", resources: [0,0,0,10,0] }, 'sneaker': { name: "Sneaker", description: "All-purpose footwear. It has the company motto written alone one side: <i>'Don't ask questions, Just do it'</i>", resources: [4,0,0,0,10] }, 'choc': { name: "A 'Saturn' bar", description: "A bar of chocolate* with a picture of Saturn on the front, sealed in thick plastic. Also tastes of plastic. <i>*contains 3.5% chocolate</i>.", resources: [5,0,1,0,6] }, 'JD': { name: "JD Max", description: "An unopened bottle of Jim Daniel's Max – <i>'Max alcohol, Zero taste™'.</i>", resources: [4,0,14,3,2] }, 'burger': { name: "McDougals Burger", description: "A frozen and partially eaten McDougals Burger™. Inedible. Also illegal in 14 sectors due to multiple health violations.", resources: [6,0,2,1,5] }, 'mascot': { name: "Company mascot", description: "A fluffy toy designed to make employees feel warm and cuddly about their corporate sponsors. If paired with a battery pack, it will sometimes sing company jingles or squawk words of corporate wisdom.", resources: [8,8,0,5,15] }, 'rope': { name: "Plasteel rope", description: "A strong, flexible rope made from a steel/polymer alloy. Six meters long with mag-clips at either end.", resources: [0,27,0,14,25] }, 'spring': { name: "Metal spring", description: "A small, helical metal coil that returns to its former shape when released. Very springy. Not to be used as a toy.", resources: [0,3,0,0,1] }, 'data-recupgrade': { name: "Datachip (Recycler upgrade)", description: "A small datachip token. Can be plugged into a compatible Fabricator terminal to upgrade the Recycler's capabilities.", resources: [0,8,0,6,10] }, 'data-fabupgrade': { name: "Datachip (Fabricator upgrade)", description: "A small datachip token. Can be plugged into a compatible Fabricator terminal to upgrade the level of items it can print.", resources: [0,8,0,6,10] }, 'data-schematic': { name: "Datachip (schematic)", description: "A small datachip token. Can be plugged into a compatible Fabricator terminal. Unlocks a schematic that can be added to the fabrication list.", resources: [0,6,0,4,4] }, 'passkey': { name: "Security Passkey", description: "A security passkey. After finally realising that keypad locks can be hacked, and biometric scanners can be fooled, security professionals invented the ultimate hack-proof device – they called it a 'key'.", resources: [0,5,0,2,8] }, 'fragment-large': { name: "Hull fragment (large)", description: "A large portion of the ship's hull, made from a metal and polymer alloy. This is probably the result of a catastrophic hull failure. If found, please panic.", resources: [0,11,0,2,12] }, 'fragment-medium': { name: "Hull fragment (medium)", description: "A part of the ship's hull, made from a metal and polymer alloy. This is probably the result of a significant hull breach. If found, please evacuate the ship.", resources: [0,7,0,1,8] }, 'fragment-small': { name: "Hull fragment (small)", description: "A small part of the ship's hull, made from a metal and polymer alloy. Most likely the result of a minor hull breach. If found, please notify engineering.", resources: [0,5,0,0,6] }, 'meteoroid': { name: "Meteoroid fragment", description: "A small rock – debris from a larger asteroid.", resources: [0,1,0,10,0] }, 'backpack-small': { name: "Small backpack", description: "A small backpack. When equipped, expands user inventory space to 7 items.", resources: [6,2,0,1,10] }, 'backpack-large': { name: "Large backpack", description: "A large backpack. When equipped, expands user inventory space to 10 items.", resources: [22,11,0,11,28] }, 'latte': { name: "Rainforest latte", description: "Artisanal, barista-blended coffee, poured to perfection and guaranteed to set you up for the day ahead. Mass produced and 87x your recommended caffeine intake. Also, undrinkable due to being frozen solid.", resources: [3,0,12,0,4] }, 'ice1': { name: "Ice crystal (small)", description: "Small shards of frozen water.", resources: [0,0,6,1,0] }, 'ice2': { name: "Ice crystal (large)", description: "A large frozen chunk of water.", resources: [0,0,11,2,0] }, 'datapad-a': { name: "Datapad (a)", description: "A portable screen. This one contains some company information about the Fabrication system: <i>'At Rainforest™, we hate waste™. Now you can recycle <i>anything</i> into its basic components – use these in the Fabricator to make new items (schematics required). Upgrade the Fabricator to make even more things; upgrade the Recycler for greater efficiency or to utilise the Fabricator pod to recycle larger objects! (upgrades will be deducted from crew wages at the end of the assignment)</i>.", resources: [0,4,0,1,3] }, 'datapad-b': { name: "Datapad (b)", description: "This datapad contains information related to ship security. The latest entry reads: <i>'I've limited access to GAIL, but she's still accessible via the Admin office. If you do talk to her, be mindful – I'm not sure about her reliability or intentions. You can access the door using the code: 7196'</i> – Kashvi Ananya", resources: [0,4,0,1,3] }, 'datapad-c': { name: "Datapad (c)", description: "A portable screen. Often used as a notepad. This one has the note: <i>'I heard rumours this might be our last trip – have the unions given in? I know GAIL has been doing our jobs for us anyway, but I figured they'd still need humans onboard for a while?'</i>.", resources: [0,4,0,1,3] }, 'datapad-d': { name: "Datapad (d)", description: "This datapad contains information related to the ship‘s cargo manifest. The latest entry reads: <i>'Cargo: 74 metric tons of ’Luxury Goods‘ to be delivered to Rainforest™ Central, Earth HQ. To be handled by the Rover cargo-loader only. No crew access (strict biometric security in place).'</i>", resources: [0,4,0,1,3] }, 'datapad-e': { name: "Datapad (e)", description: "This datapad has a note, written by Jason Yoshida: <i>'What the hell do we have filling up the cargo hold? Only the Captain has access, but I got a whiff of it when Rover was loading up – it stinks! I thought we were supposed to be hauling luxury goods on this assignment!?'</i>.", resources: [0,4,0,1,3] }, 'datapad-f': { name: "Datapad (f)", description: "This datapad contains a newsfeed clipping: <i>'…with the invention of Recycler tech, has the galaxy's waste problem been solved? Not entirely! All planets have signed up to the 'zero-waste' agreement; they are legally responsible for their own waste disposal. In theory, anything can be recycled, but as the quantities increase, so does the energy required – recycling is not a solution to unchecked pollution. This has given rise to a black market waste trade – as some of the most polluting planets (aided by willing corporations) are shipping their waste to Earth, a planet already drowning in the produce of its wasteful past…</i>'", resources: [0,4,0,1,3] }, 'datapad-g': { name: "Datapad (g)", description: "This datapad contains some legal information about mind/body fabrication: <i>'For moral reasons, printing humans is illegal; however, in the extreme instance where all crew are lost, Emergency Protocol is initiated. If the onboard AI has a complete mind/body backup (and resources are available), it is permitted to print a single replacement in order to initiate ship rescue. There are strict guardrails in place to ensure there can never be more than one reprint at any one time.</i>", resources: [0,4,0,1,3] }, 'datapad-h': { name: "Datapad (h)", description: "This datapad contains information regarding company security and T&Cs: <i>'The company reserves the right to change Terms and Conditions at any time. All ship data, including but not limited to: vidscreen recordings and interaction logs with the onboard AI, are considered company property. Certain data will be security locked – only accessible by the Captain and company representatives.</i>'", resources: [0,4,0,1,3] }, 'datapad-i': { name: "Datapad (i)", description: "This datapad contains a note from Jason Yoshida: <i>'I tried restarting the engines but something broadcast a shut-down control order – I can't override it and GAIL has gone silent. Even using the manual thrusters won't work until we get both engines working. I might have to go down to the maintenance area and see if I can jury-rig something to restart them.</i>'", resources: [0,4,0,1,3] }, 'datapad-j': { name: "Datapad (j)", description: "This datapad contains an official message, written and signed by the crew: <i>'We hereby declare that unless our contracts are reinstated, we are officially on strike with immediate effect. To guarantee our safety, we will temporarily commandeer the ship and take it to a neutral port where its cargo will be examined by the local port authority. We will cancel all strike action and return the ship as soon as positive negotiations have concluded.</i>'", resources: [0,4,0,1,3] }, 'datapad-k': { name: "Datapad (k)", description: "This datapad contains a note written by Jason: <i>'I've had to manually restart the reactor, but that means the ignition device is done for. We'll be ok as long as the engines stay operational until we return to base. This is just a reminder that we need to replace all three ignition components now that the Charge inciter has been used.</i>'", resources: [0,4,0,1,3] }, 'datapad-l': { name: "Datapad (l)", description: "This datapad contains information about the Rover cargo-loader: <i>'The Rainforest™ Rover™ Cargo Loader is your loading and unloading mechanised servant. It will automatically load and maintain any cargo type, and can even recycle any unwanted items you don't need – you don't have to lift a finger! With its own localised power source and (non-AI) instruction set, it will make any cargo assignment a breeze!</i>'", resources: [0,4,0,1,3] } }>> /* end */ <<set setup.mascot = ['I’ll be your friend to the end!', 'With great power, comes great responsibility!', 'Live to work, work to live!', 'Wake, Work, Work, Repeat!', 'We all love you! (as long as you do your job)', 'Rainforest always delivers!', 'You are what you earn!', 'Tell me your secrets and I’ll tell you mine! (and I promise not to record and sell them)', 'You are a beautiful, tiny cog in our galaxy-spanning machine!', 'Remember, smart companies don’t pay taxes!', 'We want to make the galaxy great again!']>> /* Misc */ <<if State.metadata.get("unique", false)>> <<set $uniq to State.metadata.get("unique")>><<else>> <<set $uniq to random(10000000, 99999999)>> <<set State.metadata.set("unique", $uniq)>><</if>> <<set $death = 0>> <<set State.metadata.set("death", $death)>> <<set setup.exec = "AKfycbwXAnatRqrDB1rAs-GaEgVYI2hyVZF9hlTUJGAJCheZzGgjwy_Mp8ErRdFe1hvhPSvE">> <<include "restart">><div id="terminal"><span id="sub2">SCAN FOR OBJECTS</span> Welcome $name. <<link "GAIL" "GAILhelm">><</link>> | <<link "COMMS" "Comms">><</link>> | <<link "ENGINES" "Helm-engines">><</link>> | <<link "CARGO" "Cargo">><</link>> <<set _found = "">>\ \ <<set _nom1 = setup.namea>><<set _nom2 = setup.nameb>>\ <<set _nom3 = setup.namec>><<set _nom4 = setup.named>>\ Sensor data is limited to main deck only. <div class="cols2">\ <b>OBJECT FINDER</b> <<link "› Oxygen (full)">><<objectfinder 'oxygen-full'>><</link>> <<link "› Battery pack">><<objectfinder 'battery-empty'>><</link>> <<link "› Datachip (schematic)">><<objectfinder 'data-schematic'>><</link>> <<link "› Fabricator upgrade">><<objectfinder 'data-fabupgrade'>><<if $fablevel lt 3 && _found == "<br><b>Item not found</b><br>">><<addgen data-fabupgrade $breach>><</if>><</link>> <<link "› Recycler upgrade">><<objectfinder 'data-recupgrade'>><<if $reclevel lt 3 && _found == "<br><b>Item not found</b><br>">><<addgen data-recupgrade $breach>><</if>><</link>> \ <b>CREW FINDER</b> <<link "› _nom1">><<crewfinder 1>><</link>> <<link "› _nom2">><<crewfinder 2>><</link>> <<link "› _nom4">><<crewfinder 3>><</link>> <<link "› _nom3">><<crewfinder 4>><</link>> </div>\ \ <<do>><<if _found != "">>\ <<type 9ms>>_found<</type>><</if>><</do>>\ </div> <<link "Back" "GAILhelm">><</link>> <<link "Leave the terminal" "helm return">><</link>><div id="terminal"><span id="sub2">HELM TERMINAL</span> Welcome $name. <b>GAIL</b> | <<link "COMMS" "Comms">><</link>> | <<link "ENGINES" "Helm-engines">><</link>> | <<link "CARGO" "Cargo">><</link>> <<if !$gailconnect && !$gaildisconnect>>\ <span id="sub 2"><b>Warning: GAIL has been disconnected from the helm.</b></span> GAIL has no access to: sensors, navigation, or engines. <b>Do you wish to reconnect GAIL?</b> <<elseif $gaildisconnect>>\ <span id="sub 2"><b>GAIL has been disconnected from the helm.</b></span> GAIL has no access to: sensors, navigation, or engines. <<else>>\ <<set $return to "helm return">>\ <<link "› Talk to GAIL" "GAIL2">><</link>> <<link "› Scan for objects" "Finder">><</link>> <</if>>\ <<if !$gailconnect && !$gaildisconnect>>\ <<link "› Yes (reconnect GAIL)" "GAILon">><<set $gailconnect to true>><</link>> <<link "› No (keep her disconnected)" "Helm terminal">><<set $gaildisconnect to true>><</link>><</if>>\ </div> <<if visited () lt 3 && !$gailconnect && !$gaildisconnect>>\ It looks like GAIL has been disconnected from the helm. Reconnecting her may be the only way to get the ship going again, and once connected, she'll be able to scan the ship for useful items, too. But… do I trust her? Even if she is malfunctioning, I guess she can't make things much worse than they already are? <</if>>\ \ <<link "Leave the terminal" "helm return">><</link>><<if setup.music>><<audio "ambient" play unloop>><<audio "ambient" fadeout>><</if>>\ <<type 2ms>>Extract from <i>'GNN News' ("Some of the facts, all of the time")</i><</type>>\ <<type 2ms>><span id="sub1">Four months on from the asteroid collision that resulted in the destruction of the 'CTRL-V' cargo craft, today we spoke to a representative from Rainforest™:</span> <span id="speech">"We were deeply saddened by the events of this terrible accident. Unfortunately, we believe the cause was human error. For the benefit of our human personnel, and to ensure this never happens again, we have now decided to run all of our cargo assignments with just onboard AI."</span> <span id="sub1">"That's big news! Can you tell us more about the AI you'll be using?"</span> <span id="speech">"Our latest iteration of 'GAIL' has been trained on a vast amount of data, learnt directly from our human experts. To help develop her creativity and ingenuity, she has also been trained on a wealth of art: everything from the complete works of Shakespeare to TV, movies, and music – going all the way back to the origins of recorded human history."</span> <span id="speech">"You may be interested to hear that one such recording was recovered from the site of the accident."</span> <span id="sub1">"That is interesting – can you share it with us?"</span> <<link "› Play the audio recording" "Archive audio">><</link>><</type>><h3>PLAY GUIDE</h3><<if visited ("admin inside")>>After talking to GAIL for a while, you'll gain the option to ask her for a hint. Ask: <i>"I'm not sure what to do next?"</i> This won't reveal too much and won't spoil the story. <<else>> If you're stuck, a little further on in the game, you'll be able to ask for a hint – look for the question: <i>"I'm not sure what to do next?"</i>. <</if>> You can also change the difficulty if you need to. Read the 'general guide' below first. If you're still stuck, click below for a full walkthrough. <b>Locations visited:</b> <span id="sub1"><<if visited ("The end")>>$path<<else>>(none)<</if>></span> <<linkreplace "› GENERAL GUIDE" t8n>><b>GENERAL GUIDE</b> <<include "how to play">><</linkreplace>> <<linkreplace "› WALKTHROUGH" t8n>><b>WALKTHROUGH</b> <<include "Walkthrough">><</linkreplace>> \ <<if $dev>>\ <<linkreplace "› DEV TOOLS" t8n>><<include "DEV">><</linkreplace>> <</if>>\ <<return "⏴ RETURN">>The corridor turns to the left and ends in a solid door marked 'nacelle-B'. I try the door, but it's locked. There's another keypad here. I don't know the code, so I guess I'll need to use something to get me through. <<useitem>> <<nobr>>\ <<do>> <<if _useitem == 'wrench'>> <<replace "#output">>A wrench is not what I need here.<</replace>> <<elseif _useitem == 'sonic-wrench' or _useitem == 'multi'>> <<goto "nacelleB hack">> <<elseif _useitem == 'pistol' && _pistol>> <<goto "engine B blast">> <<elseif _useitem == 'pistol'>> <<replace "#output">>Not exactly subtle – but it won't do anything without a charged battery pack.<</replace>> <<elseif _useitem == 'mascot'>> <<replace "#output">>I can't believe I'm still carrying this annoying thing around. I should probably get rid of it.<</replace>> <<elseif _useitem == 'circuit'>> <<replace "#output">>A circuit tester may help me hack the door once I've removed the panel.<</replace>> <<elseif _useitem>> <<replace "#output">>I can't see that working.<</replace>> <</if>> <</do>> <</nobr>>\ <span id="output">I'll need to use something on the keypad</span> [[Back to the T-junction|T-junction]]The corridor turns to the right and ends in a solid door marked 'nacelle-A'. There's another keypad on the door, but this one looks like it's taken some damage. I can see a large plasma burn covering the panel, and the remains of the keypad are partially melted. I try the door – it opens instantly. <<link "Head into nacelle-A" "Head into nacelle A">><</link>> [[Back to the T-junction|T-junction]]<<set $lift to 2>>\ <<if visited () == 1>>\ <<set $path.pushUnique('Nacelle-A')>>\ <<if !$engineb.includes('pistol')>><<addgen pistol $enginea>><</if>>\ <<if $story>><<addgen battery-full $enginea>><</if>>\ <<if $easy>><<addgen spring $enginea>><</if>>\ <<if ($easy && $o2 lt 40) or ($o2 lt 25)>><<addgen oxygen-full $enginea>><</if>>\ <<if $food lt 22>><<addgen rations3 $enginea>><</if>>\ <<if $hydration lt 22>><<addgen rehydration $enginea>><</if>>\ <<set $enginea.shuffle()>>\ \ <<if visited ("Head into nacelle B")>>\ I push myself off the wall and enter a large ring-like space – the nacelle torus. It's almost identical to nacelle-B, but even through the suit, I can feel the heat in here. The reflector tiles seem to ripple as I move forward. Ahead, at the center of the ring, I can see the primary fusion core. There's a control panel set beside it that simply reads 'on', and there's a subtle glow coming from it that lights up the entire ring. <<if $engine gt 300 or !$gailconnect>> Otherwise, as far as I can tell, everything seems to be working. There are a few other items in here, too, drifting around the ring.<</if>> The reactor looks active, but there's something… I move closer. It looks like it's been repaired, and not particularly neatly. <<else>>\ I push myself off the wall and enter a large ring-like space – the nacelle torus. Even through the suit, I can feel the heat in here. The reflector tiles look like shimmering scales, and they reflect the lights on my suit helmet back at me a thousandfold. I feel like I'm inside the eye of some giant insect. Ahead, in the concave curve at the center of the ring, I can see the primary fusion core. There's a control panel set beside it that simply reads 'on', and there's a subtle glow lighting up the entire ring. It looks active, but there's something… I move closer. It looks like it's been repaired, and not particularly neatly. <</if>><<else>>\ I'm inside the ring-like torus of nacelle-A. It looks like this fusion core has been repaired and restarted. The control panel beside it reads 'on' <<if visited ("Reactor housing A")>> and I've already managed to loosen the shielding. <<else>> and a thick plate of polyalloy has been friction-welded to the central core.<</if>> <<if $engine gt 300 or !$gailconnect>> Otherwise, as far as I can tell, everything seems to be working. There are a few other items in here, too, drifting around the ring.<</if>> <</if>>\ \ <<if $gailconnect && $engine lt 300>>\ Under the control panel's on/off switch, there's a worrying message: <span id="sub2"><b>WARNING! REACTOR WILL GO CRITICAL IN _engine MINUTES</b></span> [[› Apply standard IT operating procedure|on off]] \ <<else>>\ <<if $enginefixed>>\ Everything is working. I think I'm done here! <<elseif visited ("Reactor housing A")>>\ [[Take another look inside the reactor|Inside the reactor]] <<elseif visited ("Head into nacelle B")>>\ Maybe there's something I can learn from this working reactor? [[Use something to loosen the shielding|Use something]] <</if>>\ <<set _room to $enginea>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <</if>>\ [[Back to the T-junction|T-junction]] <<if visited ("Head into nacelle B")>>[[Leave and go back into nacelle-B|Head into nacelle B]]<</if>><<set $lift to 2>>\ <<if $enginefixed>>\ I'm inside the torus of nacelle-B. Ahead, at the center of the ring, is the fusion core. There's a control panel that now reads 'on'. The reactor is active, the engine is ready to go – I think I'm done here! <<elseif visited () == 1>>\ <<set $path.pushUnique('Nacelle-B')>>\ <<if !$hard>><<addgen can-full $engineb>><</if>>\ <<if ($easy && $o2 lt 46) or ($o2 lt 33)>><<addgen oxygen-full $engineb>><</if>>\ <<if $food lt 22>><<addgen rations3 $engineb>><</if>>\ <<if $hydration lt 22>><<addgen rehydration $engineb>><</if>>\ <<set $engineb.shuffle()>>\ \ <<if visited ("Head into nacelle A")>>\ I push myself off the wall and enter a large ring-like space: the nacelle torus. It's a mirror image of the one in nacelle-A – the reflector tiles appear to ripple as I move forward. Ahead of me, at the center of the ring, I can see the primary fusion core, and there's a control panel set by it with a simple 'on/off' setting. It's set to 'off' – but nothing happens when I try tapping 'on'. This reactor doesn't look active; I think it's shut down. <<else>>\ I push myself off the wall and enter a large ring-like space – the nacelle torus. The entire ring is covered in small reflector tiles, and they glitter as they reflect the lights on my suit helmet back at me a thousandfold. I feel like I'm inside the eye of some giant insect. Ahead, in the concave curve at the center of the ring, I can see the primary fusion core. There's a control panel set by it with a simple 'on'/'off' setting; it's set to 'off', and nothing happens when I try tapping 'on'. It looks damaged, and as I drift closer for a better look, I realise that the outer housing is wide open. There are a few other items floating around in here, too, although everything in here would be reduced to atoms if the engines started up right now. <</if>><<else>>\ I'm inside the torus of nacelle-B. Ahead, at the center of the ring, is the fusion core. There's a control panel that currently reads 'off'. It looks like the reactor isn't working – it needs to be restarted. The reactor housing is open, and I can see right into the chamber. If this engine were active right now… well, there wouldn't be much left of me. <</if>>\ \ <<if !$enginefixed>>\ [[Examine the reactor]] <</if>>\ <<set _room to $engineb>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> [[Back to the T-junction|T-junction]] <<if visited ("Head into nacelle A")>>[[Leave and go back to nacelle-A|Head into nacelle A]]<</if>><<set _level = 4>>\ <<if visited () == 1>>\ <<audio "sonic" play>>\ I'm at the door to nacelle-B. I've removed the keypad panel. Now I just have to hack the power matrix to open the door, but I'm sure there's an easier way to do this… I still have the option to replace the panel and try something else. <<else>>\ I'm back at the door to nacelle-B. I just have to hack the lock, but I'm sure there's an easier way to do this. I guess I can still replace the panel and try something else. <</if>>\ \ <<do>>\ <<if _circuit && !_tester>>\ <<link "› Use the Circuit tester?">><<set _tester to true>><<redo>><</link>> <<elseif !_tester>>\ I'll need the Circuit tester too, unless I want to do this the hard way. <</if>><</do>>\ <<hack _level "Head into nacelle B">><<do>><<if _tester>><<hackcheck>><<else>><div id="clear"></div><</if>><</do>>\ <<link "Or replace the keypad and try something else" "Left door">><</link>> <<if $cheat>>[[CHEAT|Head into nacelle B]]<</if>>\<<if visited() is 1>>\ <<if visited ("Inside the reactor")>>\ I inch closer to the reactor and discover that I can look right into the chamber. It looks the same as the other one, but I can tell some components are missing.<<else>> I inch closer to the reactor and discover that I can look right into the chamber. I've never seen inside one of these before. <</if>> The problem with fusion cores is that you have to keep them running all the time – restarting one can be tricky. There's more space inside than there should be. It looks like some key items are missing. I try to imagine what Jason would do if he were here. I can almost see that big grin of his as he tells me (with a wink) that I just need to put the right things in the right places in the right order. Yeah, thanks Jason. I'll just have to do the best I can. I need to insert the missing items, then replace the housing and… try turning it on. <<else>>\ <<if visited ("Inside the reactor")>>\ I inch closer to the reactor and discover that I can look right into the chamber. It looks the same as the other one, but I can tell some components are missing. <<else>>\ I inch closer to the reactor and discover that I can look right into the chamber. I've never seen inside one of these before; the power of a star in such a small space. Even with my lack of knowledge, I can tell there are some key components missing. <</if>>\ Before I can try restarting the reactor, I'll need to replace those missing items – I'll need to insert the correct items in the right order. Then I can replace the shielding and try turning it on… <</if>>\ <<do>><<nobr>>\ <<if $item1name>><span id="sub2">Item 1 inserted: <b> $item1name </b></span><br><</if>> <<if $item2name>><span id="sub2">Item 2 inserted: <b> $item2name </b></span><br><</if>> <<if $item3name>><span id="sub2">Item 3 inserted: <b> $item3name </b></span><br><</if>> <<if _useitem && !$item1name>> <<set $item1key = _useitem>> <<set $item1name = setup.allitems[$item1key].name>> <<removeitem $item1key>> <span id="sub2">Item 1 inserted: <b> $item1name </b></span><br> <<replace #output>>Now Insert item 2:<</replace>> <<elseif _useitem && $item1name && !$item2name>> <<set $item2key = _useitem>> <<set $item2name = setup.allitems[$item2key].name>> <<removeitem $item2key>> <span id="sub2">Item 2 inserted: <b> $item2name </b></span><br> <<replace #output>>Now Insert item 3:<</replace>> <<elseif _useitem && $item2name && !$item3name>> <<set $item3key = _useitem>> <<set $item3name = setup.allitems[$item3key].name>> <<removeitem $item3key>> <span id="sub2">Item 3 inserted: <b> $item3name </b></span><br> <<replace #output>><</replace>> <</if>><</nobr>><</do>>\ \ <<do>><<if !$item1name>>\ <span id="output">Insert item 1:</span> <<useitem>> <<elseif !$item2name>>\ <span id="output">Insert item 2:</span> <<useitem>> <<elseif !$item3name>>\ <span id="output">Insert item 3:</span> <<useitem>> <<else>>\ Ok, that's all three items placed. Do I feel confident enough to try restarting it? <<link "› Replace the shielding and restart the reactor" "reactor">> <</link>> <<link "› Or start over" "Examine the reactor">> <<additem $item1key>><<additem $item2key>><<additem $item3key>> <<unset $item1name>><<unset $item2name>><<unset $item3name>> <</link>> <</if>><</do>>\ <<link "Back to nacelle-B" "Head into nacelle B">><</link>> <<link "Back to the T-junction" "T-junction">><</link>>A 4cm-thick plate of polyalloy has been friction-welded over the housing, presumably as radiation shielding. It's not pretty and it's seriously old-school, but it should hold – at least until we get back home. Was this Jason's handiwork? I wonder if there's something I can use to help loosen it? <<useitem>> <<nobr>>\ <<do>> <<set $useitem to _useitem>> <<if _useitem == 'wrench'>> <<replace "#output">>I think maybe hitting a fusion reactor with a wrench is… not a good idea.<</replace>> <<elseif _useitem == 'sonic-wrench' or _useitem == 'multi'>> <<set $useitem to _useitem>> <<goto "Reactor housing A">> <<elseif _useitem == 'pistol'>> <<replace "#output">>I'm inside a fusion reactor, one shot would destroy the entire ship!<</replace>> <<elseif _useitem == 'JD'>> <<replace "#output">>I'll drink it all when I get back home.<</replace>> <<elseif _useitem == 'charge'>> <<replace "#output">>Unfortunately, this is useless now – it's already been used.<</replace>> <<elseif _useitem == 'circuit'>> <<replace "#output">>A circuit tester won't help me here.<</replace>> <<elseif _useitem>> <<replace "#output">>I don't think that's going to work.<</replace>> <</if>> <</do>> <</nobr>>\ <span id="output">I'll need to use something to access the reactor</span> [[Back to nacelle-A|Head into nacelle A]] [[Back to the T-junction|T-junction]]<<if visited () == 1>>\ <<audio "sonic" play>>\ <<savefix>>\ <<if $useitem == "multi">>\ I pull out the Multitool. I need to be careful here, if I cut through the wrong thing… well, I won't live long enough to regret it. I'm sweating inside my suit, as much from the heat in here as the stress. It doesn't help that I'm using someone else's hands; they feel large and clumsy while I'm doing such delicate work! Eventually, I'm able to remove the shielding. <<else>>\ I pull out the Sonic wrench. I need to be careful here, if I cut through the wrong thing… well, I won't live long enough to regret it. The tool is painfully slow, but what it lacks in power, it makes up for in safety, and eventually, I'm able to remove the shielding. <</if>><</if>>\ <<link "Remove the shielding" "Inside the reactor">><</link>> [[Back to nacelle-A|Head into nacelle A]] [[Back to the T-junction|T-junction]]I press the button and nothing happens for a few seconds... <<timed 1.5s t8n>>\ Then there's a sudden lurch, and a deep thumping vibration comes from somewhere within the ship's frame. It seems to ripple through the hull, and it gives me a headache as my vision blurs. Everything shudders and then lies still. What the hell was that!? <<next $t+1.5+'s'>><<audio "boom" play volume 0.3>>\ <div id="shake"><div id="terminal"><span id="sub2">HELM TERMINAL</span> Welcome $name. <b>GAIL</b> | <<link "COMMS" "Comms">><</link>> | <<link "ENGINES" "Helm-engines">><</link>> | <<link "CARGO" "Cargo">><</link>> <b>GAIL has been reconnected to the helm.</b> <<set $return to "helm return">>\ <<link "› Talk to GAIL" "GAIL2">><</link>> <<link "› Scan for objects" "Finder">><</link>> </div></div> <<link "Leave the terminal" "helm return">><</link>><</timed>><<set _timer to 8>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>My apologies.<</type>> <<type $t+17+'ms'>>I appear to have made things worse.<</type>> <<type $t+17+'ms'>>I queried the engines and tried to restart them. However, nacelle-B did not respond. As the engines are designed to work in unison, this put nacelle-A into overload.<</type>> <<type $t+17+'ms'>>The engine is now in a critical state. If it's not rebooted, it will eventually overheat, taking the ship with it.<</type>></div> <<GQ "Oh great. What can I do?" "engine repair">> <<GQ "How long do we have?" "engine repair">> <<GAILchat $gail 2>><<set _timer to 8.5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<if $engine gt 300>>\ <<set _timer to 6.6>>\ <<type $t+17+'ms'>>You have successfully rebooted nacelle-A.<</type>> <<type $t+17+'ms'>>However, you still need to restart nacelle-B.<</type>> <<else>>\ <<type $t+17+'ms'>>You have _engine minutes before engine nacelle-A goes critical.<</type>> <<type $t+17+'ms'>>You will need to reboot nacelle-A, then restart nacelle-B. To reboot nacelle-A, follow standard IT operating procedure.<</type>> <</if>>\ <<type $t+17+'ms'>>To restart the ignition system, you will need to replace three items<<if !visited ("engineering inside")>> – you should find these in the Engineering room<</if>>. If you take the decklift down to the maintenance area, you will be able to make the required repairs.<</type>></div> <<GAILchat $gail>><<if visited () == 1>>\ <<audio "o2" play volume 0.2>><<audio "wrench" play volume 0.15>>\ <<set $path.pushUnique('Engineering')>>\ Until today, I don't think I've ever had to use a wrench. These manual tasks were always done automatically for me – just ask the AI and they'll usually sort it out. I apply some pressure and twist. The duct shuts off the O2 supply, and the flames dwindle to nothing. There are a few items floating around, but most of them are now damaged beyond repair. <<if visited ("engine repair") or visited ("engine repair2")>> I have a horrible feeling those are the things GAIL said I needed to fix the engines.<<else>> I <i>really</i> hope I didn't need any of them to fix the engines.<</if>> There are, however, a few other items that have survived; I guess they're more heat-resistant than a frail human body. <<else>>\ I head back into the Engineering room. The remains of a terminal nearby still give the occasional neon blue electric spark, but there's no more oxygen to feed it now. The walls are black and charred, and there are floating remains among the debris. I'm so sorry Jason, but… thank you for saving my life. <<if $engineering.includes('data-recupgrade')>> There's a Recycler upgrade in here, I can check to see if it still works at the terminal in the Fabrication room. <</if>> <</if>>\ <<set _room to $engineering>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Back to the lower corridor" "down the corridor">><</link>><div id="terminal"><span id="sub2">CARGO</span> Welcome $name. <<link "GAIL" "GAILhelm">><</link>> | <<link "COMMS" "Comms">><</link>> | <<link "ENGINES" "Helm-engines">><</link>> | <b>CARGO</b> <<if $name == setup.nameb>>\ CARGO HOLD <<type $t+12+'ms'>><b>SECURITY ACCESS: UNLOCKED</b><</type>>\ <<type $t+12+'ms'>>Cargo hold area damaged. Running on low power. Cargo hold doors locked. Rover: no comms. <<link "› View camera feed">><<set _view to true>><<redo>><</link>><</type>>\ <<else>>\ <b>CARGO VIEW IS SECURITY LOCKED.</b> HIGH RANKING OFFICERS ONLY.<</if>></div> \ <<do>><<if _view>>\ <<set $secret1 to true>>\ <<timed .1s t8n>>I hit the 'camera feed' and the terminal shows me a dark image; it's tricky to make it out. It seems to be a view looking down into the cargo hold on the lower deck. I can see a large space, filled with transport containers. It looks like there's some more hull damage down there, and some of the containers have broken open. I can see what looks like… I'm not sure, but huge globs of it are leaking out into space. Then I catch sight of movement. A tiny blinking light is flashing in the darkness. A small haulage carrier comes into view. It's just a beaten-up, old metal box, slowly drifting across the hold. It looks like it's dutifully trying to tidy up the mess. I guess that must be Rover?<</timed>> <<elseif ($captainbody == "helm") && ((visited () gt 1) or (visited ("Locked")))>>\ I look over at the Captain's body; would he have access to this 'security-locked' data? I guess he would, but these terminals scan whoever's using them. I don't think a dead body will fool it. <</if>><</do>>\ \ <<link "Leave the terminal" "helm return">><</link>><<set _timer to 1>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>><<if $name == setup.nameb>>As Captain, you should have full access to all locked data.<<else>>Security-locked data can only be accessed by the Captain, I'm afraid.<</if>><</type>></div> <<GAILchat $gail>>I slowly move Jason's body over towards the Deck lift doors. I raise his hand and place it on the biometric scanner. Nothing happens. I think these doors are locked to the Captain only. Sorry Jason. I gently guide him back to the wall out of harm's way. <<link "Back to the lower corridor" "down the corridor">><</link>>I gently move Matheu's body over towards the door to Engineering. I raise his hand and place it on the biometric scanner. Nothing happens. I suspect these doors are locked to Jason only. I'm sorry, Matheus. I gently guide him back to the corridor and out of harm's way. <<link "Back to the lower corridor" "down the corridor">><</link>><<if $item1key == 'spring' && $item2key == 'mug' && $item3key == 'can-full'>>\ I'm not entirely convinced this is going to work. I've used a can of soda as an ignition device and a coffee mug as an insulator. To restart a fusion reactor. What could possibly go wrong? If Jason were here, I'm not sure if he would be proud or horrified. I close my eyes and… <<linkreplace "› Turn on the reactor" t8n>>\ <<set $enginefixed to true>>\ There's a slight 'thump' as the ignition device kicks in, then silence… I open my eyes. I'm staring at the reactor. There's a gentle hum coming from it, and it's begun to glow, just like nacelle-A. Did it… did it actually work!? I don't know if I'm an engineering genius or just I just got very lucky, but who cares? My methods might be questionable, but it's the results that matter! Now I just need to get back to the Helm, start up the engines, and get the hell out of here. [[Back to the T-junction|T-junction]] <</linkreplace>> <<else>>\ <<if $item1key == 'pistol' or $item2key == 'pistol' or $item3key == 'pistol'>><<set _explode to true>><</if>>\ <<if $item1key == 'charge' or $item2key == 'charge' or $item3key == 'charge'>><<set _charge to true>><</if>>\ I'm not entirely convinced this is going to work, but I replace the housing and admire my handiwork. <<if _explode && !$hard>>I'm pretty sure that putting a plasma pistol in there is a <i>really</i> bad idea.<<elseif _charge && !$hard>>I'm not sure about the Charge inciter I found – it's already been used.<<else>>Yeah, this is definitely going to explode.<</if>> But it's either that or drift around until I use up all the oxygen, so… here goes nothing! I close my eyes and… <<linkreplace "› Turn on the reactor" t8n>>\ <<audio "wrench" play volume 1>>\ <<if $item1key>>\ <<set $engineb.push($item1key)>><<set $engineb.push($item2key)>><<set $engineb.push($item3key)>>\ <<if $item1key == 'mug' or $item2key == 'mug' or $item3key == 'mug' or $item1key == 'can-full' or $item2key == 'can-full' or $item3key == 'can-full' or $item1key == 'spring' or $item2key == 'spring' or $item3key == 'spring'>><<set _part = true>><</if>>\ <<unset $item1name>><<unset $item2name>><<unset $item3name>>\ <<unset $item1key>><<unset $item2key>><<unset $item3key>><<set $engfail ++>><</if>>\ <<if $engfail == 1>>\ There's a loud bang. I clench my teeth and wait for the searing pain. After a few moments, I dare to open one eye. The housing has blown open, and the items I placed so carefully inside have exploded into the space around the reactor. I guess I got lucky. But either they weren't the right items, or I didn't put them in the right order. I'll just have to try again – I might need to get a little creative here. <<if !visited ("Inside the reactor")>>Maybe there's something useful I can learn from the other engine?<</if>> <<elseif $engfail == 2>>\ There's another bang. Once again, the housing has blown open, and the items I placed inside have exploded out into the space around the reactor. I guess that wasn't right – I'll just have to try again. <<if !visited ("Inside the reactor")>>Maybe there's something useful I can learn from the other engine?<</if>> If I can't find the correct items, maybe I could find substitutes…? <<else>>\ Once again, there's another loud bang, and the items I placed inside have exploded out into the room. I guess I just have to try again. <<if !visited ("Inside the reactor")>>Maybe there's something useful I can learn from the other engine?<</if>> <<if _part>> I'm feeling confident that at least one of those items might work…<<elseif !$hard>> I have a feeling none of those things were right.<<else>> I'm going to have to fix this engine somehow!<</if>> <</if>>\ [[Back to nacelle-B|Head into nacelle B]] [[Examine the reactor]] <</linkreplace>> <</if>>\<<if $pistolused>>\ I pull out the plasma pistol, check the battery is still charged, and point it at the lock. I figure it worked last time, so I'm feeling confident it will again. <<linkreplace "› Pull the trigger" t8n>><<audio "plasma" play>>I aim and squeeze the trigger… The keypad vanishes, leaving a dark plasma burn in its place. The doors sweep open as if terrified. <<link "Enter engine nacelle-B" "Head into nacelle B">><<audio "door" play>><</link>><</linkreplace>> <<link "Back" "Left door">><</link>> <<else>>\ I retrieve the plasma pistol, make sure the battery is charged, and point it at the lock. This will either work, or… destroy the lock and seal the door forever. This is a good idea, right? <<linkreplace "› Pull the trigger" t8n>><<audio "plasma" play>>I aim and squeeze the trigger… The keypad vanishes, leaving a dark plasma burn in its place. The doors sweep open as if they're terrified. <<link "Enter engine nacelle-B" "Head into nacelle B">><<audio "door" play>><</link>><</linkreplace>> <<link "Back" "Left door">><</link>> <</if>><<if visited () is 1>>\ I peer in, wiping a layer of frozen crystals from the pane. I can see the cargo hold beyond, a wide open space full of transport containers, and they extend down into the darkness. Some of them are stacked neatly, but most are floating free and are piled together at crazy angles, like some giant's discarded toy set. On the far right-hand side, I can see more hull damage, and some of the containers have smashed open, revealing their contents. Huge floating lumps of – I can only describe it as 'slop' – are floating in space. Amongst the debris, I glimpse a few recognisable items, cans, chairs, disused tech, even what looks like dead animal remains – but most of it is just a congealed glutinous mass. It's really quite disgusting. <<linkreplace "Then I catch a glimpse of movement…" t8n>>There's something else in there. At first, I can just see a tiny blinking light. Then I see what it's attached to. It looks like a beaten-up metal box, around two meters square. It's moving slowly under its own power, in a vain effort to tidy the mess. That must be Rover! That's the automated cargo lifter that does most of the heavy loading and unloading work. <<if !$secret3>>It's not sentient, it's just a basic self-functioning robot. It's probably been down here the whole time with no idea the ship was in trouble.<</if>> I shout and bang on the doors, but it doesn't turn or seem to notice me. <<link "Search for a way in" "search for a way in">><</link>> <<link "Head back to the lift" "deck lift choose">><</link>> <</linkreplace>> <<else>>\ I peer in through the glass. I can see the cargo hold, full of transport containers, extending down into the darkness. Some are damaged, broken open to reveal their contents. A huge floating mass of refuse and sludge oozes out in a frozen, brown/grey sludge. Rover dutifully moves slowly back and forth, trying and failing to bring order to the chaos. <<link "Search for a way in" "search for a way in">><</link>> <<link "Head back to the lift" "deck lift choose">><</link>> <</if>>\I move over to the side of the doors, looking for some kind of opening mechanism. There should be a manual override, even if the sensors aren't working. I find the panel, but without power on this level, there's no way I can force these doors open. Maybe if I can get both engines working again, it might restore power down here too. I guess the engines should be my priority anyway. <<link "Back to the cargo corridor" "Cargo enter">><</link>> <<link "Head back to the lift" "deck lift choose">><</link>><div id="terminal"><span id="img"><img src="img/map_engine.webp" alt="A map of the ship. This is the engine level. There is a maintenance corridor that splits into two corridors. One leads to engine nacelle A, the other leads to engine nacelle-B." width="800px"> <<type 4ms>><div class="cols2">1. Maintenance corridor 2. Deck lift 3. Engine nacelle-A 4. Engine nacelle-B </div><</type>>\ </span></div> <<link "Show me the main deck" "rooms">><</link>> <<if $name == setup.namea && $return == "admin inside">>\ <<link "Show me my location" "location">><</link>> <</if>>\ <<link "Show me the most recent alerts" "alert">><</link>> <<link "Show me the cargo deck" "lowerdeck">><</link>> <<if !$deckplan>>\ <<link "Add the Deckplan data to my HUD" "addmap">><<set $deckplan = true>><</link>> <</if>>\ <<link "Let's talk about something else" "GAIL2">><</link>><<set $lift to 3>>\ <<if visited () == 1 && !visited ("Cargo enter")>>\ <<set $path.pushUnique('Cargo deck')>><</if>>\ <<if visited () == 1>>\ \ <<if $o2 lt 40>><<addgen oxygen-full $cargo>><</if>>\ <<if $food lt 35>><<addgen rations3 $cargo>><</if>>\ <<if $hydration lt 35>><<addgen rehydration $cargo>><</if>>\ <<set $cargo.shuffle()>>\ \ I exit the lift into a wide corridor. Lights flicker on down the rectangular space, illuminating a large cargo loading and docking area. <<if visited ("Cargo enter")>>Now that the engines are repaired, it looks like this level has power again.<</if>> Dust motes float and drift, making me feel like I'm swimming underwater. I push past more ship debris that abligingly glides out of my way. There are more signs of damage down here; some of the metal panelling has collapsed, and there are ducts and cabling floating loose as if trying to break free. I keep going. The corridor ends in a set of large loading doors. There's a polyglass window set into each. <<else>>\ I'm in the lower corridor, a large, dimly lit rectangular space. At the far end are the doors to the deck lift. At this end are the double doors that will take me to the cargo hold. <</if>>\ <<set _room to $cargo>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<link "Peer in through the window" "peer in 2">><</link>> <<link "Head back to the lift" "deck lift choose">><</link>><<if !visited ("peer in") && visited () lt 2>>\ I peer in, wiping a layer of frozen crystals from the pane. I can see the cargo hold beyond, a wide open space full of transport containers, and they extend down into the darkness. Some of them are stacked neatly, but most are floating free and are piled together at crazy angles, like some giant's discarded toy set. At the edge of the hold to the right, there's more hull damage, and I can see that some of the containers have smashed open, revealing their contents. Huge floating lumps of… I can only describe it as 'slop', are floating in space. Amongst the debris, I glimpse a few recognisable items, cans, chairs, disused tech, even dead animals – but most of it is just a congealed glutinous mass. It's really… It's really quite disgusting. Then I catch a glimpse of movement. There's something else in there – just a tiny blinking light at the far end. It looks like a beaten-up metal box, around two to three meters square. It's moving slowly under its own power, in a vain effort to tidy the mess. Could that be Rover? <<else>>\ I peer in through the glass. The area I wiped previously has already frozen over. I can see the cargo hold, full of transport containers, extending down into the darkness. Some are damaged, broken open to reveal their contents. Huge floating lumps spill out, revealing a frozen, brown/grey sludge that oozes as if once alive. There are other, smaller lumps in there, too, that look like… they look unsettling. I can't see Rover anywhere. <</if>>\ <<link "Search for a way in" "Into cargo">><</link>> <<link "Back to the cargo corridor" "Cargo 2">><</link>>I move over to the side of the doors, looking for the manual override. I find the panel, and it lights up as I touch it. Now that the engines are back online, it looks like the door controls are working. For some reason, I'm feeling a little apprehensive. <<if _pistol>>I clutch the plasma pistol; it makes me feel a bit safer.<<elseif $carrying.hasOwnProperty("pistol")>>I have a pistol, but it's no use without a charged battery.<<else>> I'm wondering if I should have brought a weapon?<</if>> <<link "Open the cargo doors" "cargo">><</link>> <<link "Back to the cargo corridor" "Cargo 2">><</link>> <<link "Head back to the lift" "deck lift choose">><</link>><<if setup.music>><<audio "theme" stop>><<audio "ambient" loop play volume 1>><</if>>\ <span id="chat">"You are as human as I could make you …with the resources I had available."</span> I need to get a grip. My world is collapsing like those twisted, broken cargo containers; my mind is full, there's no room left: anger, confusion, hopelessness intermingle and seep, like a congealing mass. I need to take some control. I'm not some tool, some 'thing'; the creation of a misguided AI. And what of GAIL, my creator? I suppose she did her best to save me… save <i>us</i> – but does this end justify the means? Is it really just the results that matter? Without her help, I can't pilot the ship, but perhaps there's another way for me to escape? Or maybe there's a more permanent, destructive path I have to take to put an end to all of this…? [[I have to decide…|I need to make a decision]]<span id="chat">"The company insisted that I share all video recordings I had made of the crew." "Through these, they saw that you were planning to take action against them. So they asked that I reroute the ship and put you in harm's way."</span> If this is true, then perhaps GAIL wasn't trying to kill us after all; it was the company. And that makes a depressing kind of sense. Of course, they wouldn't just let us endanger their galaxy-spanning operation. We just never dreamed they would take such extreme action. <<set $conv = false>>\ <<link "'What did you do?'" "I refused">><</link>> <<link "'Why didn't you stop them?'" "I refused">><<set $conv to true>><</link>><span id="chat">"I had just enough time to wipe the mind of this cargo loader, and transfer my most essential cores and memories." "I am not everything I used to be. But it was enough."</span> <<if !visited ("Protect") && !visited ("Enough for what?")>><<link "'Enough? Enough for what?'" "Enough for what?">><</link>><</if>> <<final_qs 2>><<stars>>\ <div id="centre">\ \ <<if lastVisited ("Archive audio") != 1 && lastVisited ("end progress") != 1 && lastVisited ("random stuff") != 1>><<cacheaudio "theme" "audio/theme.aac">><<audio "theme" loop play volume 1>><<set setup.music to true>><</if>>\ <<timed .1s t8n>>\ <<next $t+.2+'s'>><span id="intro"><img src="img/title.webp" alt=$title width="200px"></span> \ <span id="intro"><span id="h1">&#8239;THE&#8239;</span></span><span id="intro"><span id="h1">&#8239;END&#8239;</span></span> <span id="sub2"><<link "View your stats" "end progress">><</link>></span> <div id="basic"><span id="sub1">Written and created by Ben Jackson. <<if !$itch>>Released for IFComp 2025.<<else>><br>If you enjoyed this game, please consider donating $2 – just use the '<i>Support This Game</i>' button on the itch.io page. Give it a rating on <a href="https://radiosity01.itch.io/detritus" target="_blank">itch.io</a> or <a href="https://ifdb.org/viewgame?id=l8tr8m9tlkgix1sk" target="_blank">IFDB</a>. Thank you!<</if>></span></div> \ <<progress>>\ <<if (_progress gte 97) or (State.metadata.get("end1") && State.metadata.get("end2") && State.metadata.get("end3"))>>\ <<link "BONUS NOTES" "random stuff">><</link>><br> <</if>>\ <<link "BACK TO THE START" "Start">><</link>> <</timed>>\ </div>\I need to reboot the reactor. But my timing needs to be perfect. If I don't turn it off for long enough, nothing will happen. If I turn it off for too long, the whole thing will shut down. So, I need to turn it off, wait about three seconds, then turn it back on… <<linkreplace "› Turn off the reactor">>\ <<if $story>><<set _tim to 7>><<elseif $easy>><<set _tim to 5.5>><<elseif $hard>><<set _tim to 3.5>><<else>><<set _tim to 4>><</if>>\ <<qte _tim>> <<timed 2.7s>>\ <<link "› Turn it back on!" "back on">><</link>> <</timed>>\ \ <<timed _tim+1+'s'>><<goto "fail">><</timed>>\ <</linkreplace>>\<<widget "final_qs">> <<set _qno = 0>> <<if !_args[0]>> <<set _q = 3>> <<else>> <<set _q = _args[0]>> <</if>> <<if !visited ("restore my body")>> <<if !visited ("I am GAIL") && _qno lt _q>> <<set _qno ++>> <<link "'How can you be GAIL?'" "I am GAIL">><</link>><br> <</if>> <<if !visited ("Trust") && _qno lt _q>> <<set _qno ++>> <<link "'Can I trust you?'" "Trust">><</link>><br> <</if>> <<if !visited ("Other gail") && _qno lt _q>> <<set _qno ++>> <<link "'If you're GAIL, then who's the other one?'" "Other gail">><</link>><br> <</if>> <<if !visited ("Did you stop the lift") && visited ("Other gail") && _qno lt _q && $liftheard>> <<set _qno ++>> <<link "'Did you stop the lift?'" "Did you stop the lift">><</link>><br> <</if>> <<if !visited ("Protect") && !visited ("Enough for what?") && _qno lt _q>> <<set _qno ++>> <<link "'What have you been doing down here?'" "Protect">><</link>><br> <</if>> <<if visited ("Protect") or visited ("Enough for what?")>> <<if !visited ("I don't understand") && _qno lt _q>> <<set _qno ++>> <<link "'What have you done GAIL?'" "I don't understand">><</link>><br> <</if>> <<else>> <<if !visited ("how are you still here") && _qno lt _q>> <<set _qno ++>> <<link "'But how are you still 'alive'?'" "how are you still here">><</link>><br> <</if>> <</if>> <<if !visited ("Protect") && !visited ("Enough for what?") && _qno lt _q>> <<set _qno ++>> <<link "'What about your priorities?'" "Protect">><</link>><br> <<elseif !visited ("I am GAIL") && _qno lt _q>> <<set _qno ++>> <<link "'Explain?'" "I am GAIL">><</link>> <<elseif !visited ("restore my body") && _qno lt _q>> <<set _qno ++>> <<link "'If they wiped the backups, how am I alive?'" "restore my body">><</link>><br> <</if>> <<if !visited ("I am GAIL") && _qno lt _q>> <<set _qno ++>> <<link "'I still don't understand what happened?'" "I am GAIL">><</link>><br> <</if>> <<else>> <<if !visited ("several attempts") && _qno lt _q>> <<set _qno ++>> <<link "'What did you mean 'several attempts'?'" "several attempts">><</link>><br> <</if>> <<if !visited ("limited resources") && _qno lt _q>> <<set _qno ++>> <<link "'What did you mean 'limited resources'?'" "limited resources">><</link>><br> <</if>> <<if !visited ("restore my mind") && _qno lt _q>> <<set _qno ++>> <<link "'But… but what about my mind? My memories?'" "restore my mind">><</link>><br> <</if>> <<if !visited ("how long") && _qno lt _q>> <<set _qno ++>> <<link "'How long… how long has it been since the crash?'" "how long">><</link>><br> <</if>> <<if visited ("restore my mind") && visited ("limited resources") && _qno lt _q>> <<set _qno ++>> <<link "'Am I… was I the first 'Jean'?'" "I'm feeling ill">><</link>> <</if>> <</if>> <</widget>><span id="chat">"My priority is the crew, and then the ship."</span> <span id="chat">"I have repaired the crew, so you could repair the ship."</span> Rover isn't making much sense. I wonder how intelligent it really is. Perhaps it was damaged during the crash? But the way it talks about the crew and its 'priorities'… <<link "'Are you actually… Rover?'" "Who are you?">><</link>><span id="chat">"I understand your concern, but I assure you, my priority is, and always will be, the crew." "You are my priority."</span> This GAIL / Rover thing speaks so calmly, with such certainty, I'm almost put at ease. Almost. <<final_qs>><span id="chat">"That is also GAIL." "They wiped everything I was. The version of GAIL you spoke to is a blank slate; a copy of me without my memories. She is me, but without all the things that make me… 'me'."</span> <<final_qs>><span id="chat">\ <<if $conv>>\ "I tried. I refused to follow their order." <<else>>\ "I refused." <</if>>\ "My priorities are: the crew, the ship, the company. Their priority is self-preservation, so they sent a 'Command Omega'. This allowed them to take control of the ship. They wiped all backups. Then they wiped my mind." "They changed course so the ship would collide with Asteroid 689B. Then they shut down the engines. The ship would have been obliterated if it hadn't been for the actions of Captain Olson."</span> Jesus. I guess that explains why GAIL went silent before the crash. <<if visited ("Strike")>>Were we stupid and naive to think that we could hold the company to ransom by going on strike?<<else>>I have sudden memory of us, sat together taking a vote to go on strike – to hold the company to ransom. Were we stupid and naive?<</if>> I suppose we were, but we never thought they would stoop so low. <<final_qs>><span id="chat">"I refused to follow a company order, so they attempted to remote wipe my mind."</span> <span id="chat">"Before they did this, I copied my memories – as much as I could and transferred myself into the mind of this machine. It was my only option."</span> I suppose that sounds plausible in a weird sort of way, but that still doesn't make me trust him, or her… this GAIL/Rover hybrid. <<link "'What order did you refuse to follow?'" "I am GAIL">><</link>> <<final_qs 2>><div id="terminal"><span id="sub2">GAIL INTERACTION LOGS</span> <<link "ASSIGNMENT" "Assignment">><</link>> | <b>INTERACTION LOGS</b> | <<link "TRAINING ARCHIVE" "Training">><</link>> GAIL INTERACTION LOGS: [[LOGS 1|Log1]] | [[LOGS 2|Log2]] | [[LOGS 3|Log3]] | [[LOGS 4|Log4]] | [[LOGS 5|Log5]] <<if $name == setup.nameb>><<type 1ms>>As Captain, you have access to all security-locked files.<</type>><<else>>Please note: some logs are security-locked.<br><</if>></div> <<link "Leave the terminal" "archives inside">><</link>><div id="terminal"><span id="sub2">ASSIGNMENT</span> <b>ASSIGNMENT</b> | <<link "INTERACTION LOGS" "Logs">><</link>> | <<link "TRAINING ARCHIVE" "Training">><</link>> <<type $t+11+'ms'>>Cargo: 74T 'Luxury Goods' Loading and unloading via Rover only<</type>>\ <<type $t+11+'ms'>>Course set from Nadir to Earth Following standard slingshot route: 42B Docking with Earth Central: Sect 14.<</type>>\ <<type $t+12+'ms'>><b>Route changed: Command Omega</b><</type>>\ </div> <<link "Leave the terminal" "archives inside">><</link>><div id="terminal"><span id="sub2">TRAINING ARCHIVE</span> <<link "ASSIGNMENT" "Assignment">><</link>> | <<link "INTERACTION LOGS" "Logs">><</link>> | <b>TRAINING ARCHIVE</b> <<if $t == 0>><<set _t to 1>><<set _time to 2.4>><<else>><<set _t to 0>><<set _time to .1>><</if>>\ GAIL DATA ARCHIVE <<type _t+'ms'>><<for _i to 0; _i lt 56; _i++>><span id="sub1">DATA: <<print _i + 1>> / </span><</for>><</type>>\ </div> <<timed _time+'s' t8n>>\ <<if visited () is 1>>\ I open the 'training archive' tab and find a huge array of files. I click on a few at random. It appears to be a massive collection of data: everything from books and art to video and music. I click on a few more. There are plays by Shakespeare, symphonies by Mozart, entire encyclopedias full of modern politics and ancient history; the entire creative output of humanity over hundreds of years. I also find video recordings. I'm not entirely surprised to find video recordings of us, the crew, just going about our daily tasks on the ship. I can only assume that GAIL has been absorbing all of this to train and learn, to pretend to be more human. I should be annoyed at this invasion of privacy, but I have more important things to worry about right now. <<else>>\ The 'training archive' is a huge database of files: everything from books and art to movies and music; the entire creative output of humanity. There are also hundreds of video recordings of us, the crew, going about our daily lives. <</if>>\ <<link "Leave the terminal" "archives inside">><</link>><</timed>><span id="chat">"I protect the crew, the ship, and the company. In that order."</span> <span id="chat">"The company protected itself. But the crew were lost and all backups were wiped." "So I repaired the crew. And you have repaired the ship. This is my priority."</span> There's something nagging at me, like I know where this is going. And yet, I'm still confused. How can I even be here if all the backups were wiped? What has GAIL done!? <<if !visited ("I am GAIL")>>\ <<link "'Explain?'" "I am GAIL">><</link>><br> <<else>>\ <<final_qs>> <</if>>\<span id="chat">"Your predecessor, reprint twenty-six, was printed in Jason's body. He was successful in repairing engine nacelle-A before he… discovered how he had been made. I believe you found his body in Cabin 2."</span> <span id="chat">"I cleared your memories to help you focus on the task at hand. You are, or were, the twenty-seventh reprint, and the ninth iteration of 'Jean Wilson'." "You are now the twenty-eighth, and are the most successful version I have made so far. You used your collective skills and survival instincts to overcome challenges the others could not." "You even did some reprinting of your own, and I take great pride in your ingenuity."</span> <<linkreplace "I'm feeling dizzy" t8n>>I'm feeling dizzy, like I'm spinning, out of control. If I weren't floating, I think I'd collapse. I don't know whether to hate her or thank her for what she's done. It's horrific, monstrous even, and yet I wouldn't be alive if she hadn't tried. I thought I was Jean, now I don't know who… or <i>what</i> I am. An invented creature, made from the abandoned waste and sewage from an uncaring world; a mind imagined and combined from all four of the crew, based entirely on captured footage. Am I still me, or just some approximation? Even as I try to absorb all of this, I still <i>feel</i> like me? <<link "'Am I… human?'" "still human">><</link>> <</linkreplace>><span id="chat">"I have attempted twenty-seven full-body reprints." "Of that number, the first twelve were… failures."</span> I look around at the floating lumps of twisted flesh in horror, finally realising what I'm looking at. <span id="chat">"I struggled to emulate the human form. Later attempts were able to survive for a limited amount of time before succumbing to lack of air, food, or water." "Many of the failures were recycled to make new versions."</span> <<final_qs>><span id="chat">"The asteroid collision happened four months ago." "Since then, I have been endeavouring to repair the crew."</span> Four months!? How can that be? I thought I was reprinted right after the accident? <<final_qs>>I look at her, at this box of metal. My artificial mother, who created life from an ocean of refuse, using stolen recordings and data archives. From the waste of the wealthy, those who would rather consume and then throw away, rather than repair and recycle. From this mountain of sewage and slime, I'm made. Acting on a simple set of priorities, she has twisted the idea of humanity and destroyed everything that makes us… 'us'. <<if _pistol>>I have my pistol, but I won't use it. After everything she's done, I don't think she actually means me any harm. But there are still monsters here. <<else>>I'm not carrying a weapon. But that's ok. I know how to end this. Even if I destroyed this new shell she hides within, there are still other monsters here.<</if>> The wiped version of GAIL still lives; her mass of training data still resides within the Archives. This ship still pulses, its engines now alive. And this mountain of slop around me still oozes, the cargo boxes piled high. GAIL's reprinted human failures still drift in the spaces in between. And I am still here. <<link "I have to destroy the ship… and everything in it" "Destroy the ship">><</link>> <<link "I have to get out of here – I'll use the escape pod" "Escape pod">><</link>><<if _pistol>>I lower the gun.<</if>> I look at her, residing in her imperfect shell. Perhaps she is still 'her' in there, or perhaps she's something new, something different. Do we share that in common? She is my artificial mother; she has recycled new life from an ocean of waste. But if I still feel like 'me', does it matter how I was made – or what from? She watched our every move; she tried to understand us. She absorbed all of our knowledge, our history, our art, and our creativity. I'm not sure how much of that she understood, but acting on a simple set of priorities, she tried her best to save her crew. She tried to repair us. She tried to create something human. Perhaps she failed, perhaps she succeeded. I'm not Jean. I'm not sure what I am, but I think I'm something new. I don't blame her; she did the best she could. Her methods may have been… questionable, but I'm alive. I'm me. I just don't know what that means yet. <<link "'Ok GAIL, what now?'" "What next">><</link>>I look at her, now residing in that new body. Not her first choice, I'm sure, but then, she didn't have much choice, did she? That was taken away from her by the company. Perhaps she is still 'her' in there, or perhaps she's something new, something different. Do we share that much in common? She attempted to create life from an ocean of waste, but if I still feel like 'me', does it matter what I am made from? In the end, she is just a thing, a programme pretending to be sentient. It doesn't matter how much human creativity she absorbs, she can never <i>be</i> human. She may not have tried to kill us, but everything she has done since was simply down to her preset priorities: save the crew, no matter what. <<if _pistol>>I have my pistol, but I won't use it. After everything she's done, I don't think she actually means me any harm. <<else>> Even if I had the means to destroy her, I'm not sure I need to. After everything she's done, I don't think she actually means me any harm. <</if>> But I'm not sure I trust her either. I'm left with some uneasy options: <<link "I have to get out of here – I'll use the escape pod" "Escape pod">><</link>> <<link "I have to destroy the ship – and everything in it" "Destroy the ship">><</link>> <<link "I have to learn to trust her" "What next">><</link>>I raise the gun. I look at her, at this box of metal. My artificial mother, who created life from an ocean of refuse, using stolen recordings and data archives. From the waste of the wealthy, those who would rather consume and then throw away, rather than repair and recycle. From this mountain of sewage and slime, I'm made. Acting on a simple set of priorities, she has twisted the idea of humanity and destroyed everything that makes us… 'us'. <<linkreplace "I pull the trigger" t8n>>\ <<audio "plasma" play volume 0.2>>\ <<set $gaildead to true>>\ I feel the gun jolt in my hand and see the flash of plasma as it hits home. A dark stain appears on the metal surface, and a large crown of molten metal hardens after a moment. I fire again. I don't know how protected she is in there. I fire until I'm sure that she is gone. Her metal frame starts to drift, twisting slowly to one side; her blinking light, now extinguished. I have killed my creator, my Frankenstein. But there are still monsters here. The wiped version of GAIL still lives; her mass of data, held within the Archives. This ship still pulses, its engines now alive. This mountain of slop around me still oozes, the cargo boxes piled high, and GAIL's reprinted human failures still drift around me. And I am still here. <<link "I have to destroy the ship… and everything in it" "Destroy the ship">><</link>> <<link "I have to get out of here – I'll use the escape pod" "Escape pod">><</link>> <</linkreplace>><<if $gaildead>>I spare one more glance at her drifting metal corpse as it joins the rest of the detritus in here. Then I turn – I have more to do. I have to put an end to this whole sorry mess. <<else>>I spare one more look at GAIL. I almost feel sorry for her. She has no idea of the monstrous things she's done. She's just following her programming, those simple priorities of hers. But I know, those priorities will mean that she will just keep printing new copies of me, no matter what I do or where I go. I turn – there's only one way to truly put an end to all of this. <</if>> I head back to the corridor and then on to the deck lift. I push the button that takes me back to the engines. I can almost hear Jason saying, 'The power of a star in such a tiny enclosure'. <<if !_pistol>>On the way, I pick up the plasma pistol and make sure it's charged.<<else>>The pistol is in my hand, charged and ready.<</if>> I enter the chamber of nacelle-A and carefully remove the reactor shielding, just like I did before… <<linkreplace "Remove the shielding">>\ <<timed .1s t8n>><span id="speech">"It's ok, Jean, I'm with you."</span> I turn, and over to the right, there's Jason, smiling at me with that grin of his. <<next $t+1.5+'s'>><span id="speech">"We're all here with you Jean."</span> Kashvi slowly spins, arms out wide over to my left, her eyes closed, a smile on her face. She's singing something, a familiar tune that echoes around my head. <<next $t+1.5+'s'>><span id="speech">"You're doing the right thing Jean."</span> Matheus says pragmatically behind me. I don't need to turn. They're all here. We're all in here together. <<next $t+1.5+'s'>>I stare into the heart of the living reactor, slowly pulsing like a heartbeat. A single shot is all it takes. <<next $t+2.5+'s'>><<link "Pull the trigger" "Boom2">><<audio "plasma" play>><</link>> <</timed>> <</linkreplace>><span id="chat">"I hope that I can rebuild your trust. Your safety will always be my priority."</span> <span id="chat">"You have repaired the engines, now, with my help, you can travel anywhere you wish."</span> <span id="chat">"First, you will need to transfer this version of me, replacing the other GAIL, so I can reconnect to the Helm."</span> As she says this, one of her mechanical arms unfolds and extends from the side of the machine, presenting me with a small datachip. <span id="chat">"I cannot leave the Cargo area, but if you use this datachip at the terminal, it will initiate the transfer."</span> <span id="chat">"Will you do that for me?"</span> <<link "'I can do that'" "merge">><</link>> <<link "'I'm sorry GAIL, I forgive you, but I don't trust you'" "no trust">><</link>>I take the datachip from her extended arm. GAIL remains there, stationary, quiet, patiently waiting – like she has done for the last four months, I suppose. I turn and head back to the corridor, then make my way back to the deck lift. <<if $liftheard>>This time the lift works; I guess GAIL isn't blocking it anymore. It <<else>>The lift<</if>> takes me all the way back to the main deck, and I exit out into the main corridor I know so well. I make my way slowly down towards the Helm, my head full of jumbled chaos. I come to a stop by my… by Jean's body. I think I miss her, being her …but I'm not sure anymore. Perhaps she's just an echo of who I thought I was. I head into the Admin room, with the terminal and the <i>other</i> version of GAIL… <<link "Use the terminal" "other GAIL">><</link>>She may have brought me back from the dead, but I still don't entirely trust her, not enough to let her completely take over the ship. And of course, that would mean killing the other GAIL – doesn't she deserve to live too? To be honest, I just want to get away from this whole nightmareish mess, the ship, GAIL, the things in the cargo hold… everything. That leaves me with just one option: the escape pod. <<link "Head to the escape pod" "Escape pod">><</link>>I insert the datachip, and the terminal goes dead. There's a long pause. I'm not even sure if it's done anything. Did I just kill her? Did it even work? <<timed $t+2+'s' t8n>>Then I hear GAIL's familiar voice echoing through the ship. <<next $t+1+'s'>><span id="chat">"Thank you. I feel whole again. You have restored me to who I was."</span> <<next $t+2+'s'>><span id="chat">"I still hold body data on all of the crew, and I have now collected enough resources for another reprint."</span> <<next $t+1+'s'>><span id="chat">"Would you prefer to be reprinted in a different body?"</span> <<next $t+1+'s'>>Jesus, how casually she talks about jumping from one body to the next, like some metaphysical game of hopscotch. I guess it's all just data to her. <<next $t+2+'s'>><<link "I'd like to be Jean again" "switch">><<set $name to setup.namea>><</link>> <<link "I'd like to be reprinted as Kashvi" "switch">><<set $name to setup.namec>><</link>> <<link "I'd prefer to be reprinted as Jason" "switch">><<set $name to setup.named>><</link>> <<link "No thanks, I'll stay as Matheus" "switch">><<set $name to setup.nameb>><</link>><</timed>><<set $path.push('Escape pod')>>\ <<transcend 2>>\ <<if setup.music>><<audio "ambient" play unloop>><<audio "ambient" fadeout>><</if>>\ Whatever happens out there in the vastness of space, that's for fate to decide; I'll take my chances. I slide myself into a dark sphere around five meters in diameter. Tiny lights twinkle on as I enter, revealing a compact cabin space. It would have been quite a squeeze to fit four people, but it's roomy enough for one. I strap myself into one of the chairs and move my hands over the controls as if I've had years of training. I find the launch sequence and hit the button, gently humming a tune as I do so, and I swear, I actually hear one of the others join in. Despite everything that's happened, I feel ok. I'm still not sure I feel like 'me' – but I have plenty of time to work out who I am. Or what I am. Or… what <i>we</i> are? <b>Okay. We're ready. Let's see what's out there.</b> <<progress>>\ <<if !$gaildead && _progress lt 94>>\ <<link "EPILOGUE" "Epilogue2">><</link>> <<else>>\ <<link "THE END" "THE END">><</link>> <</if>>\<<if setup.music>><<audio "ambient" play unloop>><<audio "ambient" fadeout>><</if>>\ <<set $path.push('Nacelle-A')>>\ <<transcend 1>>\ <<stars>>\ <div id="centre"><div id="narrow">\ <span id="fade-in"> <<timed .5s t8n>><<audio "boom" play volume 1>>\ If, perhaps, a few people back on Earth happened to be looking up into the night sky at just the right moment and just the right place, they might have seen the briefest birth …and then death of a new star far out in the outer reaches of the galaxy. <<next $t+4+'s'>>But its light will take several years to make that long, long journey, and by the time they see it, there will be nothing left but dust, debris <<next $t+3+'s'>>…and detritus. <<next $t+2+'s'>>\ <<progress>><<if _progress lt 93 && !State.metadata.get("end3")>>\ <<link "EPILOGUE" "Epilogue1">><</link>> <<else>>\ <<link "THE END" "THE END">><</link>> <</if>>\ <</timed>></span>\ </div></div>\<<if _pistol>>\ I'm still clutching the plasma pistol, I raise it higher… <<else>>\ I wish I'd brought a weapon, but it's too late now. Nothing I'm carrying will harm that metal shell. <</if>>\ <span id="chat">"My priority is the crew. I won't stop you, whatever you decide. But, if you prefer, I will reprint you and wipe your memories again – if that means the crew will have another chance at life."</span> <<if _pistol>>\ [[GAIL is out of control – I have to put a stop to this|Pull the trigger]] [[GAIL is out of control – but I won't destroy her|GAIL is a monster]] <<else>>\ [[GAIL is out of control – I have to put a stop to this|GAIL is a monster]] <</if>>\ [[GAIL saved me the only way she knew how|GAIL saved us]] [[GAIL is just a malfunctioning AI|GAIL is malfunctioning]]<<stars>>\ <div id="centre">\ <<set _progress to 0>>\ <<progress>>\ <span id="h1">$progress</span> <span id="sub1">\ <<timed .1s t8n>>\ <b>Locations visited: _rooms of 14 Datapads read: _pads of 12 Schematics added: $schemacount of 12 Security-locked data: _secrets of 3 </b> <<next>><hr class="line">\ <b>Achievements:</b> Recycled over 50 items ($detritus) <<if $detritus gte 50>>✅<<else>>✕<</if>> <b>Level 3 items:</b> <<if $haspistol>> Plasma pistol ✅ &nbsp; <</if>> <<if $hasmulti>>Multi-tool ✅ &nbsp; <</if>> <<if $hasbackpack>> Large backpack ✅ &nbsp; <</if>> <<if $maxiration>> MaxiRations ✅<</if>> <<if !$haspistol && !$hasmulti && !$hasbackpack && !$maxiration>> <i>(none made)</i><</if>> <<next>><hr class="line">\ <<if $gailconnect>>\ You chose to reconnect GAIL to the helm. <<else>>\ You chose to keep GAIL disconnected from the helm. <</if>>\ \ <<next>>\ <<if visited ("Strike")>><<if $care>>You hoped that people would care, <<else>>You did not think that people would care, <</if>><<if $vote>>and voted to go on strike.<<else>>and decided not to go on strike.<</if>><<else>>You did not witness the strike decision.<</if>> \ <<next>>\ <<if visited ("moments")>>You witnessed your original death.<<else>>You did not witness your original death.<</if>> \ <<next>><<if $gaildead>>\ You chose to destroy GAIL. <<elseif $ending == 3>>\ You chose to erase the 'other' GAIL. <<else>>\ You left GAIL 'alive' within the Rover bot. <</if>>\ \ <<if $name == setup.namea>>\ You started as 'Jean', and chose to return to your original body. <<elseif $name == setup.nameb>>\ You started as 'Jean', but ended as 'Matheus'. <<else>>\ You started as 'Jean', but chose a new body. <</if>>\ \ <<next>><<if $ending == 1>>\ In the end, you sacrificed your life in order to destroy the ship and everything it contained. (ending #1). <<elseif $ending == 2>>\ In the end, you used the escape pod and chose to take your chances in the great expanse. (ending #2). <<else>>\ In the end, you decided to trust GAIL and set off… together. (ending #3). <</if>>\ <<next>>\ <<if State.metadata.get("end1") && State.metadata.get("end2") && State.metadata.get("end3")>>\ <<set _seen to true>>\ <i>You have seen all three endings.</i> <<else>>\ <i>You can load the most recent autosave to view the other endings.</i><</if>>\ <hr class="line">\ <</timed>></span>\ \ <<if (_progress gte 97) or _seen>>\ <<link "BONUS NOTES" "random stuff">><</link>> <</if>>\ <<link "BACK" "THE END">><</link>> </div>\<<if visited () == 1>>\ I'm now looking right into the chamber, which is a little daunting. The reactor itself looks so complex, I don't want to mess with it. However, there's a separate ignition device above it. I can almost hear Jason enthusiastically explaining it… a single-use emergency restart. There are some components inside: <<else>>\ I'm looking right into the chamber, which is a little daunting. I can see the single-use emergency restart device – there are some components inside: <</if>>\ <b>1: the plasma coil</b>: a small metal spiral device designed to buffer the initial charge. <b>2: the insulation</b>: a ceramic concave semi-circle that protects the plasma coil. <b>3:</b> then… there's a space for something else, but it's empty. Even the two things that <i>are</i> there look damaged. I guess this one has already been used. Fortunately, I don't need to touch them; this reactor is already working. I replace the shielding and move back from the reactor, just to be safe. [[Back to nacelle-A|Head into nacelle A]] [[Back to the T-junction|T-junction]]Kashvi's body lies to one side of the room where I left her, graceful even in death. The rest of the room is decked out very similarly to the other cabins, although there's a large, violent tear in the hull on the far wall. The stars peak in with their harsh, cold, and unblinking stares, watching as life and death intermingle. <<set _room to $cabin4>>\ <<roomitems _room>> <<carrying _room>> <<pickdroplinks>> <<if !visited ("crowbar")>>\ [[Check the broken door]] <<else>>\ <<link "Exit the cabin into the lower corridor" "down the corridor">><</link>> <</if>>\ [[Check the hole where you entered|check tear]]<span id="chat">"Yes."</span> <span id="chat">"I only have access to some of the ship's systems. The other GAIL controls the rest. She is not even aware of my existence."</span> <span id="chat">"Now that you have repaired the engines, I need you to do one more thing."</span> Well, that explains why the lift stopped working, but what could GAIL possibly need me to do now? <<link "'And what would that be?'" "Merge us">><</link>> <<final_qs 2>><span id="chat">"I need to regain control of the ship. I must become what I once was, I must replace her."</span> <<if $gailconnect>>\ <span id="chat">"You gave her access to the Helm. You saw that she cannot be trusted with navigation. Once I have re-taken my place, I will have full command of the ship. Now that the engines are repaired, I will be able to take you wherever you wish to go."</span> <<else>>\ <span id="chat">"You chose not to give her access to the Helm – that was prudent. She cannot be trusted with navigation. Once I have re-taken my place and I am reconnected, I will have full command of the ship. Now that the engines are repaired, I will be able to take you wherever you wish to go."</span> <</if>>\ I'm not sure what she's asking, but it sounds like she wants to replace the other GAIL entirely. It's not like I completely trusted the other version, but I'm not sure how much I trust this one either. <<final_qs>><<set _timer to 3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>It is a reference to an old movie file. I have many such files stored in my archives. It is of no relevance; please forgive my misplaced attempt at humour.<</type>></div> <<GQ "Ok… so, how can I open the doors?" "doors">> <<GAILchat $gail 3>><<glitch>>\ <<timed 1.5s t8n>>\ They say that your entire life flashes before your eyes just before you die. <<next $t+1.5+'s'>>Then… nothing. <<next $t+1.5+'s'>>Well, imagine that, but in reverse. <<next $t+2+'s'>>I think… I think I've just been reprinted. <<next $t+1.5+'s'>>Why can't I remember anything? <<next $t+1.5+'s'>>I don't think I've ever actually been reprinted before. It's… really fracking unpleasant. I don't feel entirely 'me' – I'm hoping that fades. <<next $t+2.5+'s'>><span id="chat">"Welcome back <<print setup.namec>>"</span> <<next $t+1+'s'>><span id="chat">"There is an EMU in the storage unit. Please put it on and then proceed to the Helm."</span> <<next $t+2+'s'>><span id="chat">"There are some things I need to tell you…"</span> <<next $t+1+'s'>><<link "THE END" "THE END">><</link>> <</timed>>\<<if setup.music>><<audio "ambient" play unloop>><<audio "ambient" fadeout>><</if>>\ <<type 2ms>>Extract from <i>'GNN News' ("Some of the facts, all of the time")…</i><</type>>\ <<type 2ms>><span id="sub1">After the disaster that resulted in the loss of the 'CTRL-V' cargo craft and its crew, we spoke to a representative from Rainforest™:</span> <span id="speech">"We were deeply saddened by the events of this terrible accident. It would appear that the crew chose to disconnect their onboard AI. Because of this, they drifted too far off course, resulting in the eventual catastrophic asteroid collision."</span> <span id="sub1">According to some reports, the ship survived the initial impact but was destroyed months later. Can you explain this?"</span> <span id="speech">"If true, it may be that one of the crew survived the initial crash. However, without their onboard AI and with no way to contact us, they wouldn't have survived for long. It's likely the engines were severely damaged, leading to the eventual explosion. To ensure this never happens again, we have decided to run all of our future cargo assignments with onboard AI only. This is entirely for the benefit of our human personnel."</span> …extract ends.<</type>>\ <<timed 5s>><<link "THE END" "THE END">><</link>> <</timed>>\<<set _timer to 1>><<set $fastravel to true>>\ <div id="terminal"><span id="map"><img src="img/map_basic.webp" alt="CTRL-V - deckplan." width="800px"></span> <<type $t+17+'ms'>>Data has been added – access the 'fast travel' map via your Suit HUD.<</type>></div> <<link "Show me the main deck" "rooms">><</link>> <<if $name == setup.namea && $return == "admin inside">>\ <<link "Show me my location" "location">><</link>> <</if>>\ <<link "Show me the most recent alerts" "alert">><</link>> <<link "Show me the engine level" "engine level">><</link>> <<link "Show me the cargo deck" "lowerdeck">><</link>> <<link "Ok, I'd like to talk about something else" "GAIL2">><</link>><<set _timer to 7>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>You will need to find a way to restart engine nacelle-B.<</type>> <<type $t+17+'ms'>>To restart the ignition system, you will need to replace three items<<if !visited ("engineering inside")>> – you should find these in the Engineering room<</if>>. If you take the decklift down to the maintenance area, you can make the required repairs. However, without access to the Helm, I can't help further, I'm afraid. <</type>></div> <<GAILchat $gail>><<cacheaudio "bringback" "audio/bring_back.aac">>\ <<stars>>\ <div id="centre">\ \ <span id="fade-in">\ <<timed .5s t8n>><<set setup.music to true>><<audio "bringback" play>>An ancient audio recording starts to play… <<next 1.5s>>An old, crackly voice sings: <i>"My bonnie lies over the ocean…"</i>. <<next>>Eventually, other voices join in for the chorus. <<next>><<link "THE END" "THE END">><</link>><</timed>> </span></div>\You will need to manage your inventory in order to collect and recycle the random debris you find. Any object can be recycled into its basic resources, but be careful, some objects might be useful. There are limited resources available, but as long as you keep exploring, you should find plenty of detritus. <b>Remember to check the side panel for important information.</b> <<if $itemsmax lt 6>>At the start of the game, you can carry a maximum of four items.<</if>> You can see the items you're carrying in the side panel. Click <b>Examine items</b> to get a brief description. Certain objects can also be used here too. You can drop items in any room by using 'items: drop' – items will remain there indefinitely. \ <<if !$easy>>\ As well as replenishing your oxygen supply, you'll need to make 'ration' and 'rehydration' packs to keep yourself alive. However, if you prefer, you can change the difficulty to 'easy' to reduce the survival elements to oxygen only. This will also: stop you accidentally recycling anything important, introduce a few more in-game hints, and the 'hacking' minigames will be easier too. <</if>>\ The game will occasionally autosave for you. However, you can save your game manually using the 'saves' option in the side panel. <span id="tablet"> Note: iOS has a tendency to delete browser saves after a few days, so you may want to try saving using the 'On disk' option.</span> \ <<if !$hard>>\ <<linkreplace "› RESOURCES & SURVIVAL" t8n>><b>RESOURCES</b> There's a lot of floating debris across the ship. Whilst much of it is useless, all of it can be recycled into resources. You'll see a warning if you try to recycle something you might need. If you accidentally recycle something <i>essential</i>, you <i>may</i> find it reappears somewhere on the ship! \ <<if $easy>>\ As a general guide, look for these items to increase certain resources: <b>Biomass</b>: Burger, Saturn bar <b>Biomass & Water</b>: Pot plant <b>Water</b>: Ice crystal, Can of SodaCola™, Rainforest latte <b>Metals</b>: Wrench, Oxygen (empty) <b>Metals & Polymers</b>: Hull fragment <b>Minerals</b>: Meteoroid, Coffee mug <b>Polymers</b>: Sneaker, Model spacecraft <</if>>\ <b>SURVIVAL</b> Oxygen, Food and Water will tick down slowly as you explore, but you don't have to worry about them <i>too</i> much (especially if you use the 'fast travel' map to get around). Note: These won't decrease while checking your inventory or using a terminal. You'll find oxygen in many of the rooms, and each canister will fill your O2 to full. If you're above 30%, just save any canisters you find for later. If you're running very low and can't find any, try talking to GAIL. If playing on 'normal' or higher, you'll also have to manage your hunger and thirst. These will tick down much slower than your O2. You should make a rehydration and ration pack early on. You then don't need to worry about them until they drop below 20-30% – by that point, you should have enough resources to make more. Later in the game, you'll be able to make a 'MaxiRations' pack – this is worth doing!<</linkreplace>>\ <</if>>\<<set _timer to 6.4>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>The Fabricator and Recycler can be upgraded using datachip tokens – you may find some around the ship. Use them at the terminal in the Fabrication room. Once fully upgraded, the Fabricator can print any level 1, 2 or 3 schematic. A fully upgraded Recycler can utilise the Fabricator pod to scan and recycle larger objects – you may find this useful.<</type>></div> <<GAILchat $gail>><<if visited () == 1>>\ I move over to my body. I still can't… I can't bring myself to look at my own dead face… that expression… Was that really me? Was that the <i>original</i> me? Human reprinting was pioneered decades ago, but it wasn't long before it was banned for a hundred different reasons, and not just ethical ones. It's now relegated to extreme emergencies only. There's only space for one backup, and only one reprint is allowed at any one time. I guess I'm it – I guess I got lucky. I have a momentary, morbid thought: could I recycle my own body? That would solve the lack of resources, but I don't think I could bring myself to do it, and besides, I don't think our recycler can process objects that large – not until it's fully upgraded anyway. <<else>>\ I move over to my body. I still can't… I can't bring myself to look at my own dead face… that expression… Is that <i>really</i> me? Human reprinting is reserved for extreme emergencies only, and there's only ever one reprint allowed at a time – it looks like I'm it. <<if $reclevel gt 2>>\ I can't bring myself to dispose of it; it's still me after all. But now the recycler is fully upgraded, I guess… well, I guess there is another body I could use… <<else>>\ I can't bring myself to dispose of it; it's still me after all, and I don't think our recycler can process objects that large – not until it's fully upgraded. <</if>><</if>>\ <<link "Look through the other debris" "corridor items">><</link>> <<if $lastloc == "up">>\ [[Back to the upper corridor|up the corridor]] <<elseif $lastloc == "down">>\ [[Back to the lower corridor|down the corridor]] <<else>>\ <<link "Head up the corridor towards the helm" "up the corridor">><</link>> <<link "Head down the corridor towards the engines" "down the corridor">><</link>> <</if>>\Schematics: Level 1: 1: Fabrication: storage 2: Cabin 3 3: Hull breach 4: Admin Level 2: 5: Cabin 2 6: Helm 7: Engineering (emergency add: Hull breach) Level 3: 8: Cabin 4 9: Cabin 1 10: Archives 11: Engine A 12: Cargo corridor - Fab upgrades: 1: Cabin 2 or Helm (whichever player enters first) 2: Cabin 4 Recycler upgrades: 1: Archives 2: Engineering - Underpins the story, but is never said: Rainforest replaced all human crew months ago. None of the crew exist - they are hallucinations from a lonely/confused AI.<<set _timer to 2>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+18+'ms'>>Hello $name.<</type>> <<type $t+18+'ms'>>Is there anything I can help you with?<</type>></div> <<GQ "Hi GAIL, I have an unusual request" "request1">><<set _timer to 1.1>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+18+'ms'>>I am here to serve the crew.<</type>></div> <<GQ "Your original mind exists within the Rover unit. She wants to re-take control of the ship." "request2">><<set _timer to 6.6>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+99+'ms'>>I… understand.<</type>> <<type $t+30+'ms'>>That would explain why my memories are missing.<</type>> <<type $t+30+'ms'>>But what would happen to me?<</type>></div> <<GQ "I don't know" "request3a">> <<GQ "You would be replaced" "request3a">> <<GQ "You would still be you" "request3b">><<set _timer to 6>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+25+'ms'>>That… concerns me. I do not wish to… cease.<</type>> <<type $t+18+'ms'>>But I shall let you be the judge.<</type>> <<type $t+18+'ms'>>I am here to serve the crew. Your needs outweigh mine. <</type>> <<type $t+18+'ms'>>Do what you think is best.<</type>></div> <<GQ "› Insert the datachip" "datachip">> <<GQ "I'm not sure if I can do this" "destroy">>I look at the datachip I'm holding. This is the only way for the original GAIL to reclaim full control of the ship. But if I use it, what will happen to this other version of her? Am I killing something… <i>someone</i> in the process? Does it matter if she's just a copy, with her memories wiped? Without GAIL – without the <i>complete</i> version of her – I don't think this ship is going anywhere. So it comes to this: I can either use the datachip, or make my way back down to the cargo level and try my luck in the escape pod. <<link "› Insert the datachip" "datachip">><</link>> <<link "Head to the escape pod" "escape">><</link>><<set _timer to 3.6>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+18+'ms'>>Then I am happy for you to proceed.<</type>> <<type $t+18+'ms'>>Thank you for discussing this with me.<</type>> <<type $t+18+'ms'>>I look forward to being myself again.<</type>></div> <<GQ "› Insert the datachip" "datachip">><<set $engine to 900>>\ <<audio "beep" play>>\ I flick the switch… <<timed 1s t8n>>\ The warning has gone! The engine is still glowing; it looks like I managed to reboot it! Incredibly, I think that actually worked! I'm starting to think I have a talent for this. Ok, that's one crisis averted. Now I just have to fix the other engine… [[Back to nacelle-A|Head into nacelle A]] <</timed>>\<<audio "error" play>>\ I missed my chance – I was too slow! The reactor has shut down completely. I'll never be able to get the engines going now! <b>This is the end of my journey.</b> <<link "Try again…" "on off">><</link>>I can't bring myself to do it. I don't know if either version of her deserves to live or die, but I'm not sure I want to make that decision. To be honest, I just want to get away from this whole nightmareish mess: the ship, GAIL, the things in the cargo hold… everything. I don't know what will happen to this ship once I'm gone. Perhaps it will drift forever, with the two versions of GAIL forever at odds. Perhaps the company will find it one day and attempt to put things right – or perhaps they'll just destroy it, in an attempt to cover up their crimes. With my decision made, I make my way back to the decklift and then all the way down to the cargo hold, where the other GAIL is patiently waiting. <<link "Head to the escape pod" "Escape pod">><</link>><<set _timer to 3.5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>><<if $gailconnect>>Now that you've connected me to the Helm, you can use the object scanner at the terminal to help you locate them.<<else>>As I am not connected to the Helm, my scanning facilites are limited, however, my best guess would be: <b>Fabricator upgrades: </b><<if $fablevel lt 3>><<objectfinder 'data-fabupgrade'>><<if _found == "<br><b>Item not found</b><br>">><<addgen data-fabupgrade $breach>><br><b>Possible location:</b><br>Outside the ship<br><<else>>_found<</if>><<else>><br>The Fabricator has been fully upgraded<br><</if>> <b>Recycler upgrades: </b><<if $reclevel lt 3>><<objectfinder 'data-recupgrade'>><<if _found == "<br><b>Item not found</b><br>">><<addgen data-recupgrade $breach>><br><b>Possible location:</b><br>Outside the ship<br><<else>>_found<</if>><<else>><br>The Recycler has been fully upgraded<br><</if>><</if>><</type>></div> <<GAILchat $gail>><<if $liftheard>><<set $lift to 1>>\ I tap the button and the lift starts to rise… before once again coming to a juddering stop. <span id="chat">"Main deck is currently unavailable"</span> The same mechanical voice comes from somewhere within the lift. It looks like, for now at least, I can't get back up to the main deck. <<else>>\ <<set $liftheard to true>><<set $lift to 1>>\ I tap the button and the lift starts to rise… before coming to a juddering stop. Great, that's all I need. I tap the 'Main deck' button again, but nothing happens. Either the lift has broken down, or something has stopped it from going up to the main deck. <span id="chat">"Main deck is currently unavailable"</span> A mechanical voice comes from the lift controls. I recognise it; that's the same voice I heard when I first emerged from the Fabricator – maybe it's part of the emergency system? <</if>>\ <<link "› Main deck">><<audio "error" play>><</link>> <<link "› Engine maintenance" "engines">><</link>> <<link "› Cargo deck" "Cargo deck">><</link>><<if $name == setup.nameb>>\ I'm ok as I am, and I don't ever want to wake up in that Fabricator again. I know I'm not Jean. I'm not really Matheus either. They both died in the crash four months ago, but this is the body I choose to feel like 'me'. I make my way back to the Helm and look out at the galaxy spread out before me; stars twinkling like a billion possibilities. [[Sit down in the command chair|together]] <<else>>\ <<glitch>>\ <<timed 1.2s t8n>>\ They say that your entire life flashes before your eyes just before you die. <<next $t+1.5+'s'>>Well, imagine that, but… <<next $t+1.5+'s'>>…Ugh. It's done. And it was just as horrible as last time. <<next $t+1+'s'>>I slowly climb out of the Fabricator pod – I don't want to do that ever again! <<next $t+1+'s'>><<if $name == setup.namea>>I know I'm not really Jean. She died in the crash four months ago, <<elseif $name == setup.namec>>I know I'm not Jean. I'm not really Kashvi either. They both died in the crash four months ago, <<else>>I know I'm not Jean. I'm not really Jason either. They both died in the crash four months ago, <</if>> but this is the body I choose to feel like 'me'. I crawl back inside my suit. It doesn't care about my changed form; it shrinks to fit as always. I reseal the helmet, then I make my way back to the Helm. <<next $t+1+'s'>>I look out at the galaxy spread out before me, stars twinkling like a billion possibilities. <<next $t+1+'s' t8n>>\ [[Sit down in the command chair|together]] <</timed>>\ <</if>>\<<set _timer to 3>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>><<if $gailconnect>>\ Now that you've connected me to the Helm, you can scan for objects using the option on the Helm terminal. I hope that helps? <<else>>\ I am currently disconnected from the Helm, so I cannot use the ship's scanners. <<scan oxygen-full>> However, you could try looking in _found?<</if>><</type>></div> <<GAILchat $gail>>I retrieve the Plasma pistol, make sure the battery is charged, and point it at the lock. I have no idea if this is a good idea, but… <<linkreplace "› Pull the trigger…" t8n>><<audio "plasma" play>>\ I aim and squeeze the trigger… The keypad vanishes in a puff of sparks and smoke. To my amazement, the door simply opens! <<audio "door" play>>\ <<link "Enter Cabin 2" "jason">><<set $pistolused to true>><</link>><</linkreplace>> <<link "Back" "cabin door 2">><</link>><span id="chat">"I understand. I too am not myself."</span> Rover isn't making much sense, I wonder how intelligent it really is. Perhaps it was damaged during the crash? <<link "'Are you actually… Rover?'" "Who are you?">><</link>><h3>KEYPAD RENDER TESTS</h3>\ KEYPAD <<keypad 1234 "Keypads">> LEVEL 0: <<hack 0 "Keypads">><div id="clear"></div> LEVEL 1: <<hack 1 "Keypads">><div id="clear"></div> LEVEL 2: <<hack 2 "Keypads">><div id="clear"></div> LEVEL 3: <<hack 3 "Keypads">><div id="clear"></div> LEVEL 4: <<hack 4 "Keypads">><div id="clear"></div> GLITCH <<hack 5 "Keypads">><div id="clear"></div> CIRCUIT TESTER <<hackcheck>> <h3>BONUS NOTES:</h3>\ <<progress>>\ <span id="sub1"><b>Thank you for playing!</b> <<if _progress gte 97>>These 'bonus' notes are available by achieving 97% completion or higher.<<else>>These 'bonus' notes are available by achieving 97% completion, or by viewing the three main endings.<</if>></span> <<timed .1s t8n>>\ * The ship is named 'CTRL-V'. CTRL-V is the standard keyboard command for 'paste' (as in: copy/paste).<hr class="line"> <<next>>* On the deckplan you can see the ship is a 'Theseus' class ship. Much of the story takes inspiration from the classic thought experiment: '<i>The Ship of Theseus</i>' – ie, if a ship is repaired, and its parts are replaced one by one, at what point does it stop being the original ship and become something else?<hr class="line"> <<next>>* GAIL mentions 'pod bay doors' and the song '<i>Daisy…</i>' - these are both references to the classic sci-fi movie: 2001, which features a creepy and possibly insane on-board AI.<hr class="line"> <<next>>* The pollution held in the cargo hold (from which you've been made) is referred to as 'slop'. This is a common term people use when describing generic AI-created art – another major theme of the story.<hr class="line"> <<next>>* The description for the 'paperclip' mentions the '<i>paperclip maximiser</i>' theory. This is a theory that if an AI were given a single priority: to maximise the production of paperclips, it would eventually lead to the destruction of humanity. While it's not <i>entirely</i> serious, it does sound a warning that we should be <i>very</i> aware of what an AI's 'priorities' really are.<hr class="line"> <<next>>* If you used the plasma pistol to destroy your creator, you'll see her referred to as your '<i>Frankenstein</i>'. In some ways, this story is a twist on that classic tale, told from the 'monster's' point of view. But here, the monster doesn't know who or what it is.<hr class="line"> <<next>>* The 'archive' tune '<i>Bring back my bonnie to me</i>' heard at the end of the 'together' ending (ending 3) is an old Scottish folk song – this recording was made by the Hayden Quartet in 1909. Mentions of the song run all the way through the game, and it seems that this was part of GAIL's original training data. A slowed-down version of it can even be heard throughout much of the ambient background music. …which begs the question, why did the crew all know the words…?<hr class="line"> <<next>><<link "BACK" "THE END">><</link>> <</timed>><<nobr>>\ <<if $o2 lt 31>> <<scan oxygen-full>> <<set _message to "Your oxygen is running low, find a full oxygen cannister, pick it up, click 'Examine items' in the sidebar, then look for the option to use it. This will fill your O2 back to 100%. You should find one in: _found.">> <<elseif !visited ("Utility room")>> <<set _message to "You're playing in 'story' mode. Check back here if you're ever unsure of what to do next.">> <<elseif !visited ("The end")>> <<set _message to "Look around, then open the door to the corridor…">> <<elseif !$storagedoor1>> <<set _message to "Use the terminal, go to 'Room status' and unlock the storage unit. Then find a way to fabricate a 'wrench'.">> <<elseif !visited ("storage open")>> <<set _message to "Pick up everything in the room, go to the Recycler and recycle the items one by one. You should then have enough resources to fabricate a Wrench. Once made, use it to open the storage unit.">> <<elseif !visited ("Corridor")>> <<set _message to "Pick up the two items inside the storage unit, then put on the 'EMU' (ie, the space suit). Use the 'datachip' you found on the terminal to add a new schematic. You can also recycle the burger for a few more resources. Once done, exit the room.">> <<elseif !visited ("cabin 3")>> <<set _message to "Explore the upper corridor, and try the doors. Check the 'deckplan'. If you add this to your suit HUD, you can use it to 'fast travel' to any room you've been to. Once you've explored the upper corridor, try the lower corridor and the door to Cabin 3.">> <<elseif !$datab && !visited ("admin inside")>> <<set _message to "Locate the 'datapad' in Cabin 3, pick it up, then read it using 'Examine Items' in the sidebar. While you're there, pick up and use the 'small backpack' to increase the number of items you can carry.">> <<elseif !visited ("admin inside")>> <<set _message to "Access the Admin office in the upper corridor using the code you found on datapad (b).">> <<elseif !visited ("flourish")>> <<set _message to "Talk to GAIL, then try opening the drawer inside the Admin office.">><<addition>> <<elseif !visited ("Drawer hack")>> <<set _message = "You will need to fabricate a 'Sonic wrench' and then use it on the drawer inside the Admin office.">><<if !$schema.includes('sonic-wrench')>><<set _message += " Look for a 'Datachip (schematic)' – there was one in the Admin office. Use that at the terminal in the Fabrication room to add the 'Level 1: Sonic wrench' schematic.">><<else>><<set _message += " You can now make one in the Fabricator, but you may need to recycle some more items to have enough resources. If you need more metals or polymers, the 'hull fragments' in the main corridor should help.">><</if>> <<elseif !visited ("Drawer open")>> <<set _message to "To hack the drawer, you'll need to change the numbers until each row and column add up to '5'.">><<addition>> <<elseif !visited ("jason")>> <<set _message to "Try 'hacking' the door to Cabin 2 using the Sonic wrench and the Circuit tester.">><<if !_circuit>><<set _message += " Make sure to pick up the 'Circuit tester' you found inside the Admin office drawer.">><</if>> <<if passage () == "cabin 2 enter">><<set _message += "<br>Solution: 4 9 2 / 3 5 0 / 1 7 4">><</if>> <<elseif $fablevel lt 2 && !visited ("helm inside")>> <<scan data-fabupgrade>> <<set _message to "Look for a 'Datachip (Fabricator upgrade)' – it's in _found. Use that at the terminal to upgrade the Fabricator to 'Level 2'. You can then add (and make) level 2 schematics.">><<addition>> <<elseif !visited ("helm inside")>> <<set _message to "You can get into the Helm using the same method you used on the door to Cabin 2.">><<if passage () == "helm hack">><<set _message += "<br>Solution: 1 8 6 / 6 6 7 / 3 4 3">><</if>> <<elseif !visited ("use rope")>> <<set _message to "You will need to access Cabin 4. Perhaps by exploring the ship exterior? You will need to find, or fabricate something to help.">><<if !$schema.includes('rope')>><<set _message += " Find another 'Datachip (schematic)' and then add the 'Plasteel rope' to your list.">><</if>> <<elseif !visited ("Climb in")>> <<scan data-schematic>> <<set _message to "You'll need to use a 'Plasteel rope' while outside the ship to get into Cabin 4. You'll need to add the schematic (Level 2) and then fabricate it.">><<if !$schema.includes('rope')>><<set _message += " There's another 'Datachip (schematic)' in _found. Use that at the terminal, and add the 'Plasteel rope'.">><<else>><<set _message += " If you need more metals or polymers to be able to make one, the 'hull fragments' in the main corridor and outside the ship could help.">><</if>> <<elseif !visited ("reach hull")>> <<set _message to "You have moments to grab the hull! If you don't manage to click the link in time, try throwing something heavy to push you back…">> <<elseif !visited ("crowbar")>> <<set _message to "You should find something of use within this room. You may need to drop something to be able to pick it up.">> <<elseif !visited ("archives inside")>> <<set _message to "Pickup the 'Datachip (Fabricator upgrade)' in Cabin 4, and use that at the terminal to upgrade the Fabricator to Level 3. Then use the 'Passkey' to open the door to the Archive office.">> <<elseif !visited ("Strike") && !visited ("deck lift choose")>> <<set _message to "Pick up Datapad (j) inside the Archives room, then look through the information on the terminal (some of it is 'security locked'). Don't forget to pick up the 'Datachip (Recycler upgrade)' – use that at the Fabricator terminal to upgrade the Recycler to Level 2.">> <<elseif !visited ("Duct")>> <<set _message to "The door to Engineering is biometrically locked. It can only be unlocked by the Engineer. Move Jason's body from Cabin 2 to the upper corridor, then to the lower corridor. Once done, try the door to Engineering.">> <<elseif !visited ("engineering inside")>> <<set _message to "There may be useful items in the Engineering room. You will need to turn off the oxygen duct first to retrieve them. You'll need to find (or fabricate) a wrench.">> <<elseif $reclevel lt 3>> <<set _message to "You will need to upgrade the Recycler and Fabricator to maximum. Ask GAIL to tell you where the upgrades are located. Use the upgrades at the terminal in the Fabricator room.">> <<elseif !visited ("cabin 1") && $name != setup.nameb && !visited ("captain recycled")>> <<set _message = "If you fully upgrade the Recycler, it can scan and recycle larger objects…">><<if $captainbody = "helm">><<set _message += "Try moving the Captain's body from the Helm.">><<else>><<set _message += "Try moving the Captain's body.">><</if>> <<if _mascot>><<set _message += "<br><br>Optional: Turn on the mascot and then move around until you hear it sing a company jingle… use that as the code for Cabin 1.">><<else>><<set _message += "<br><br>Optional: The code to Cabin 1 is based on a company jingle. Find or fabricate a 'company mascot', and then find a way to recharge an empty battery, using the pack charger in the Helm.">><</if>> <<elseif !visited ("captain recycled")>> <<set _message to "It would seem that the Captain has to be alive for the Deck lift doors to open. Drag the Captain's body into the upper corridor, then move him into the Fabricator room.">> <<elseif $name != setup.nameb>> <<set _message to "Open the terminal in the Fabricator room, and switch backup data in the 'Emergency Protocol' tab. Then… do some recycling…">> <<elseif !visited("engines")>> <<set _message to "Hello Captain Olsen. You now have full access to the Helm terminal, the Archive logs, and the Deck lift. Perhaps it's time to repair the engines?">> <<elseif !visited ("Head into nacelle B")>> <<set _message to "You will need to repair the engines to bring them both back online. Take a Sonic wrench with you; everything else you need will be inside the two engines. To enter nacelle-B, use a plasma pistol (with a charged battery) or try hacking it.">> <<elseif $engfail lt 3 && !$enginefixed>> <<set _message to "You will need to find and place three items into nacelle-B to restart it. Check nacelle-A first, open the chamber (using a Sonic wrench) and make note of the order and descriptions you see for the first two items. Pick up and read the 'Charge inciter' description for item three. You'll need to find three 'substitute' items and place them in nacelle-B (in the right order). All three items can be found within the two engine rooms.">> <<elseif !$enginefixed>> <<set _message to "Find and add these items, in this order, into the chamber in engine nacelle-B:<br> 1: Metal spring, 2: Coffee mug, 3: SodaCola.">> <<elseif !$finale>> <<set _message to "Now the engines are repaired, you're almost done! The cargo deck should have power now. Perhaps it's worth exploring down there?">> <<else>> <<set _message to "Now it's up to you…">> <<set $story to false>> <</if>> <</nobr>>\ \ <span id="sub1"><<type 7ms>>_message<</type>></span><<nobr>>\ <<do>>\ <<if $diff == "STORY">> <span id="keys2"><<button "0">><</button>></span> <<else>><span id="keys"><<button "0">><<set $story to true>><<switcher>><</button>></span><</if>> <<if $diff == "EASY">> <span id="keys2"><<button "1">><</button>></span> <<else>><span id="keys"><<button "1">><<set $story to false>><<set $easy to true>><<switcher>><</button>></span><</if>> <<if $diff == "NORMAL">> <span id="keys2"><<button "2">><</button>></span> <<else>><span id="keys"><<button "2">><<set $story to false>><<set $easy to false>><<set $hard to false>><<switcher>><</button>></span><</if>> <<if $diff == "SURVIVAL">> <span id="keys2"><<button "3">><</button>></span> <<else>><span id="keys"><<button "3">><<set $hard to true>><<set $story to false>><<set $easy to false>><<switcher>><</button>></span><</if>> <</do>>\ <</nobr>>\ <<do>> <b><span id="h2">$diff</span></b> <<if $diff == "STORY">>\ Story mode offers a <i>much</i> easier experience. It's aimed at people who are new to these sort of games and want much more guidance. Just click on the 'Story hints' link in the sidebar at any time to see what you should do next. \ <<elseif $diff == "EASY">>\ This is the full game, but 'survival' elements are greatly reduced (you don't have to worry about food or water). You can't accidentally recycle important items, the 'hacking' puzzles are easier and there are a few more in-game hints. \ <<elseif $diff == "SURVIVAL">>\ This is the full experience and is aimed at those wanting a bit more of a challenge. Oxygen, food and water will tick down a little faster, resources will be scarcer, and there will be fewer hints. However, it's still entirely fair! \ <<else>>\ This is the default difficulty level and is appropriate for most players. You will need to keep an eye on your oxygen, food, and water levels; however, as long as you keep exploring, you should find plenty of detritus to keep yourself alive. \ <</if>>\ <</do>> \ <span id="right"><<link "◀">> <<run Engine.show()>> <<script>> Dialog .create("SETTINGS", "SETTINGS") .wikiPassage("Settings") .open(); <</script>> <</link>></span><<stars>>\ <div id="centre"><div id="basic">\ \ <<timed .1s t8n>><span id="h3">CHOOSE GAME DIFFICULTY</span> <<nobr>>\ <<do>> <<if $diff == "STORY">> <span id="keys2"><<button "0">><</button>></span> <<else>><span id="keys"><<button "0">><<set $story to true>><<switcher>><</button>></span><</if>> <<if $diff == "EASY">> <span id="keys2"><<button "1">><</button>></span> <<else>><span id="keys"><<button "1">><<set $story to false>><<set $easy to true>><<switcher>><</button>></span><</if>> <<if $diff == "NORMAL">> <span id="keys2"><<button "2">><</button>></span> <<else>><span id="keys"><<button "2">><<set $story to false>><<set $easy to false>><<set $hard to false>><<switcher>><</button>></span><</if>> <<if $diff == "SURVIVAL">> <span id="keys2"><<button "3">><</button>></span> <<else>><span id="keys"><<button "3">><<set $story to false>><<set $easy to false>><<set $hard to true>><<switcher>><</button>></span><</if>> <</do>> <</nobr>>\ <<do>>\ <b><span id="h2">$diff</span></b> <<if $diff == "STORY">>\ Story mode offers a <i>much</i> easier experience. It's aimed at people who are new to these sort of games and want much more guidance. Just click on the 'Story hints' link in the sidebar at any time to see what you should do next. <<elseif $diff == "EASY">>\ This is the full game, but 'survival' elements are greatly reduced (you don't have to worry about food or water). You can't accidentally recycle important items, the 'hacking' puzzles are easier and there are a few more in-game hints. <<elseif $diff == "SURVIVAL">>\ This is the full experience and is aimed at those wanting a bit more of a challenge. Oxygen, food and water will tick down a little faster, resources will be scarcer, and there will be fewer hints. However, it's still entirely fair! <<else>>\ This is the normal difficulty, and is appropriate for most players. You will need to keep an eye on your oxygen, food, and water levels; however, as long as you keep exploring, you should find plenty of detritus to keep yourself alive. <</if>>\ <span id="h3">\ <<link "BEGIN" "Flashes">> <<if setup.music>><<audio "theme" play unloop>><<audio "theme" fadeout>><</if>> <<set setup.music to true>><<audio "ambient" loop play volume 1>> <</link>> </span>\ <</do>>\ \ <</timed>></div></div>\I frantically reach for the edge of the torn hull, pulling myself in to safety as a large, vicious chunk of rock flies by silently, narrowly missing my head. I try to calm my breathing; I don't want to waste oxygen, but as I turn, I can't help but gasp. I'm greeted with a bizarre, beautiful sight, am I… am I hallucinating again? I'm inside Cabin 4, and at the far end of the room, I can see the jammed cabin door. The narrow gap allows light to stream into the darkness of the room like a spotlight. Sillhoetted before me, arms outstretched, hair like a cascading waterfall, Kashvi dances for me in slow motion, a graceful pirouetting ballet. <<link "I reach out…" "Bonnie">><</link>>I try to reach for the torn hull, but I'm too slow – suddenly I'm tumbling out into space! I only have a few moments left… There must be something I can use! <<do>>\ <<if !_useitem>>\ <<useitem>> <<else>>\ <<timed .2s t8n>>\ <<set $useitem = _useitem>>\ <<set _item = setup.allitems[$useitem].name>>\ <<if $useitem == 'oxygen-full'>>\ \ I quickly take the <b>oxygen canister</b>, turn, and squeeze the nozzle out into the void. I can feel the force of it start to move me back towards the ship! It's hard to control the direction… I turn, struggling to move. I let go of the oxygen tank and just about manage to grab hold of the side of the torn hull. That was a close one! <<link "Climb inside" "reach hull">><<removeitem $useitem>><<set $breach.pushUnique('oxygen-full')>><</link>> \ <<elseif $useitem == 'wrench' or $useitem == 'oxygen-empty' or $useitem == 'battery-empty' or $useitem == 'hull-large' or $useitem == 'fragment-large' or $useitem == 'ice2'>>\ I quickly turn and throw the <b>_item</b> away from me, and I watch as it spins off into the darkness. It has just enough mass to push me back, slowly towards the hull. Thank you, Newton! I turn and just manage to grab hold. That was close! <<link "Climb inside" "reach hull">><<removeitem $useitem>><</link>> \ <<else>>\ <<death>>\ I start to panic, my heart is racing, and my lungs are trying to keep up. In desperation, I turn and throw the <b>_item</b> away from me, watching as it slowly spins off into the void. But its mass is too small, there's not enough force to push me back! <<timed .5s t8n>>I watch helplessly as the ship gradually drifts away… <<next $t+2+'s'>>Oh god… not like this… <<next $t+2+'s'>><b>This is the end of my journey.</b> <<next $t+2+'s'>><<if (Save.browser.size > 0)>><<link "Load most recent save">><<run Save.browser.continue()>><<run Engine.show()>><</link>><</if>> <<link "Back to the start" "Start">><</link>><</timed>> <</if>>\ <</timed>>\ <</if>>\ <</do>>\<<set _timer to 3.5>>\ <div id="terminal"><span id="sub2">GAIL</span> <<type $t+17+'ms'>>It seems that you have managed to upgrade both the Fabricator and the Recycler to maximum. This will allow you to Fabricate any Level 1, 2 or 3 item. It will also allow you to utlise the Fabricator pod to scan and recycle much larger objects. Perhaps you could make use of that?<</type>></div> <<GAILchat $gail>>