<<if $endlessmode>>
/* Endless Mode is enabled */
<<else>>
<<set $endlessmode to false>>
<</if>>
<<if $ezmode>>
/* EZMode is enabled */
<<else>>
<<set $ezmode to false>>
<</if>>
<<if $hardmode>>
/* Hard Mode is enabled */
<<set $randomcatchchance to 20>>
<<set $trackerfound to false>>
<<set $disguisefound to false>>
<<set $distractionfound to false>>
<<set $shieldfound to false>>
<<else>>
<<set $hardmode to false>>
<<set $randomcatchchance to 50>>
<</if>>
/* Define NPCs */
<<set $namelist = ["Allan","Adam","Benny","Bruce","Cal","Colin","Dave","Daniel","Evan","Eason","Fred","Felix","George","Greg","Hal","Henry","Ivan","Isaac","Jack","John","Kevin","Kent","Louis","Lyle","Mike","Mason","Noel","Nick","Oscar","Owen","Perry","Phil","Quentin","Quinn","Raul","Ryan","Sammy","Shawn","Trevor","Tyler","Ulric","Ulysses","Vance","Vic","Will","Wes","Xavier","Wes","Yannis","Yuri","Zack","Zane","Zooks","Ritz","Blueballs","Decro","Medley","Maple","Ky"] >>
<<set $lastnamelist = [" A.", " B.", " C.", " D.", " E.", " F.", " G.", " H.", " I.", " J.", " K.", " L.", " M.", " N.", " O.", " P.", " Q.", " R.", " S.", " T.", " U.", " V.", " W.", " X.", " Y.", " Z."]>>
<<set $specieslist = ["husky", "wolf", "tiger", "fox", "panda", "coyote", "raccoon", "tanuki", "monkey", "capybara", "deer", "horse", "moose", "shiba", "lion", "cat", "otter", "rat", "mouse", "rabbit", "bear", "dog", "bull", "ox", "skunk", "squirrel", "fennec", "hyena", "doberman", "cheetah", "leopard", "puma", "civet", "serval", "antelope", "zebra", "badger", "ferret", "lynx"]>>
<<set $adjlist = ["muscular", "handsome", "lithe", "sexy","tall","short","blue","red","white","brown","grey","yellow","chubby","cute","chunky","fit","wild-looking","crazy-looking","nerdy-looking","smart-looking","hefty"]>>
/* Set Target Transformations */
<<set $targetTFlist = ["a coin", "a shirt", "a hat", "a pair of socks", "a pair of shoes", "a jockstrap", "a pair of underwear", "a small statuette", "a balloon", "a towel", "a condom", "a stuffed toy", "a dildo", "an onahole", "a potted plant", "a collar", "a harness", "an acrylic standee", "a small brass button", "a keychain", "an enamel pin", "a featureless cube", "a small bouncy ball", "a silver bell", "a music box", "a USB stick", "a blank book", "a pair of gloves", "a silver spoon", "a whistle", "a toy soldier", "a candle", "a piece of chalk", "a tube of toothpaste", "a ball of yarn", "an ornate key", "an earring", "a handkerchief", "an empty glass jar", "a red solo cup", "a hairpin", "a comb", "a harmonica", "a squeaky rubber chicken", "a string of anal beads", "a rubber duck"]>>
<<set $itemPatterns = {
"a stuffed toy": {
pattern: "a stuffed {species} toy"
},
"a dildo": {
pattern: "a {species} dildo"
},
"an acrylic standee": {
pattern: "an acrylic standee of a {species}"
},
"a jockstrap": {
pattern: "a {species}-patterned jockstrap"
},
"a pair of underwear": {
pattern: "{species}-patterned underwear"
},
"a keychain": {
pattern: "a {species} keychain"
},
"an enamel pin": {
pattern: "an enamel {species} pin"
},
"a small statuette": {
pattern: "a small {species} statuette"
}
}>>
/* Set Target Hobbies */
<<set $targethobbylist = [
"Dungeons & Dragons", "board games", "video games", "spicy food", "painting", "drawing", "pottery", "music", "playing guitar", "playing piano", "playing violin", "dancing", "clubbing", "writing fanfiction", "standup comedy", "BDSM", "running", "swimming", "working out", "movies", "writing mean comments online", "hanging out with friends", "cycling", "reading", "stargazing", "photography", "online gambling", "playing VR games", "playing gacha games", "vlogging", "backpacking", "nude modeling", "running marathons" ]>>
<<GenTarget>>
<<set $hunterspecies to $specieslist.random()>>
<<set $hunteradj to $adjlist.random()>>
<<set $hunterlocation to $kyletargetloclist.random()>>
<<set $kylehunterspecies to $specieslist.random()>>
<<set $kylehunteradj to $adjlist.random()>>
<<set $kyletargetname to [$namelist.random()+$lastnamelist.random()]>>
<<set $kyletargetspecies to $specieslist.random()>>
<<set $kyletargetadj to $adjlist.random()>>
<<set $kyletargetloc to $kyletargetloclist.random()>>
<<set $gossiplocation to $kyletargetloclist.random()>>
/* Define Intervene Event Variables */
<<set $intervenelocation to $kyletargetloclist.random()>>
<<if ($intervenelocation is $gossiplocation)>>
<<set _filtered to $kyletargetloclist.filter(loc => loc isnot $gossiplocation)>>
<<set $intervenelocation to _filtered.random()>>
<</if>>
<<set $inthunterspecies to $specieslist.random()>>
<<set $inthunteradj to $adjlist.random()>>
<<set $inttargetspecies to $specieslist.random()>>
<<set $inttargetadj to $adjlist.random()>>
/*Define Protect Event Variables */
<<set $protectlocation to $kyletargetloclist.random()>>
<<if ($protectlocation is $gossiplocation) or ($protectlocation is $intervenelocation)>>
<<set _filtered to $kyletargetloclist.filter(loc => loc isnot $gossiplocation and loc isnot $intervenelocation)>>
<<set $protectlocation to _filtered.random()>>
<</if>>
<<set $start to false>>
<<set $gameover to false>>
<<if $endlessmode>>
<<set $hours to 9999999>>
<<set $minutes to 10>>
<<else>>
<<set $hours to 12>>
<<set $minutes to 10>>
<</if>>
<<set $inventory to []>>
<<set $targetcount to 0>>
<<set $targetmovecounter to -1>>
<<set $huntermovecounter to -1>>
<<set $hidecount to 0>>
<<set $kyleleavecount to 0>>
<<set $kyleinroom to 1>>
<<set $kyletarget to 0>>
<<set $kylehelp to 0>>
<<set $kyleinfo to 0>>
<<set $kyleconvo1 to 1>> /* First convo */
<<set $kyleconvo2 to 1>> /* Ask about his target */
<<set $kyleconvo3 to 1>> /* Ask about your target */
<<set $kyleconvo4 to 1>> /* Ask what if have each other */
<<set $foundsock to 0>>
<<set $gossipover to 0>>
<<set $caughteventover to false>>
<<set $interveneover to 0>>
<<set $interveneyes to 0>>
<<set $protectover to 0>>
<<set $protectending to 0>>
<<set $firstvisit to 0>>
<<goto "Start2">><<nobr>>
<<if $showfooter>>
/* Kyle Caught Special Event */
<<if ($targetcount == 25) && (!$caughteventover)>>
<<goto "KyleCaughtEvent">>
<</if>>
/* Gossip Special Event */
<<if ($location == $gossiplocation) && ($gossipover == 0)>>
<<goto "GossipEvent">>
<</if>>
/* Intervene Special Event */
<<if ($location == $intervenelocation) && ($interveneover == 0)>>
<<goto "InterveneEvent">>
<</if>>
<<if ($interveneyes >=1) && ($interveneover ==1)>>
<<set $interveneyes to $interveneyes+1>>
<<if $interveneyes >=5>>
<<goto "InterveneEvent">>
<</if>>
<</if>>
/* Protect Special Event */
<<if ($location == $protectlocation) && ($protectover == 0)>>
<<goto "ProtectEvent">>
<</if>>
/* Display the Time & Inventory */
<<if $kyleleavecount < 10>>
<<set $kyleleavecount to $kyleleavecount+1>>
<</if>>
<<set $targetmovecounter to $targetmovecounter+1>>
<<set $targetlastseen to ($targetmovecounter*10)>>
<<set $huntermovecounter to $huntermovecounter+1>>
<<set $minutes to $minutes-10>>
<<if $minutes < 0>>
<<set $minutes to 50>>
<<set $hours to $hours-1>>
<</if>>
<<if !$endlessmode>>
<<if $start>>
<<if $hours > 1>>
<i>There are $hours hours and $minutes minutes remaining.</i>
<</if>>
<<if $hours == 1>>
<i>There is $hours hour and $minutes minutes remaining.</i>
<</if>>
<<if $hours == 0>>
<i>There are $minutes minutes remaining.</i>
<</if>>
<</if>>
<<else>>
<b>Targets Caught:</b> $targetcount
<</if>>
<<if ($targetname == "Kyle") && ($hours < 2)>>
<br><i>Kyle will probably be returning to the dorm soon...</i>
<</if>>
<<if $ezmode == false>>
<br> <b>Current Target:</b> $targetname the $targetspecies.
<<if $targetlocknown == true>>
<br><b>Target last seen</b> at the $targetlocation<<if $lastseenknown>> $targetlastseen minutes ago<</if>>.
<<elseif $cluegiven == true>>
<br><b>Target last seen</b> $locationclue[$targetlocation] $targetlastseen minutes ago.
<</if>>
<br> <b>Inventory:</b> $inventory
<<if $inventory.includes('Hunter Tracker')>>
<br> <b>Hunter Location:</b> $hunterlocation
<</if>>
<<else>>
<br><b>Current Target:</b> $targetname the $targetspecies.
<br><b>Target Location:</b> $targetlocation
<br><b>Hunter Location:</b> $hunterlocation
<br><b>Hunter:</b> A $hunteradj $hunterspecies
<br><b>Events:</b> $gossiplocation, $intervenelocation, $protectlocation
<br><br> <b>Inventory:</b> $inventory
<</if>>
<</if>>
<<if $gameover == false>>
<<if $hours == 0 && $minutes == 0>>
<<set $gameover to true>>
<<set $showfooter to false>>
<<goto "TimeUp">>
<</if>>
<</if>>
/* Move Target & Hunter around */
<<include "TarHuntMovement">>
<<if ($hunterlocation == "Dorm Room") && ($playerlocation !== "Dorm Room")>>
<<set $hunterlocation to "Dormitory Common Room">>
<</if>>
<<if $targetlocation == "Dorm Room">>
<<set $targetlocation to "Dormitory Hallway">>
<</if>>
<</nobr>><<nobr>>
<h2>Dorm Room</h2>
<<if $location isnot "Dorm Room">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<if $hunterlocation == "Dorm Room">>
<<goto "BadEndDormRoom">>
<</if>>
<<set $location to "Dorm Room">>
<<set $showfooter to true>>
<<set $start to true>>
<<if $kyleleavecount >= 6>>
<<set $kyleinroom to 0>>
<</if>>
<<if ($hours < 2) or ($hours == 2 and $minutes == 0)>>
<<if $targetcount == 4 and $kylehelp >= 3>>
<<goto "EndingShowdown">>
<<elseif $targetcount < 4 and $kylehelp >= 3>>
<<goto "EndingRMWin">>
<<elseif $targetcount == 4 and $kylehelp < 3>>
<<goto "EndingMCWin">>
<</if>>
<</if>>
You're in the dorm room you share with Kyle. It's reasonably clean, but only because you two finally knuckled up and tidied it this past weekend. Your laptop sits on your desk, next to last night’s half-eaten cup of instant ramen. There is a door leading out to the hallway.<br>
<<if $kyleinroom == 1>>
<br>Kyle is sitting on his bed, checking things on his phone.<br>
<br><<linkappend "Talk to Kyle" t8n>>
<<if $kyleconvo1 == 1>>
<br>Kyle looks up from his phone. "Are you nervous?" he asks, then chuckles. "Every year I wondered if this would be the year I got selected to participate. To be honest with you, I was kind of excited for it."
<<set $kyleconvo1 to 0>><br>
<br><<linkappend "Why excited?" t8n>>
<br>"Ever since I had that gig at the Temp Agency a few summers back, when I spent the summer as a pool toy, the idea of getting permanently transformed has made me rock hard thinking about it." You can see the tent growing in his pants as he reminisces fondly.<br>
<</linkappend>>
<<else>>
<br>Kyle looks up from his phone. "Yeah, what's up?"<br>
<</if>>
<<if $kyleinfo < 1>>
<br><<linkappend "Who's your target?" t8n>>
<<if $kyleconvo2 == 1>>
<br>Kyle glances at his tagger. "It says that I'm looking for '$kyletargetname' Don't know him, though."
<<set $kyleconvo2 to 0>>
<<set $kyletarget to 1>>
<<else>>
<br>"Well, I haven't caught him since the last time you asked me," he says, "so... still '$kyletargetname'. I'll go out hunting for him in a little bit."
<</if>><br>
<</linkappend>>
<</if>>
<br><<linkappend "Do you know my target?" t8n>>
<<if $kyleconvo3 == 1>>
<br>Kyle takes a look at your tagger. "Hmm," he says, "nope. Don't know 'em. You could try looking them up on your computer though, or asking around campus."
<<set $kyleconvo3 to 0>>
<<else>>
<br>Kyle shrugs. "No more than I did the last time you asked me. Check your computer or ask around campus, maybe someone will have more information."
<</if>><br>
<</linkappend>>
<<if $kyleinfo == 1>>
<br><<linkappend "Give Kyle info about his target" t8n>>
<br>Kyle gives you a high-five. "Ohh, thanks man! I shouldn't have any problem tracking him down now!"
<<set $kylehelp to $kylehelp+1>>
<<set $kyleinfo to 0>><br>
<</linkappend>>
<</if>>
<<if $kyleconvo4 == 1>>
<br><<linkappend "What if we get each other as targets?" t8n>>
<<set $kyleconvo4 to 0>>
<br>Kyle smirks. "Then no hard feelings! If you get me, it'd be an honor to be tagged by you." He bows sarcastically. "If I get you... well, I call dibs on your stuff!"
<</linkappend>>
<</if>>
<</linkappend>><br>
<</if>>
<<if $kyleleavecount == 6>>
<br>Kyle grunts and stands up. "Well, time for me to go out hunting! Good luck, roomie!"<br>
<</if>>
<br>[[Use your laptop|UseComputer]]
<br><<linkappend "Search">><br>
<<if $searchcheck == 0>>
<<goto "Search">>
<<else>>
You've already searched here recently.
<</if>>
<</linkappend>><br>
[[Wait (Have a quick wank)|Wait]]<br><br>
[[Leave your room|Dormitory Hallway]]<br>
<</nobr>>
<br><<nobr>>
<h2>Dorm Hallway</h2>
<<if $location isnot "Dormitory Hallway">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Dormitory Hallway">>
<<set $showfooter to true>>
<<if $hunterlocation == "Dormitory Hallway">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
/* Check for Target Presence */
<<if $targetlocation == "Dormitory Hallway">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if $firstvisit == 1>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<<else>>
<<set $firstvisit to 1>>
<</if>>
<</nobr>>
You are in the hallway of your dorm. A well-trodden carpet runs the length of the hall, and yellow-painted doors to various dorm rooms line the walls. Midway down the hall there is a bathroom, and opposite it is the common room. At one end of the hall is the elevator. Your dorm room is 369.
<<Actions>>
[[Go to your room|Dorm Room]]
[[Go to the bathroom|Dormitory Bathroom]]
[[Go to the common room|Dormitory Common Room]]
[[Go to the elevator|Dormitory Elevator]]
<br><<nobr>>
<h2>Dorm Bathroom</h2>
<<if $location isnot "Dormitory Bathroom">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Dormitory Bathroom">>
<<set $showfooter to true>>
<<if $hunterlocation == "Dormitory Bathroom">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Dormitory Bathroom">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the dorm’s bathroom and showers. Apart from the rude graffiti defacing the walls of nearly every stall, the bathroom is actually reasonably well-kept thanks to the tireless efforts of the underappreciated janitorial staff.
<<Actions>>
[[Return to hall|Dormitory Hallway]]
<br><<nobr>>
<h2>Common Room</h2>
<<if $location isnot "Dormitory Common Room">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Dormitory Common Room">>
<<set $showfooter to true>>
<<if $hunterlocation == "Dormitory Common Room">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Dormitory Common Room">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the dorm’s common room. A wall-mounted television playing campus news faces a family of sofas in varying states of damage. There’s also a foosball table and a small kitchen area with a microwave, a hotplate, and a fridge. You don’t even want to think about the sorts of things that have been forgotten about in there…
The common room looks out over the central plaza, which is buzzing with activity. There is a single door leading back out to the hall.
<<Actions>>
[[Return to hall|Dormitory Hallway]]
<br><<nobr>>
<h2>Dorm Elevator</h2>
<<if $location isnot "Dormitory Elevator">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Dormitory Elevator">>
<<set $showfooter to true>>
<<if $hunterlocation == "Dormitory Elevator">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Dormitory Elevator">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You're in a small elevator that has mirrors on three of the four walls. One of the mirrors is cracked and has yellow caution tape on it. You’re glad that the elevator is working for once.
You can take the elevator to your floor or to the ground floor, which opens to the western part of the central plaza.
<<Actions>>
[[Exit elevator to dorms|Dormitory Hallway]]
[[Exit elevator to West Plaza|West Plaza]]
<br><<nobr>>
<<set $showfooter to false>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<set $hidecount to $hidecount+1>>
<<set $randomsearch to random(1,20)>>
<<set $searchcheck to 1>>
<<set $searchdesc = {
"Dormitory Hallway": "You look up and down the hall, but don't see anything.",
"Dormitory Bathroom": "You peek under a few stall doors, but don't see anything.",
"Dormitory Common Room": "You look around the common room, but don't see anything.",
"Dormitory Elevator": "You search the small elevator, but don't see anything.",
"West Plaza": "You poke around the plaza, but don't see anything.",
"East Plaza": "You poke around the plaza, but don't see anything.",
"North Plaza": "You poke around the plaza, but don't see anything.",
"South Plaza": "You poke around the plaza, but don't see anything.",
"Plaza Statue": "You poke around the statue, but don't see anything.",
"Athletic Centre": "You spend a few minutes searching around the trophy cabinets, but don't see anything.",
"Athletics Track": "You look around the area, but don't see anything.",
"Athletics Court": "You check around the bleachers, but don't see anything.",
"Athletics Showers": "You check in some of the lockers, but don't find anything.",
"Athletics Pool": "You check around the bleachers, but don't see anything.",
"Theatre": "You check around the theatre seats and the backstage area, but don't find anything.",
"Library": "You poke around the stacks of books, but don't find anything.",
"Gardens": "You spend a few minutes searching the gardens, but don't see anything.",
"Main Hall": "You look around the main hall, but don't see anything of note.",
"Lecture Hall": "You look around the lecture hall, but don't see anything interesting.",
"Science Labs": "You inspect some of the experiments, but don't find anything useful.",
"Art Room": "You raid the art supplies, but don't see anything interesting." }>>
<<if $targethere == true>>
<<goto "TargetCaught">>
<<else>>
<<if $targetLastLoc == $location>>
You look around for the $targetspecies, but you don't see him. A $npcadj $npcspecies sees you prowling around and says, "Are you looking for a $targetname? He just left! He should still be somewhere nearby..."
<br> [[Return|GoToLocation]]
<<elseif $location == "Dorm Room">>
<<if $inventory.includes('Missing Sock')>>
You search your room, but don't find anything of use.
<br>[[Return|GoToLocation]]
<<else>>
<<if $foundsock == false>>
/* <<run $inventory.push('Missing Sock')>> */
<<run addToInventory("Missing Sock")>>
<<set $foundsock to true>>
You search your room, and find the sock you were looking for last week! How did it get under <i>there</i>?<br><br>
<<linkappend "Under where?" t8n>>
<br><br>Heh, I just made you say "underwear".
<br><br>
[[Oh piss off|GoToLocation]]
<</linkappend>>
<<else>>
You search your room, but don't find anything of use.
<br> [[Return|GoToLocation]]
<</if>>
<</if>>
<<elseif $randomsearch == 20>>
<<if $inventory.includes('Hunter Tracker')>>
You find a Hunter Tracker, but you already have one, so you leave it be.
<br> [[Return|GoToLocation]]
<<else>>
<<if $hardmode and $trackerfound>>
You don't find anything useful.
<br> [[Return|GoToLocation]]
<<else>>
<<run addToInventory("Hunter Tracker")>>
<<set $trackerfound to true>>
You find a Hunter Tracker! This will show you where the person hunting you currently is!
<br> [[Return|GoToLocation]]
<</if>>
<</if>>
<<elseif ($randomsearch >= 17) && ($randomsearch <= 19)>>
<<if $inventory.includes('Disguise')>>
You find things for a disguise, but you already have one, so you leave them be.
<br> [[Return|GoToLocation]]
<<else>>
<<if $hardmode and $disguisefound>>
You don't find anything useful.
<br> [[Return|GoToLocation]]
<<else>>
<<run addToInventory("Disguise")>>
<<set $disguisefound to true>>
You find some bits and bobs that could be used to make a quick disguise!
<br> [[Return|GoToLocation]]
<</if>>
<</if>>
<<elseif ($randomsearch >= 14) && ($randomsearch <= 16)>>
<<if $inventory.includes('Distraction')>>
You find things that could cause a distraction, but you already have some, so you leave them be.
<br> [[Return|GoToLocation]]
<<else>>
<<if $hardmode and $distractionfound>>
You don't find anything useful.
<br> [[Return|GoToLocation]]
<<else>>
<<run addToInventory("Distraction")>>
<<set $distractionfound to true>>
You find some shiny things that could be used to make a quick distraction!
<br> [[Return|GoToLocation]]
<</if>>
<</if>>
<<elseif ($randomsearch >= 11) && ($randomsearch <= 13)>>
<<if $inventory.includes('Makeshift Shield')>>
You find something that could be used as a shield, but you already have one, so you leave it be.
<br> [[Return|GoToLocation]]
<<else>>
<<if $hardmode and $shieldfound>>
You don't find anything useful.
<br> [[Return|GoToLocation]]
<<else>>
<<run addToInventory("Makeshift Shield")>>
<<set $shieldfound to true>>
You find something that could be used as a makeshift shield to deflect a dart!
<br> [[Return|GoToLocation]]
<</if>>
<</if>>
<<else>>
$searchdesc[$location]
<br><br>
[[Return|GoToLocation]]
<</if>>
<</if>>
<</nobr>><<nobr>>
<h2>Bad End: Dorm Hallway</h2>
<<set $showfooter to false>>
<</nobr>>
As you make your way down the hall, one of the doors on your left flies open, and a $hunteradj $hunterspecies jumps out.
"Gotcha!" the $hunterspecies cries, aiming his tagger at you. You try to make a run for it, but the corridor gives you little room to dodge and you feel a sharp prick in your back as his dart finds its mark and you stumble to the ground.
"I've been waiting in my room for you to show up," the $hunterspecies says, approaching and looking down at you. "I was gettin' so horny thinking of what you'd turn into."
You look up at him and see the bulge growing in his pants. You open your mouth to say something, but suddenly it freezes in place, stuck in a ridiculous 'O' shape. You reach up to feel it, and discover that your fingers have fused together, your paws becoming rounded nubs on the ends of your arms.
Your fur has begun to disappear, and your skin takes on a latexy sheen. Without your input, your arms and legs bend into shape, forcing you into a doggystyle pose as a rubber valve appears where your bellybutton used to be.
You feel lightheaded, and that turns out to be literally true, as your feel your insides hollowing out and being replaced with air.
With the lightheadedness comes a new feeling: unbridled lust. You've become a rubber sex doll, and you know what your purpose is. If you still had a cock, instead of a smooth rubber nulge, you'd be so hard right now. You know, in every fiber of your being, that you need a cock in you.
The $hunteradj $hunterspecies bends down and picks you up easily, as though you only weigh a few pounds - because you do!
"Mm, perfect," he croons, inspecting his new rubber sex doll. "Let's put you to use before I go hunting again, eh?" The idea turns you on so much, as though you weren't already hornier than you'd ever felt before.
He carries you into his dorm room and kicks the door shut, tossing you onto the bed. Your face, fixed in the ridiculous O-shape, is directly at his crotch level as he pulls his cock out of his pants. You can feel yourself salivating with anticipation.
"Ooh, and you make your own lube!" he says, as lubricant drips out of your mouth hole. "Excellent." He grabs your head and shoves his cock in your mouth, wasting no time.
A most satisfying feeling overtakes you, though it does nothing to sate your lust. As he fucks your face he moans and groans, driving his cock deep down your textured throat. His breathing starts to get more rapid, and you're practically begging for him to cum down your throat, to fill you with his seed, when suddenly he stops and pulls his cock out with a wet <i>pop!</i>
The $hunterspecies spins you around, exposing the hole beneath your tail. "Let's try this one out too," he says, and shoves his cock in all the way to the base.
Stars explode in your mind. Your new hole has become so sensitive, and being stretched by a big $hunterspecies cock drives you wild.
The $hunteradj $hunterspecies doesn't last long. With a final cry, he slams deep into you, compressing your hollow form, and cums.
The ribbed and textured tunnel that links your mouth hole and tail hole fills with cum, so much that it dribbles out of your mouth as he continues pumping it in you. He falls back on the bed, panting, as cum leaks out of both ends of you.
"Fuck, you're incredible," he pants, trying to catch his breath. You barely hear him, lost in your own orgasmic bliss. Eventually he sits up.
"I need to get back to the hunt," he mutters, looking at the sticky sex toy beside him. "But... I think I could go for another round or two first."
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndDormHall")>>
<<run $unlockedEndings.push("BadEndDormHall")>>
<</if>><<nobr>>
<h2>Bad End: Dorm Bathroom</h2>
<<set $showfooter to false>>
<</nobr>>
As you look around the bathroom, you hear the door creak open. You dive into one of the stalls and lock the door, pulling your feet up as you sit on one of the toilets.
Someone enters the bathroom, their feet padding quietly on the tile.
"Come out, come out," you hear a voice croon. Then there's a sudden bang as one of the toilet stall doors at the far end gets kicked open. "I know you're hiding in here."
You take a deep breath, praying that he doesn't find you. But as door after door gets kicked open, he gets closer and closer. Finally... <i>*bang!*</i>
"Gotcha!" your hunter says, aiming his tagger at you. You throw up your hands in surrender, but it's no use. You wince and you feel a pinch in your pec as the dart finds its mark.
The $hunteradj $hunterspecies sneers, standing in the doorway. His musk is overpowering; he clearly hasn't been making use of the provided shower facilities.
You must have wrinkled your nose, because he chuckles. "Yeah, I've worked up a sweat," he says. "Been running all over campus lookin' for you. But I know just what will help."
Your body begins to stiffen and your limbs begin retracting into your body. Your fur takes on a shiny white plastic texture and smooths out. As you shrink, you fall out of your clothes and your cock flops out.
Unlike the rest of your body, it takes on a black plastic color and as it flattens into a disc it grows ridges around it, turning into a different kind of knob.
Your head widens and merges with your shoulders, making it difficult to turn your head and see the rest of the changes.
Only a few moments later, you are nothing but a stick of deodorant laying on the floor.
The $hunterspecies picks you up and inspects you.
"Ooh, 24hr protection, and a mountain fresh scent!" he says. You feel a really weird sensation as he uncaps you, like you're suddenly in two places at once. Then he begins twisting your knob to extrude the deodorant, and it feels like an incredibly intense handjob.
With horror, you realize he's bringing you closer and closer to his musky pit, and then he's roughly rubbing you against it. You feel part of yourself smearing into his stinky pit fur.
"Ahh, much better, wouldn't you agree?" he says, putting your cap back on. "Let's hope you last longer than my last stick."
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndDormBathroom")>>
<<run $unlockedEndings.push("BadEndDormBathroom")>>
<</if>><<nobr>>
<h2>Bad End: Common Room</h2>
<<set $showfooter to false>>
<</nobr>>
You only have time to dive behind the sofa as you hear the door to the common room opening. Peeking out from behind it, you see a $hunteradj $hunterspecies stalk into the room, tagger drawn.
You look for a way out, but he's standing in front of the only door. Waiting with bated breath for him to move, you make a dash for it as he moves further into the room, but just as your hand reaches for the door handle you feel a sharp prick in your back.
"Nice try!" the $hunterspecies says, "but you're mine now."
You turn to face him, but you're suddenly wobbly on your feet. You look down to see your legs beginning to merge together, fusing into one mass. You stagger/hop over to the sofa and collapse onto it as your arms merge into your sides. You're beginning to look almost translucent, and your fur has smoothed out and is taking on a latex sheen.
With horror, you look down at your legs as they begin to roll up, pancaking you into a flat, rubbery circle. You're soon nothing more than a condom, which the $hunterspecies picks up and inspects.
"Perfect," he says, unbuttoning his pants. "I think I might make use of you first before I go hunting my next target."
He pulls out his cock, already stiffening in his hand, and slowly begins to unroll you over it. You feel your whole body stretching as it envelopes his member, and his cock fills you more than any one you've ever had before.
"Mm, self-lubricating," he purrs as he finishes putting you on. Slowly, he begins to stroke himself, and his paw running up and down your length feels incredible. Over the next few minutes his pace picks up, until he's beating off furiously, and you're going out of your mind with how good it feels. You want nothing more than to feel him cum in you, and you soon get your wish.
With a strangled roar he cums, and you'd go cross-eyed if you still had eyes from the orgasmic sensation of shot after shot of hot seed filling you up, making your head balloon with the $hunterspecies's cum.
He collapses onto the sofa, panting, as his orgasm finishes.
"Damn, that was good," he says. "Well, time to get back to the hunt!" Without fanfare, he peels you off his cock, ties you shut, and tosses you in the bin.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndDormCommonRoom")>>
<<run $unlockedEndings.push("BadEndDormCommonRoom")>>
<</if>><<nobr>>
<h2>Bad End: Dorm Elevator</h2>
<<set $showfooter to false>>
<</nobr>>
The elevator slows to a stop and the doors open. A $hunteradj $hunterspecies enters, looking at you with a peculiar smirk on his face. You get a bad feeling in the pit of your stomach and want to exit the elevator, but the $hunterspecies is blocking your path. The doors close and the elevator begins to move... until the $hunterspecies reaches out and presses the emergency stop.
You gulp as the $hunterspecies draws his tagger. There's nowhere to run; you're completely caged. You could try to fight him off, but you know it's no use.
"Gotcha," the $hunterspecies growls, grinning. "I'll give you a chance to run if you satisfy me first."
He unzips his pants, letting his rapidly-growing boner flop out. You drop to your knees and get to work, hoping that he'll keep his word and let you get out of this elevator and try to escape.
You wrap your lips around his thick $hunterspecies cock, slicking it with saliva. You fight off your gag reflex as he grabs the back of your head and shoves his cock down your throat, thrusting roughly as he uses you.
Despite the dire circumstances, you find yourself getting hard too, and actually kind of enjoying the taste of his cock.
"Fuck, I'm already getting close," he moans. "I wouldn't mind you being wrapped around my cock forever... feels so good."
His pace picks up, and then two things happen. First, he cums with a roar, hot seed gushing down your throat in a thick torrent. And then you wince as you feel the dart pierce your arm.
"Oops," he pants, still spurting in you, "my finger slipped."
The changes begin quickly as the dart takes effect. Your body becomes stiffer, your fur taking on a shiny chrome color and smoothing out.
Your legs retract into your body, and you feel yourself shrinking, soon lifting up off the floor.
His cock feels bigger and bigger in your mouth, and your mouth stretches wider to accommodate it. It feels like his cock is reaching deeper and deeper into you as your body molds around it. He seems to realize what's happening at the same time as you.
"Oh no, no no no," he cries out, trying to pull you off his dick. But it's too late - what's left of your arms have fused in a ring around his balls, and in seconds you're nothing more than a shiny chrome chastity cage wrapped around his cock.
"Fuck," he mutters, bending down to pick up your abandoned tagger. "I hope if I win this thing I can get you off of me."
He pulls his pants back up, trapping you inside the dark folds of cloth, and resumes the elevator. You can feel his cock, still dripping some cum, filling your entire being. It twitches as it tries to grow, but your unyielding form keeps it from getting any bigger.
He exits the elevator, on the hunt for his next target, and you're along for the ride whether you like it or not.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndDormElevator")>>
<<run $unlockedEndings.push("BadEndDormElevator")>>
<</if>><<set $showfooter to false>>
<<if $targetcount < 50>>
<<if $location == $hunterlocation>>
<<if ["Wait", "Search", "NextTarget", "AskInfo", "UseComputer", "InterveneEvent", "GossipEvent", "ProtectEvent"].includes(previous())>>
<<goto $location>>
<<else>>
<<set $newLocation = $loclist.filter(loc => loc !== $location).random()>>
<<goto $newLocation>>
<</if>>
<<else>>
<<goto $location>>
<</if>>
<<else>>
<<goto "EndingEndless">>
<</if>><<nobr>>
/* Set Library book sections */
<<set $booksectionlist = ["Humanities", "Erotica", "Social Sciences", "Science Fiction", "Fiction", "Furry Porn", "Non-Fiction", "Biographies", "Physics", "Chemistry", "Picture Books", "How-To Guides", "Autobiographies", "Romance", "Fantasy", "Natural History", "History", "Geography", "Geology", "Archaeology", "Science", "Coding", "Arts", "Photography", "Self-Help", "Transformation Art", "World History", "Biology", "Zoology", "Cryptozoology", "Futurology", "Astronomy", "Astrology", "Woodworking", "Ironworking", "Crafts", "Hypnosis" ]>>
<<set $booksection to $booksectionlist.random()>>
/* Set location-specific catch descriptions */
<<set $catchdesc = {
"Dormitory Hallway": "You spot your target, a $targetadj $targetspecies, as he emerges from one of the dorm rooms. He sees you and tries to flee back into the room, but it locks shut behind him, trapping him in your crosshairs. You raise your tagger and fire...",
"Dormitory Bathroom": "Even though he's trying to stay quiet, you can still hear the panicked breathing of the $targetadj $targetspecies coming from one of the locked stalls. He's drawn his feet up so you can't see him, but that doesn't stop you from just kicking the door open, raising your tagger, and firing...",
"Dormitory Common Room": "The common room isn't very large, so there's really nowhere for $targetname to hide. He throws his hands up in surrender as you raise your tagger and fire...",
"Dormitory Elevator": "The elevator doors open, revealing a very surprised $targetspecies. He's got nowhere to run, and sighs in defeat as you raise your tagger and fire...",
"West Plaza": "You look around the plaza for $targetname, tagger at the ready. \"Over there!\" someone shouts, pointing to a $targetadj $targetspecies running as fast as he can. The $targetspecies stumbles on a loose paving stone, crashing into one of the fundraising volunteers and falling to the ground in an explosion of papers. Before he can get back up, you raise your tagger and fire...",
"East Plaza": "You spot the $targetadj $targetspecies as he peeks out from behind the merch stand, looking for you. You raise your tagger, and he emerges with his hands up. \"You got me,\" he says, accepting his fate. You take aim and fire...",
"North Plaza": "The students milling about the plaza can't hide the $targetadj $targetspecies, and you spot him as he makes his way across the open space. Before he can notice you and take off, you quickly raise your tagger, take aim, and fire...",
"South Plaza": "You survey the plaza for your target, and spot him just before he spots you. $targetname makes a break for it, but the $targetadj $targetspecies doesn't get far as you raise your tagger, take aim, and fire...",
"Plaza Statue": "You spot your target beneath the big statue, looking up at its shiny horse cock. \"I rubbed it for luck,\" the $targetadj $targetspecies says, \"But I guess my luck ran out.\" You raise your tagger and fire...",
"Athletic Centre": "You spot the your target, the $targetadj $targetspecies, just as he furtively tries to slip from the locker room to the athletics court. He sees you and tries to make a run for it, but you quickly raise your tagger, aim, and fire...",
"Athletics Track": "Surveying the runners on the track, you spot your target, a $targetadj $targetspecies. He looks to be practicing his running, a skill he sincerely hopes he won't need today. Unfortunately for him, he does, and doubly unfortunately, he won't even get to use it. You raise your tagger, take aim, and fire...",
"Athletics Court": "You look around the court for your target, peering past the basketball players and inspecting the bleachers. Your target spots you moments before you spot him, and the $targetadj $targetspecies takes off running. You give chase as he runs for the exit, but he stumbles and falls as one of the basketball players launches the ball at his back like a rocket. The player gives you a high five as you run by, and you approach the $targetspecies on the ground. You aim your tagger and fire...",
"Athletics Showers": "You search the locker room, but there's no sign of $targetname. Moving to the shower area, you see that one of the showers is currently occupied and the water is running, and another... well, you can see a shadow behind the curtain, but the water's off. You reach out and snatch the curtain back, revealing the $targetadj $targetspecies, raise your tagger, and fire...",
"Athletics Pool": "You see your target, $targetname, hiding beneath the bleachers beside the pool. He scrambles away when he sees that he's been spotted, but the $targetadj $targetspecies can't clamber over the support bars quick enough. You raise your tagger, take aim, and fire...",
"Theatre": "You almost miss $targetname as he hides in the shadows of the wings, but the fluttering of the thick black curtain gives him away. The $targetadj $targetspecies tries to flee, but trips on the bracket of a set piece and falls, sprawling, to the ground. You raise your tagger, aim, and fire...",
"Library": "The seemingly endless stacks of books provide plenty of cover, but clearly not enough. You find the $targetadj $targetspecies hiding in the $booksection section, and he gives a yelp of surprise. Someone shushes him, and you chuckle as you raise your tagger, aim, and fire...",
"Gardens": "You look around the gardens for your target, and have almost given up when you see the barest bit of $targetspecies fur poking up from behind a bush. You ready your tagger, and $targetname tries to make a run for it. As he flees in vain you take steady aim and fire...",
"Main Hall": "Even through the crowds moving around the hall, you spot the telltale shape of the $targetadj $targetspecies and weave towards him. You get to him a moment before he spots you, and he's penned in by the crowd as you raise your tagger and fire...",
"Lecture Hall": "You look around the lecture hall and initially think that $targetname isn't here, but then you spot the $targetadj $targetspecies crouched behind the lectern, trying his best not to be seen. You slowly creep towards him, raise your tagger, and fire...",
"Science Labs": "You spot your target, $targetname, moments before he spots you. As you raise your tagger, the $targetadj $targetspecies sees you and his eyes widen. Thinking fast, he grabs a flask of mysterious fluid from a workbench and hurls it at you, to the indignant cries of a science student. You dodge the beaker, but the distraction gives the $targetspecies time to make a run for it. Unfortunately, the student whose experiment he just tossed sticks out his foot, and the $targetspecies goes crashing to the floor. You aim your tagger and fire...",
"Art Room": "The art room is messy, but not so messy that you can't see the $targetadj $targetspecies hiding among the piles of cloth. He sighs and stands up, resigned to his fate. You raise your tagger and fire..." }>>
/* Set a variety of transformation descriptions */
<<set $transformdesc = [
"Your dart hits $targetname, and the $targetadj $targetspecies gasps as the changes take hold. His body shifts and transforms, and soon he's nothing more than $currentItem.",
"\"Ahh, fuck,\", $targetname says as the dart hits him. The changes are immediate, and he shifts before your eyes into $currentItem.",
"You score a direct hit on $targetname, and the serum goes to work. The $targetadj $targetspecies opens his mouth to say something, but his words are lost as he quickly transforms into $currentItem.",
"$targetname winces as the dart hits him, and he looks at you with pleading eyes as the transformation occurs. \"Make good use of me,\" he begs, as he quickly transforms into $currentItem.",
"$targetname barely flinches as the dart hits him. He watches in fascination as his body changes, quickly changing from a $targetadj $targetspecies into little more than $currentItem.",
"The $targetadj $targetspecies clutches at the spot where the dart hit, and looks at his hand in surprise as it begins to change. His body transforms quickly, and soon only $currentItem sits before you on the ground.",
"You can see the tent in $targetname's pants as the changes begin. He's actually getting off on this! He moans a little as he transforms, and paws at his crotch until his transformation into $currentItem prevents him from moving any more.",
"$targetname moans as the dart pierces his arm. \"To tell the truth,\" the $targetadj $targetspecies says, \"I fantasized about getting caught.\" Well, he got his wish, and you can see the pleasure on his face as he turns into $currentItem.",
"$targetname quickly works out what he's turning into as the dart's effects take hold. \"Ohh... $currentItem?\" he asks, watching his body transform. \"Fuuuuuck.\" You watch him, clearly enjoying himself, until his transformation completes and only $currentItem sits before you.",
"$targetname flinches as the dart hits him, scrabbling at the impact site in vain. The serum has done its job, however, and the changes quickly spread across his body, transforming him from a $targetadj $targetspecies into $currentItem." ] >>
<<set $targettfdesc to $transformdesc.random()>>
<<if $targetname !== "Ky">>
<<GenerateDroppedItem>>
<<set $targetLastLoc to "Unknown">>
<<set $targetcount to $targetcount+1>>
<h2>Target Caught!</h2><br>
$catchdesc[$location]<br><br>
$targettfdesc You pick <<print $currentItem.replace(/^an? /, 'the ')>> up and stick it in your bag.<br><br>
<<else>>
<h2>Target Caught...?</h2><br>
I pluck the dart out of my arm and look at you with a raised eyebrow.<br><br>
"What do you think is gonna happen to the game if you transform the programmer of it?" I ask you. "I mean, really! Who even let me be a target, anyway? Ugh. Go. Try again." <br><br>
I toss a new tagger on the ground and walk off, shaking my head.<br><br>
<</if>>
<<GenTarget>>
<<if !$endlessmode>>
<<if $targetcount < 4>>
You pick up your target's discarded tagger. The label on the side informs you that your next target is <b>$targetname</b>.<br><br>
<<else>>
You pick up your target's discarded tagger. The label on the side informs you that your next target is <b>Kyle</b>, your roommate!<br><br>
You're not sure where he is right now, but you're sure he'll return to the dorm room closer to the end of the game. You just need to survive until then...<br><br>
<<set $targetname to "Kyle">>
<<set $targetspecies to "bear">>
<<set $targetlocation to "He'll be at the dorm room later, you're sure.">>
<</if>>
<<else>>
<<if $targetcount > $highscore>>
<<set $highscore to $targetcount>>
<</if>>
<<if $targetcount < 50>>
You pick up your target's discarded tagger. The label on the side informs you that your next target is <b>$targetname</b>. You have caught $targetcount <<if $targetcount==1>>target<<else>>targets<</if>> so far.<br><br>
<<else>>
Against all odds - really, it's incredible you survived this long - you managed to tag your fiftieth target.<br><br>
There is a crackle as campus-wide speakers spring to life.<br><br>
"Ladies and gentleman," the voice of the president booms, echoing throughout the university, "it appears that we finally have a winner! This year's extra-special edition of TF Tag has come to an end. Our winner is hereby summoned to my office to receive his prize!" With that, the speakers crackle into silence again, and a quiet descends on a campus that is much emptier than it was at the beginning of the day.<br><br>
<</if>>
<</if>>
[[Continue|GoToLocation]]
<</nobr>><<nobr>><<set $showfooter to false>>
The hunt is nearly over! It's time to head back to your dorm room to watch the announcement.<br>
<<if $targetcount == 4 and $kylehelp >= 3>>
[[Continue|EndingShowdown]]
<<elseif $targetcount < 4 and $kylehelp >= 3>>
[[Continue|EndingRMWin]]
<<elseif $targetcount == 4 and $kylehelp < 3>>
[[Continue|EndingMCWin]]
<<else>>
[[Continue|EndingMCSurvives]]
<</if>>
<</nobr>>You and your roommate Kyle, a beefy bear, are sitting on the bed watching the TV in your dorm room. It's the day of the university's annual TF Tag competition, and both of you are among the group of students selected by random draw to participate in the game. You had signed up as a joke, but didn't expect to actually be <i>selected</i> for it. And with both of you in the game... well, there can only be <i>one</i> winner.
The university president is giving a speech outlining the rules of the game. "Each participant has a small dart gun - a tagger, we call them - that shoots a dart with a specially-developed serum (courtesy of our TF Science majors) that will transform the serum's target, and only the target, into an inanimate object. The result of which," the president says, "is determined by a number of factors including environment and target/hunter desires. You'll find a label on the side of the tagger that shows who the serum affects - your target, in other words.
"It is your role to track down your target and transform them to remove them from the game, while avoiding being caught yourself! If you catch a target, you can then pick up their tagger and search for their target." Chuckling, the president says, "It's always fun watching the participants running around campus, and quite exciting to witness a hunter find his target!
<<if $endlessmode>>"We're doing something a bit different this time!" the president announces. "It was decided that we need to free up space for the thousands of prospective new students applying to our programs, so this year's game of TF Tag will be a truly campus-wide affair! Nearly every student has been registered for the game, and the first student to collect 50 targets will be the ultimate winner!"
He clasps his hands together in excitement. "It's going to be truly extraordinary! Hope you're ready, because the game doesn't end until someone reaches 50! And with that... let the hunt <i>begin!</i>"
You and Kyle look at each other in surprise. "Wait, fifty...?!" Kyle exclaims. "Well, guess we better get started! Good luck... we're gonna need it."<<else>>"The game will end at 9pm - in twelve hours' time - if there is not yet a winner. This is, of course, the most boring ending to our game, so get out there and <i>win</i>! If we do have a winner," the president flashes a big smile at the camera, "they will enjoy a full year's tuition as a prize, plus get to keep all of the losing participants! And with that... let the hunt <i>begin!</i>"<</if>>
According to the label on your tagger, your quarry is <b>$targetname, a $targetspecies</b>. You will need to find his location and <b>Search</b> for him there.
"Are you ready?" Kyle asks, inspecting his tagger. The small devices had arrived at your door only minutes before the president's broadcast began.
You nod.
[[Let's do it!|Dorm Room]]<<nobr>>
<h2>West Plaza</h2>
<<if $location isnot "West Plaza">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "West Plaza">>
<<set $showfooter to true>>
<<if $hunterlocation == "West Plaza">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "West Plaza">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the western part of the main plaza. There are stone benches on which students are sitting and hanging out, enjoying the day. A stall is set up soliciting donations for a fundraiser of some sort. This part of the plaza leads to the student dormitories.
<<Actions>>
[[Go to Dorm Elevator|Dormitory Elevator]]
[[Go to North Plaza|North Plaza]]
[[Go to South Plaza|South Plaza]]
[[Go to East Plaza|East Plaza]]
[[Go to Plaza Statue|Plaza Statue]]
<br><<nobr>>
<h2>Plaza Statue</h2>
<<if $location isnot "Plaza Statue">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Plaza Statue">>
<<set $showfooter to true>>
<<if $hunterlocation == "Plaza Statue">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Plaza Statue">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
You are standing beneath the grand statue in the center of campus, honoring the founder of the university. He is riding a <i>very</i> well-endowed horse, who is rearing up dramatically. The metal of the horse's member is shiny from the many, many hands that have rubbed it over the years.
<<if $showdowncomplete>><br><br>
To your surprise, there is also an impressively lewd statue of two people in the throes of passion. One is fucking the other, and they are both depicted with looks of orgasmic pleasure as they kiss. Each of the figures appears to have a tagger dart sticking out of them. Some students are gathered around the statue, rubbing the bottom's exposed cock and giggling.
<</if>><</nobr>>
<<Actions>>
[[Go to North Plaza|North Plaza]]
[[Go to West Plaza|West Plaza]]
[[Go to East Plaza|East Plaza]]
[[Go to South Plaza|South Plaza]]
<br><<nobr>>
<h2>South Plaza</h2>
<<if $location isnot "South Plaza">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "South Plaza">>
<<set $showfooter to true>>
<<if $hunterlocation == "South Plaza">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "South Plaza">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the southern part of the main plaza. This part of the plaza leads to the theatre and the Athletics Centre, and there are a lot of jockish types milling about. A few of them are playing a game of catch, and you have to duck as a ball barely misses your head.
<<Actions>>
[[Go to Athletics Centre|Athletic Centre]]
[[Go to Theatre|Theatre]]
[[Go to West Plaza|West Plaza]]
[[Go to East Plaza|East Plaza]]
[[Go to North Plaza|North Plaza]]
[[Go to Plaza Statue|Plaza Statue]]
<br><<nobr>>
<h2>North Plaza</h2>
<<if $location isnot "North Plaza">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "North Plaza">>
<<set $showfooter to true>>
<<if $hunterlocation == "North Plaza">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "North Plaza">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the northern part of the main plaza. A pleasant floral aroma drifts on the breeze from the campus gardens north of here. An entrance to the campus library can be found here. There is a cart set up in the plaza where an otter in bright clothes is selling big balloons.
<<Actions>>
[[Go to Gardens|Gardens]]
[[Go to Library|Library]]
[[Go to West Plaza|West Plaza]]
[[Go to East Plaza|East Plaza]]
[[Go to South Plaza|South Plaza]]
[[Go to Plaza Statue|Plaza Statue]]
<br><<nobr>>
<h2>East Plaza</h2>
<<if $location isnot "East Plaza">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "East Plaza">>
<<set $showfooter to true>>
<<if $hunterlocation == "East Plaza">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "East Plaza">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the eastern part of the main plaza. Students are hanging out, chatting, and doing homework. A permanent booth has been set up and festooned with the school's yellow and purple colors, selling all sorts of school merch. From this part of the plaza, you can easily access the campus library, the theatre, or the university's main hall.
<<Actions>>
[[Go to Main Hall|Main Hall]]
[[Go to Library|Library]]
[[Go to Theatre|Theatre]]
[[Go to South Plaza|South Plaza]]
[[Go to North Plaza|North Plaza]]
[[Go to West Plaza|West Plaza]]
[[Go to Plaza Statue|Plaza Statue]]
<br><<nobr>>
<h2>Library</h2>
<<if $location isnot "Library">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Library">>
<<set $showfooter to true>>
<<if $hunterlocation == "Library">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Library">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the university's library. A central atrium rises up four floors to a frosted glass ceiling, bathing the place in soft natural light during the day. On each floor, stack after stack of books give students access to all the knowledge they need, and then some, to survive university. There is also an area of carrel desks with a number of computers for doing research or writing papers. The library exits out to the eastern and northern parts of the central plaza.
[[Use the computer|UseComputer]]
<<Actions>>
[[Go to East Plaza|East Plaza]]
[[Go to North Plaza|North Plaza]]
<br><<nobr>>
<h2>Gardens</h2>
<<if $location isnot "Gardens">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Gardens">>
<<set $showfooter to true>>
<<if $hunterlocation == "Gardens">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Gardens">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the school gardens. Students with a green thumb cultivate all sorts of plants here, from pleasant-smelling flowers to dangerous man-eating monstrosities. Scattered around the gardens are a number of stone statues, some overgrown with moss. The gardens exit out to the northern part of the central plaza.
<<Actions>>
[[Go to North Plaza|North Plaza]]
<br><<nobr>>
<h2>Athletics Centre</h2>
<<if $location isnot "Athletic Centre">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Athletic Centre">>
<<set $showfooter to true>>
<<if $hunterlocation == "Athletic Centre">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Athletic Centre">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the university's athletics centre. A number of trophy cases show off the various accolades that the school's teams have won over the years, along with jerseys of retired pro players and photographs of teams from ages past.
The athletics center exits to the southern part of the main plaza. You can also visit the running track, the basketball court, or go through the shower room to reach the swimming pool.
<<Actions>>
[[Go to South Plaza|South Plaza]]
[[Go to Athletics Track|Athletics Track]]
[[Go to Athletics Court|Athletics Court]]
[[Go to Shower Room|Athletics Showers]]
<br><<nobr>>
<h2>Athletics Track</h2>
<<if $location isnot "Athletics Track">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Athletics Track">>
<<set $showfooter to true>>
<<if $hunterlocation == "Athletics Track">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Athletics Track">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are standing beside the athletics centre's running track. A number of students are working out here, running around the track at various paces or sitting on the bleachers to watch or rest. A door leads inside to the athletics centre lobby, and another to the athletics court.
<<Actions>>
[[Go to Athletics Centre|Athletic Centre]]
[[Go to Athletics Court|Athletics Court]]
<br><<nobr>>
<h2>Athletics Court</h2>
<<if $location isnot "Athletics Court">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Athletics Court">>
<<set $showfooter to true>>
<<if $hunterlocation == "Athletics Court">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Athletics Court">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are standing on the sidelines of the athletics centre's basketball court. There aren't any scheduled games on today - the schedule was kept clear to accommodate today's TF Tag event - but some students have started a pick-up game and are laughing and playing. Bleachers beside the court provide a place for students to watch or take a break. A door leads back to the athletics centre lobby, and another leads outside to the running track. You can also head to the shower room from here.
<<Actions>>
[[Go to Athletics Centre|Athletic Centre]]
[[Go to Athletics Track|Athletics Track]]
[[Go to Shower Room|Athletics Showers]]
<br><<nobr>>
<h2>Shower Room</h2>
<<if $location isnot "Athletics Showers">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Athletics Showers">>
<<set $showfooter to true>>
<<if $hunterlocation == "Athletics Showers">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Athletics Showers">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the athletics centre's shower room. The air is heavy with the funk of sweat and musk that has permeated all surfaces. Several banks of lockers stand, painted in the school's yellow and purple, for students to store their clothes and effects. There are also a number of shower stalls, and over the sound of the hissing water you can faintly hear the <i>plap plap plap</i> sound of someone in one of them getting a post-workout protein infusion.
The shower room exits out to the athletic center lobby. A sign points to the athletics court and to the swimming pool, reminding students that they must shower first before going for a swim.
<<Actions>>
[[Go to Athletics Centre|Athletic Centre]]
[[Go to Swimming Pool|Athletics Pool]]
[[Go to Athletics Court|Athletics Court]]
<br><<nobr>>
<h2>Swimming Pool</h2>
<<if $location isnot "Athletics Pool">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Athletics Pool">>
<<set $showfooter to true>>
<<if $hunterlocation == "Athletics Pool">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Athletics Pool">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You stand next to the athletics centre's swimming pool. Olympic-sized, with a number of different lanes separated by floating plastic buoys. A few students are swimming laps, overseen by a very bored-looking lifeguard. He gives you a look, warning you not to even think about diving into the pool fully-clothed. There are some bleachers off to the side for spectators, and in the corner there is a pile of limbless CPR training dummies.
A door leads back to the shower room.
<<Actions>>
[[Return to Shower Room|Athletics Showers]]
<br><<nobr>>
<h2>Theatre</h2>
<<if $location isnot "Theatre">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Theatre">>
<<set $showfooter to true>>
<<if $hunterlocation == "Theatre">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Theatre">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the university's drama theatre. Thick, dark curtains frame the stage, which is currently littered with a number of half-painted set pieces for an upcoming production. Lots of comfortable, plush red theatre seats face the stage, and a couple of students are taking advantage of the dark and quiet to nap or write coursework. The theatre exits out to the eastern and southern parts of the central plaza.
<<Actions>>
[[Go to East Plaza|East Plaza]]
[[Go to South Plaza|South Plaza]]
<br><<nobr>>
<h2>Main Hall</h2>
<<if $location isnot "Main Hall">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Main Hall">>
<<set $showfooter to true>>
<<if $hunterlocation == "Main Hall">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Main Hall">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the main hall of the university. A large hub, the main hall is always busy with students rushing to and from class. At the reception desk, a harried-looking fox fields questions from lost visitors. Some vending machines dispense nutritionally-void snacks for hungry students on the go. A big screen overlooks the main hall, currently showing the campus news. It's reporting on the progress of the annual TF Tag game, showing some student-submitted videos of participants getting tagged. <<if $endlessmode>>A graphic in the top corner reminds players that the game won't end til someone has tagged 50 - or the campus has run out of students!<<else>>A graphic in the top corner reminds players that only $hours hours and $minutes minutes remain in the game.<</if>>
From the main hall, you can head to the science labs, the art room, a lecture hall, or exit out to the eastern part of the central plaza.
<<Actions>>
[[Go to East Plaza|East Plaza]]
[[Go to Science Labs|Science Labs]]
[[Go to Art Room|Art Room]]
[[Go to Lecture Hall|Lecture Hall]]
<br><<nobr>>
<h2>Lecture Hall</h2>
<<if $location isnot "Lecture Hall">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Lecture Hall">>
<<set $showfooter to true>>
<<if $hunterlocation == "Lecture Hall">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Lecture Hall">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in one of the university's lecture halls. It is a spacious room with tiers of uncomfortable seats with too-small little tables for students to watch lectures. There is no class in session currently, so some students are using the room to do their coursework while another is drawing rude things on the blackboard. The lecture hall exits out to the university's main hall.
<<Actions>>
[[Go to Main Hall|Main Hall]]
<br><<nobr>>
<h2>Science Labs</h2>
<<if $location isnot "Science Labs">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Science Labs">>
<<set $showfooter to true>>
<<if $hunterlocation == "Science Labs">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Science Labs">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the university's science labs. Here, students conduct various experiments and work on important research. A number of different areas are sectioned off for different purposes, and some students in white coats and goggles are hard at work. Most don't pay you any mind, but one looks at you and jabs a latex-gloved finger at a sign by the door that declares "<i>DON'T TOUCH ANYTHING</i>". The science labs exit out to the university's main hall.
<<Actions>>
[[Go to Main Hall|Main Hall]]
<br><<nobr>>
<h2>Art Room</h2>
<<if $location isnot "Art Room">>
<<set $hidecount to 0>>
<<set $npcaskcheck to 0>>
<<set $searchcheck to 0>>
<</if>>
<<set $location to "Art Room">>
<<set $showfooter to true>>
<<if $hunterlocation == "Art Room">>
<<include "HunterMechanics">>
<<else>>
<<set $huntercatch to 0>>
<</if>>
<<if $targetlocation == "Art Room">>
<<set $targethere to true>>
<<else>>
<<set $targethere to false>>
<</if>>
<<if random(1,$randomcatchchance) == $randomcatchchance>>
<<if !$inventory.includes('Hunter Tracker')>>
<<goto "EscapeHunter">>
<</if>>
<</if>>
<</nobr>>
You are in the art room. While it looks like a natural disaster has befallen the room, you've been assured that it's supposed to look like this. Wooden tables covered with a rainbow of splattered paint, easels set up around a platform with a bowl of fruit, mannequins with scraps of cloth pinned on them, and misshapen clay sculptures are all to be found here. A few students are working on art projects with varying degrees of skill.
The art room exits out to the main hall of the university.
<<Actions>>
[[Go to Main Hall|Main Hall]]
<br><<nobr>><<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<h2>Bad End: West Plaza</h2>
<<set $showfooter to false>>
<</nobr>>
Hiding among the crowd in the plaza, you don't notice the $hunteradj $hunterspecies approaching until it's too late. He leaps out from behind a throng of people and quickly fires a dart, right into your thigh.
Some of the nearby students gasp and whip out their phones, excited to witness what's about to happen.
You feel an itching sensation on your back and reach back to feel it, discovering that a zipper has grown up the length of your spine! Your legs begin to swell and you wobble as they suddenly no longer support your weight, falling onto your swollen, plush butt with a soft <i>flumph</i>.
Your paws begin to swell, becoming cartoonishly large. A strange seam appears around your wrists and ankles, and then to your surprise your paws fall right off! As your arms begin to change, they become limp and floppy, til they hang loosely by your side.
Your head begins to grow larger, and your eyes gain a weird screen door effect. You try to open your mouth to say something, but it seems to be locked in place, a permanent happy smile with a felt tongue lolling out.
Suddenly you feel very dizzy and your vision spins as your head topples off of your body, rolling on the ground and facing the suddenly limp and flat fursuit on the ground in front of it.
You watch helplessly as a $npcadj $npcspecies picks up the body of the fursuit, unzipping the zipper in the back, and begins to climb inside. You can feel him entering you, and it's a very strange sensation. He dons your big, plush paws and feet, and someone helps him to zip the back of the suit up.
Then you are soaring through the air as the $npcspecies lifts your head up, and a curious sensation overtakes you as he put his head inside yours.
The assembled crowd cheers as the fursuiter does a little dance for them, hamming it up with exaggerated movements. You're initially embarrassed to be put on display like this, but the cheers and adoration of the crowd does feel quite nice... you begin to hope that whoever's wearing you decides to do this often... and remembers to wash you.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndPlazaW")>>
<<run $unlockedEndings.push("BadEndPlazaW")>>
<</if>><<nobr>>
<h2>Bad End: North Plaza</h2>
<<set $showfooter to false>>
<</nobr>>
You take a moment to appreciate the colorfully-dressed otter making a very large and suggestively-shaped balloon animal at his cart. It was a very unfortunate time to drop your guard, however, as you suddenly feel the barrel of a tagger pressed against your back.
"Appreciating the balloons, eh?" a voice purrs in your ear. "Big mistake." At point-blank range, the dart hits you like a punch and you stumble forwards, almost knocking over the balloon cart.
You turn around to see your hunter, a $hunteradj $hunterspecies, smirking and tossing his expended tagger aside. He crosses his arms and stands back in satisfaction to watch his handiwork.
Your shirt begins to feel tight around your body, and you struggle to quickly pull it off as your limbs and torso begin to swell. You start to hear a hissing noise coming from your pants, and as your pants rip open from your rapidly-expanding body your cock pops out - but it's not a cock at all, it's the neck of a balloon! And, to your horror, air is escaping from the opening!
The growing crowd watching the action laughs as you grab at your former cock in embarrassement and try to tie it into a knot to stop the escaping air, but your ballooning fingers make it almost impossible.
"Let me help you with that," the $hunterspecies laughs, stepping forward. He roughly grabs your former cock and stretches it out obscenely, to more laughs from the crowd, causing the air to squeak out in a high whine.
The feeling is like the most intense handjob you've ever received, and you try to moan as he twists and ties you shut, but all that comes out from you is a squeak.
Your fur vanishes, replaced by shiny, colorful rubber. Your features smooth and round out as your body continues to expand, and you start feeling lighter and lighter on your feet - so light, you start to lift up off the ground!
Thankfully, the $hunteradj $hunterspecies grabs your leg before you float up into the sky, and he ties a string around the knotted valve - to more laughs from the crowd.
"I'd love to carry you around with me," he says, handing you off to the balloon artist, "but I've got places to be and more targets to catch! Ta-ta!"
He grabs your discarded tagger and takes off, leaving you to float up among the other colorful balloons, bumping against them with gentle squeaks.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndPlazaN")>>
<<run $unlockedEndings.push("BadEndPlazaN")>>
<</if>><<nobr>>
<<set $npcspecies to $specieslist.random()>>
<h2>Bad End: South Plaza</h2>
<<set $showfooter to false>>
<</nobr>>
As you make your way through the plaza, you give the game of catch a wide berth, hoping to avoid any stray balls flying your way. Regardless, one of the players calls out, "Look out!" and you ready yourself to dodge the ball. But, you realize as you feel a sudden prick in your back, it wasn't a ball he was warning you to watch out for.
You turn to see a $hunteradj $hunterspecies stalking towards you, lowering his expended tagger. He glares at the $npcspecies, who shrugs and snickers. "Didn't do him any good anyway," the $npcspecies says.
"Looks like your time is up!" the hunter says. "Couldn't dodge me forever."
You try to think of something witty to say in response, but there's really no point. You can feel the serum working its way through you, and soon you'll be out of the game for good. Your heart is thumping in your chest, hard enough that you can practically hear it. But instead of a <i>ba-dum, ba-dum</i> sound, you'd swear it's almost making a <i>tick, tick, tick</i> sound!
"Ooh, interesting," the $hunterspecies says, watching you begin to transform. Your arms are the first thing you notice, besides your strange heartbeat, of course. They begin to flatten out and take on a dark brown, leathery texture. You try to move them, but they've become limp and boneless, sticking out of your sides in a comical t-pose.
The ground rushes up to meet you as your legs begin to shrink, disappearing into your body. Your cock doesn't disappear, however, but you do watch in alarm as it changes from a nice, solid length you're proud of to a golden ridged bulb that just sticks directly out of your crotch.
"I think I know what this is for," says the $hunterspecies, approaching you as you lay on the ground looking up at him. He reaches down and grabs your knob, pulling it out and twisting it.
<i>Oh, fuck, that feels good!</i> Your eyes roll back in your head at the pleasure of the feeling and your vision spins. You barely notice as your torso begins to take on a golden color and deform, flattening and becoming more circular as your size shrinks rapidly. Your head shifts down, merging with your torso, and two black things sprout from your face. As the $hunterspecies twists your knob, the black protrusions spin around in a circle.
"There we go," he says, shoving your knob back into place with an orgasmic clunk. A ticking sound fills your hearing, and you can feel in your very core the gears that are working to make that happen.
He picks you up and wraps you around his wrist, fastening your brown leather straps. "Now I'll know exactly when I catch my next target."
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndPlazaS")>>
<<run $unlockedEndings.push("BadEndPlazaS")>>
<</if>><<nobr>>
<h2>Bad End: East Plaza</h2>
<<set $showfooter to false>>
<</nobr>>
A moment of distraction is all it takes. The $hunteradj $hunterspecies catches sight of you in the crowd, and he's on you before you can even take two steps, grabbing your arm so you can't make a break for it.
"Do you have any idea," he huffs, sweat dripping off his brow, "how much I've been running around campus looking for you, bro?" Some students have taken notice of the commotion, and started to gather around to watch.
He raises his tagger. "I'm so gonna enjoy this!" He fires, the dart striking you right in the chest. The $hunterspecies lets go of your arm and steps back, panting.
You try to say something in your defense (It's your job to avoid him, after all), but your throat suddenly feels very dry as the dart's serum gets to work.
Your legs are the first to go, fusing together from your crotch down towards your feet. As they merge, your body seems to widen, and the shift in shape makes it hard to keep your balance.
You flop down to the ground, watching your body deflate and flatten down before your eyes, as though an invisible steamroller is running up your body from your feet up towards your head. Your fur is shifting too, changing texture and becoming more uniform.
Your vision is forced upwards as your head merges into the rest of your body, laying prone on the plaza stones. As you feel your body continue to flatten and your arms merge into your sides, you can only see the sky - and the $hunterspecies looking down at you, watching with hungry interest as you change. You can't move a bone in your body - because, you rightly suspect, you don't <i>have</i> any bones. You can only lay there helplessly as the $hunteradj $hunterspecies finally reaches down to pick you up, your body flopping limply in his paw.
"Perfect, just what I needed," he says, raising you up and mopping the sweat off his brow. "A nice soft towel to soak up all this sweat.
You feel a growing dread as he raises his arm, bringing you closer to his sweaty pits. He rubs you in mercilessly, making sure your absorbent form wicks away every last drop of the sweat you made him generate.
You can feel it sinking into you, infusing into your very being. You're you, you have to stay you, but his absorbing his sweat changes you. You feel even closer to him, feel as though drying him gives you purpose. As he uses you roughly, wiping you in his other pit, you begin to relish it.
"Mmf, get used to it," the $hunterspecies says, "I have a feeling I'm gonna be sweating a lot more chasing down the other targets today."
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndPlazaE")>>
<<run $unlockedEndings.push("BadEndPlazaE")>>
<</if>><<nobr>>
<h2>Bad End: Plaza Statue</h2>
<<set $showfooter to false>>
<</nobr>>
You're gazing up at the statue of the university's founder astride the horse, appreciating how much detail the sculptor put into every ridge and vein of the horse's massive cock, polished by countless hands rubbing it. You don't notice the $hunteradj $hunterspecies creeping up on you until you see him reflected in the shiny head of the horse cock, tagger raised. You try to dodge, but the dart is already sailing through the air, and it finds its mark.
"Tsk tsk," the $hunterspecies says, "Bad time to get distracted! Well, it's good for me!"
You clutch at your arm where the dart hit, and your fur at the impact site has already started to harden, draining of color until it's a stony grey.
"Well," the $hunteradj $hunterspecies says, approaching you, "looks like our plaza's about to get a new decoration."
Some nearby students have begun to take notice of the commotion, and are gathering around to watch this play out.
"Soon you're just gonna be another statue, methinks," teases the $hunterspecies. "Standing here in the plaza for everyone to admire." He reaches out and deftly unbuttons your pants. "Let's give them something to admire, hm?"
You whine a little as he tugs your pants down, letting your cock flop out. Someone approaches you from behind and pulls your shirt up over your head, and soon you're standing naked in the plaza in the center of a circle of onlookers, your cock rapidly stiffening at the realization that they're gonna see you naked for the rest of time.
Where your body has begun to turn to stone feels cool and heavy, spreading down your arm to your fingertips, locking them in place. Your hunter nudges your still-flexible limbs into a more interesting pose, commanding you to hold it for him and everyone to appreciate.
You comply, standing with one hand on your hip and looking confident but bashful.
"Mm, that's nice," he purrs, grabbing your cock with his $hunterspecies paw. You gasp at the touch and drip some precum, which he spreads around your cock head as he begins to jerk you off. "Let's see if we can get you to cum one last time for these lovely folks watching."
The crowd whoops and cheers, egging you on. You hold the pose as best you can, whimpering and moaning as he jerks you off. Slowly but surely the transformation spreads, your body becoming cooler and stiffer. Where your feet meet the ground stone spreads out suddenly and rises into a lip around you, forming a basin in which you stand with a metal drain at the bottom between your feet.
With great difficulty, you tip your head back and moan loudly. You can feel your orgasm approaching, and beg that your balls keep from turning to stone long enough for you to cum.
Your moan is cut short as your head petrifies, giving you a permanent, stony expression of orgasmic pleasure. Just as it turns to stone, your cock erupts, and a geyser of water gushes out. You feel like you are endlessly cumming, an orgasm that just won't finish.
The $hunterspecies leaps back to avoid getting splashed, and he laughs as water pours forth from the new fountain. He opens his mouth and drinks some of the water, smacking his lips in satisfaction.
"Mmm, cool and refreshing!" he declares, to laughs from the crowd. He takes a second sip before picking up your tagger and taking off, leaving you to quench the thirsts of the growing queue of students.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndPlazaStatue")>>
<<run $unlockedEndings.push("BadEndPlazaStatue")>>
<</if>><<nobr>>
<h2>Bad End: Gardens</h2>
<<set $showfooter to false>>
<</nobr>>
You creep through the gardens, looking for $targetname. You hear a snapping twig off to your left and you whirl around, tagger drawn. But it's not $targetname that emerges from behind a suggestively-shaped topiary.
A $hunteradj $hunterspecies steps out, his tagger trained on you. You look around, but there's nowhere you can run.
"Beautiful day, innit?" he asks, smirking. "Don't you just love the fresh air? It's a great place to get some sun." With a little <i>pew</i>, the tagger fires, and the dart gets you in the right pec.
You stagger back off the path, your foot sinking into the soft ground beyond the stone walkway. You try to pull it out, but it seems to be rooted in place. Your other foot has begun to sink in, too, and a sickly greenish color is spreading up from your ankles and up your legs, causing your fur to vanish and be replaced with a waxy texture.
You give a little yelp as the change reaches your crotch. Your cock head blooms, becoming a beautiful pink flower with an intoxicatingly alluring scent. The $hunterspecies chuckles, leaning against the topiary and watching.
"My, how you've bloomed," he teases. You try to flip him off, but as you raise your finger it becomes a leaf, followed shortly by the rest of the fingers on your hand. Your arms become stiffer and more difficult to move, and before long all you can do is gently sway in the breeze as a large, vaguely humanoid-shaped plant.
"What a beautiful plant," the hunter says, stepping forward and caressing the stem that used to be your cock. Your flower emits a puff of pollen at the touch, and he sneezes.
Waving the pollen away, the $hunterspecies bends down to pick up your discarded tagger. "Careful, or you might need some pruning."
He departs, leaving you to stretch up towards the sun and bask in its warmth.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndGardens")>>
<<run $unlockedEndings.push("BadEndGardens")>>
<</if>><<nobr>>
<<set $npcspecies to $specieslist.random()>>
<h2>Bad End: Library</h2>
<<set $showfooter to false>>
<</nobr>>
You're walking through the stacks, looking for your target, when suddenly a $hunteradj $hunterspecies steps out from behind a row of books, tagger drawn and aimed at you.
You open you mouth to cry out, but the $hunterspecies just winks and says "Shh! It's a library, after all."
When you stumble back into the shelf behind you as the dart hits you in the arm, a book topples off the shelf and bounces off your head. You're in the library's Adult Books section, and you've just been beaned by a saucy novel about a $npcspecies with insatiable lust.
You reach up to rub your head, but the impact didn't really hurt at all. Where you rub, your head has become strangely squishy, and you poke at it in fascination. This becomes harder as your arms begin to shrink, however, slowly merging into your body until you're standing armless in front of the $hunterspecies, wobbling on quickly-fusing legs.
Your fur melts away and body takes on the appearance of soft and squishy silicone. The hunter steps forward as you shrink and start to topple over, grabbing you before you flop onto your face.
"Ooh," he whispers, "you're quite soft." His hand reaches around and finds your exposed tailhole, easily sticking a finger inside and wiggling it around. He fingers you as you continue to shrink, his finger becoming relatively larger and larger in your smaller form. You moan quietly at the sensation, your tailhole stretching more than seems possible. "And self-lubricating, too!"
Your moaning cuts off abruptly and you realize that your mouth is stuck in an 'O' position - just another hole for the $hunterspecies to use. As he fingers you, you find yourself wishing that he'd stick something other than his finger in your sensitive tailhole.
"I think you're just about done," the $hunterspecies croons, and pulls his finger out with a wet <i>pop</i>. He bends down and picks up the $npcspecies erotica that fell on the floor and brings you and it over to a private reading cubicle. He looks furtively around to make sure there's no one nearby, then unbuttons his pants. His big $hunterspecies cock has already gotten hard, and he positions it in front of your tailhole.
Volume-wise, you and his cock are practically the same size. As he enters you he stretches you obscenely, your soft silicone form molding around his cock. It feels <i>incredible</i>. You've never been filled so fully, and he wastes no time in demonstrating how good it feels to have a huge cock plunging in and out of you.
The only soud is a soft <i>plap plap plap</i> as he uses your onahole form, flipping through the pages of the erotica with one hand and slamming you down to his base with the other. You are in a state of bliss, as the sensitivity of your tailhole has spread all the way through the textured tunnel that runs the length of your body up to your mouth, and every movement of his cock sends shivers of pleasure through you.<<set $npcspecies to $specieslist.random()>><<if $npcspecies == $hunterspecies>><<set $npcspecies to $specieslist.random()>><</if>><<set $npcadj to $adjlist.random()>>
"Ahem," a voice tuts, and the $hunterspecies stops suddenly. A $npcadj $npcspecies stands at the entrance to the cubicle, watching the hunter defile you in the library.
"Uhh, I can explain--" the $hunterspecies says.
"Is that..." the $npcspecies gestures at the onahole in his hand. The hunter nods. "Oh. Oh, damn. That's hot. I... couldn't help but notice he's got two holes..." The $npcspecies seems suddenly bashful.
A grin spreads across the $hunterspecies's face. "Wanna help put him to the test?"
If one cock stretching you out felt amazing, <i>two</i> cocks was indescribable. Your silicone form is stretched to its limits as the $npcspecies puts his cock in your mouth, and the two men fuck you from both ends, their cocks rubbing against each other and against your ribbed tunnel.
They grip you tight as they fuck in tandem, and the feeling of the back and forth as they pull in and out is beyond words. You could do this forever, but unfortunately, they cannot, and soon their breath begins to quicken and their thrusts become more aggressive.
"I'm... close..." the $hunterspecies pants. "Me too!" the $npcspecies gasps.
As quietly as they can (hint: it's not quiet) they cum, and you balloon out from the sudden rush of cum from two pairs of balls that unload themselves in you simultaneously.
When they pull out of you, cum gushes from both of your used holes, dripping to the carpet. The $npcspecies excuses himself to go clean up, and the hunter gathers up you and the erotica book.
"Damn that felt amazing," he murmurs, "but now I gotta get back to the hunt."
Without fanfare, he dumps the book and you, still dripping, into the "Book Return" slot by the exit to the library, and goes on his way.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndLibrary")>>
<<run $unlockedEndings.push("BadEndLibrary")>>
<</if>><<nobr>>
<h2>Bad End: Theatre</h2>
<<set $showfooter to false>>
<</nobr>>
The theatre is silent except for the quiet snoring of a student napping in one of the theatre seats. You creep around, looking for $targetname, and decide to look around the set pieces on stage.
As you peer inside a large wardrobe with a false back, you hear movement from the wings. Looking over suddenly, you see a $hunteradj $hunterspecies emerging from the shadows, his tagger drawn.
You think about diving into the wardrobe, but even with the false back you don't think it would save you from your hunter. You're caught.
"Looks like it's curtains for you," he declares. You raise an eyebrow. "Sorry," the $hunterspecies says, "got caught up in the moment." He shoots, and you fall back onto the nearby sofa as the dart hits you in the gut.
"You weren't an easy one to track down," says the $hunteradj $hunterspecies. "But I got you in the end. Now give me your tagger."
You fumble, trying to draw your tagger to hand to him. Your fingers aren't responding well, and in fact seem to be becoming stubbier as they shrink down into your hand. The tagger clatters to the floor, and the $hunterspecies picks it up, watching you as you change on the sofa.
Along with your fingers, your toes have also vanished, leaving your limbs with blunt stumps at the ends. Your fur has begun to soften, becoming more plush. The $hunterspecies grows in front of your eyes as you shrink, smaller and smaller until your whole body sits easily on the sofa, stubby legs and all. There's an itchy feeling on your hip, and a tag sprouts from your side, declaring you to be machine-wash safe.
You try to move your arms, but they're stuck in place, sticking out in front of you like you're reaching for a hug. Your throat feels dry and you cough, watching with surprise as a little bit of cotton fluff falls out.
You open your mouth to say something, but your words are lost in your throat as your mouth closes itself again, stitching itself shut as it turns into nothing more than a friendly smile stitched into your face with thread.
Screwing up your eyes, you look down at your nose as it hardens and turns shiny, nothing more than a plastic facsimile of what used to be there.
It becomes harder to think. Your brain feels... fluffy. Thoughts float lightly by, unbothering to you. You're just happy to sit here, soft and friendly.
The $hunterspecies reaches down and picks you up, giving you a squeeze. Your body compresses and it feels really good. You want to be held by him and squeezed by him and loved by him.
"Aww, you're adorable," he says. "I'd love to keep you, but you're a bit too big to carry around with me for the rest of the day." He drops you back onto the sofa, where you land with a soft <i>flumph</i> and topple over onto your side. "You look good on the sofa, though. A nice part of the set decoration." He smiles, and inspects your tagger for his next target. "Maybe I'll come back for you after the game is over."
He exits stage left, and you hope he does.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndTheatre")>>
<<run $unlockedEndings.push("BadEndTheatre")>>
<</if>><<nobr>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<if $npcspecies == $hunterspecies>>
<<set $npcspecies to $specieslist.random()>>
<</if>>
<<if $npcadj == $hunteradj>>
<<set $npcadj to $adjlist.random()>>
<</if>>
<h2>Bad End: Main Hall</h2>
<<set $showfooter to false>>
<</nobr>>
The main hall of the university is busy with throngs of students heading to and from class, and you keep an eye out for $targetname, hoping to catch him as he makes his way through the crowd.
Your eye is caught by a $hunteradj $hunterspecies, who seems to be moving in your direction with purpose. Your danger sense spikes, and you start moving away, as quickly as you can through the students. A $npcadj $npcspecies isn't looking where he's going and crashes into you, sending you sprawling to the floor.
You see the $hunterspecies drawing closer through the forest of legs and try to keep low hoping he won't see you, but he finally catches up with you near the bank of vending machines.
"Gotcha," he growls, his tagger aimed at you as you slowly get to your feet. You back up against the wall, searching for a way out but seeing none.
You flinch as the dart strikes you in the leg and look back to the $hunteradj $hunterspecies, who is watching with smug satisfaction. "Wrong place, wrong time, I guess," he says.
Your legs are the first to change, quickly fusing together into one solid mass. You wobble briefly, wondering if you're about to humiliate yourself and fall on your face, but your balance steadies as your whole body begins to widen and thicken.
Your fur disappears as your arms also merge into your body, taking on a shiny, black, metallic texture. Your clothes rip off as you expand, falling to tatters in front of you. One of your nipples has taken on a silver color, becoming a little dial that can be twisted for coin return. In the middle of your chest a glass window has appeared, growing rapidly to show the contents within.
Packets of gummy candy and chips suspended between corkscrew rods are visible within your chest, prizes for whomever pays. Your mouth narrows until it's just a thin line, big enough only for a coin. You feel your cock stretching bizarrely, the slit becoming impossibly wide near the bottom of your rectangular body.
In moments, where you once stood, there is nothing but a large, reasonably-priced vending machine.
"Oh, son of a bitch," the $hunterspecies curses. "Your tagger is inside you." He fishes in his pocket for some coins and shoves them in your mouth. You can taste their coppery tang as they go in, disappearing down somewhere into your depths. He jabs a finger at the panel, and you feel one of your corkscrew rods twisting. There's a sudden orgasmic sensation as the tagger drops, landing with a thunk inside the catchment area that used to be your cock.
The $hunterspecies grabs the tagger and takes off, on the hunt again.
As the day goes on, students approach, popping coins into your mouth and ordering some of the treats you contain within.
You feel an orgasmic rush to dispense the item, but with each item that leaves, you feel like a part of you has disappeared. You're not sure what's missing, but you know there's something that should be there. Until someone orders one of your packages of gummi worms, and you forget that you've forgotten anything. You're just a vending machine, after all. You don't need to remember.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndMainHall")>>
<<run $unlockedEndings.push("BadEndMainHall")>>
<</if>><<nobr>>
<h2>Bad End: Science Labs</h2>
<<set $showfooter to false>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<if $npcspecies == $hunterspecies>>
<<set $npcspecies to $specieslist.random()>>
<</if>>
<<if $npcadj == $hunteradj>>
<<set $npcadj to $adjlist.random()>>
<</if>>
<</nobr>>
"Y'know," a voice suddenly purrs in your ear, "this is where they developed the serums for TF Tag."
You slowly turn around, facing the $hunteradj $hunterspecies who managed to sneak up on you while you were distracted by one of the bubblier experiments going on.
"The same serum that you're about to get some first-hand experience with," he sneers, pressing the tagger into your stomach.
"Oi," one of the scientists, a $npcadj $npcspecies says, "if you're about to make a mess, do it in the chamber." He points a stern finger at the small platform in the center of the room, above which a glass tube is suspended.
"You heard the $npcspecies," your captor says, nudging you with his tagger towards the platform. With mute resignation, you comply, stepping up on the platform. The $hunterspecies presses a button on a panel nearby, and the glass tube begins to lower.
Before it can lower all the way and shield you, he fires his tagger, and you wince as the dart hits you in the leg.
Setting his expended tagger down on a nearby workbench, the $hunterspecies stands back to watch what comes next.
You can feel the serum coursing through you, getting to immediate work, changing the composition of your atoms. You feel like you're a million things at once. A sock, a ball, a collar, a toy, a balloon... your mind experiences the feelings and textures and shapes of everything you can imagine.
You raise up a paw and press it against the curved glass wall of the chamber, and your paw jiggles and deforms, jelly-like.
It grows harder to remain upright, and you find yourself slowly sinking towards the floor of the chamber. You look down to see your feet and legs slowly dissolving, turning into little more than a vaguely green, translucent goo.
It's fascinating to watch, your body falling apart before your eyes. As your paw slides down the glass wall it smears, leaving a trail of green goo like a radioactive snail.
The $npcspecies has joined your hunter at the panel, and is pressing a few buttons and saying something to the $hunterspecies that you can't hear through the thick glass wall and the sloshing sound of your body liquifying.
You continue to feel like a million things at once. Infinite potential. You could be anything. Except, you realize, the shape you're still stubbornly holding together.
As soon as you have the realization, your body stops trying to hold its shape, and all at once you collapse into goo, a wave of it splashing up the sides of the chamber and rippling until it settles, your clothes and tagger bobbing on top.
The $npcspecies presses a few buttons on the panel, and there is a whirring noise. A drain opens up at the bottom of the platform, and you begin to swirl down the drain.
The drain channels you into a device that begins injecting small amounts of your goo into long, metallic darts, filling them up one by one with the very serum that was just used on you.
When all of you has been drained away and divvied up among the darts, the $npcspecies presses a button and the glass tube rises again.
The $hunterspecies steps up to the platform and carefully sifts through your empty clothes, grabbing your discarded tagger and taking it with him as he leaves the lab.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndScienceLabs")>>
<<run $unlockedEndings.push("BadEndScienceLabs")>>
<</if>><<nobr>>
<h2>Bad End: Art Room</h2>
<<set $showfooter to false>>
<</nobr>>
There's a clattering sound and you look over in alarm, discovering that one of the mannequins modelling fashion wasn't a mannequin at all, but a $hunterspecies in disguise! You try to make a run for it, but you slip on a puddle of paint and feel the sharp prick of a dart finding its mark as you try to regain your balance.
The $hunteradj $hunterspecies approaches, tossing his tagger aside. "Gotcha!" he says gleefully. "I can't believe you didn't see me there, hah!"
You try to say something back in retort, but to your shock you discover you can't open your mouth! Your hand flies up to your mouth, and discovers only a smooth spot where it used to be! You feel around your face, feeling your features smoothing out and becoming more generic.
Your fur begins to disappear, replaced with a shiny white plastic. Fearing what you're about to find, you pull down your pants and see that your beautiful cock has vanished, replaced by a smooth white mound.
"Ooh," the $hunterspecies says, reaching for your null crotch. You flinch as he rubs it, as the whole region is even more sensitive than your cock used to be. "Looks like you wouldn't be needing that anymore, anyway."
You wish you could whine with pleasure at how good it feels, and try to push him away, but your shiny plasticy arms have become stiff and they lock in place as you reach out.
"Now now," he teases, "that's not a good pose for you." He reaches up and repositions your arms, rotating them smoothly so that they're down in a more neutral pose.
You wobble briefly as your legs stiffen, and the $hunterspecies grabs you, lifting you up easily and carrying you over to a metal pole on a flat base near the other mannequins. As he lowers you down, you feel the pole going up your ass, holding you in place so you won't fall over.
"There, that's better," he says, looking at the shiny white mannequin before him. "I'm sure you'll do a great job modelling clothes for the art students!" He grabs a fancy hat and a feathered boa from the table nearby and puts them on you.
"Ahh, perfect!" The $hunterspecies chuckles. "And now they won't even know which one of the mannequins wasn't here before. Because that's all you are now!" He boops you on the nose, and picks up your discarded tagger. "Have fun!"
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndArtRoom")>>
<<run $unlockedEndings.push("BadEndArtRoom")>>
<</if>><<nobr>>
<h2>Bad End: Lecture Hall</h2>
<<set $showfooter to false>>
<</nobr>>
Only a few students are populating this lecture hall, working on coursework or chatting quietly. You make your way down the aisle, checking to see if $targetname is among them.
You don't see the $targetspecies, but you turn to leave when you see a $hunteradj $hunterspecies at the top of the room, the door swinging shut behind him as he casts a hunting eye around the room.
You quickly duck behind the lectern at the front of the class, hoping that he didn't spot you. You calculate the distance to the professor's exit door, and are just about to make a break for it when a shadow falls over you and you look up to see the $hunterspecies, his tagger aimed at you.
"Busted," he says, and shoots a dart right into your stomach.
Some of the students watching chuckle, and one or two pull out their phones to record what comes next.
It starts with a numbing tingle in your fingers. You watch as the color drains from your fur, and your fur crumbles away into powder.
One by one your fingers drop off, nothing more than pastel-colored sticks of chalk.
"Oh damn," the $hunterspecies says, quickly snatching the chalk sticks as they fall before they can smash on the ground below. He looks around and finds a box, grabbing it quickly to catch any further parts of you that fall off.
Bit by bit, your arms and legs change, shriveling down to a more manageable size before paling and popping off, leaving you an absurd-looking limbless torso sitting on the ground next to a box half-filled with chalk.
The numbing tingle spreads to your chest and head, and you begin to feel like you're being pulled in every different direction at once. It's a very queer sensation and you fight it off as long as you can, but eventually it's too much and with a cathartic release you feel yourself falling to pieces... literally.
The cascade of chalk sticks is more than the $hunterspecies can catch at once, and pieces of you roll away in an avalanche of chalk. You can feel yourself in every piece, a thousand places at once.
"Let's see if you're any good, hmm?" the $hunterspecies says, taking a stick of chalk from the pile on the floor. He steps up to the lecture hall's chalkboard and begins to make a crude drawing, scraping you across the surface and smearing your being on the green board.
As he does so, you feel a small piece of yourself being wiped away, reduced to dust on the surface of a chalkboard. In the shape, it turns out, of a large horse cock.
He uses another couple of sticks of you to color in the big cock and balls, each stick expended causing you to forget a little more of... something. You're not quite sure what, anymore.
The $hunterspecies eventually slaps his hands together in a puff of chalk dust and steps back to admire his handiwork. "Not too bad, if I do say so myself," he muses. "But enough horsing around, I've got targets to catch."
He gathers (most of) your scattered pieces into the box and sets it on the lectern, then picks up your discarded tagger and sets off on the hunt again.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndLectureHall")>>
<<run $unlockedEndings.push("BadEndLectureHall")>>
<</if>><<nobr>>
<h2>Bad End: Athletics Centre</h2>
<<set $showfooter to false>>
<</nobr>>
The campus Athletics Centre hosts quite a museum of trophies and plaques, pennants and banners, all celebrating the past glories of the school. Glass cabinets line the walls of the centre's entrance, showing off the years of great victories. And, as you're soon to discover, some great defeats.
A $hunteradj $hunterspecies bursts out of the door to the shower room, tagger drawn, and you react quickly, taking off running, hoping that you can evade him and avoid whatever fate comes with the tip of a dart.
It's no use. Just as you reach the door of the Athletics Centre, the plaza (and freedom) just outside, you feel the dart pierce your calf.
"Ahh, can't run from me," the $hunterspecies says as you stumble forward and turn to face him. He tosses his expended tagger to the side, a look of smug victory on his face.
"Another win for me," he brags, "another target claimed."
A feeling of numbness is spreading from the point of impact, and you risk a glance at the back of your leg to find that your fur is rapidly disappearing. In its place, a shiny, smooth golden texture reflects your surprised face back at you.
"Gimme your tagger," the $hunterspecies demands, reaching out a paw. You hand it over and he inspects the target name written on the side: $targetname.
Meanwhile, you watch as your legs begin to fuse together, your feet merging and spreading out into a round, golden base that keeps you from tipping over as your body continues to change.
You find your arms planting themselves on your hips, the backs of your hands fusing to your hips as your arms turn to gold. Your chest swells out, becoming rounder as your head shrinks to a small decorative knob atop it.
Just before your chest expands too much, you see a small brass plaque grow in the middle of your chest, engraved with your name and the humiliating accolade of "TF Tag Loser". Your entire being then shrinks to a more manageable size, the ground rushing up towards you.
"Done yet?" the $hunterspecies asks as you finish shrinking with a last little wobble and fall still, "I've got other losers to catch." He reaches down and picks you up, reading out your plaque with satisfaction.
The $hunterspecies carries you over to a trophy cabinet and jimmies open the glass door, putting you inside next to a dusty basketball award. "Wonder how long it'll take before anyone notices this thing wasn't here before?" he asks with a sneer, then shrugs. He closes the cabinet and departs.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndAthletics")>>
<<run $unlockedEndings.push("BadEndAthletics")>>
<</if>><<nobr>>
<h2>Bad End: Shower Room</h2>
<<set $showfooter to false>>
<</nobr>>
You're looking around the shower room for $targetname, but don't see the $targetadj $targetspecies and you can't imagine that he's hiding in a locker. You're about to give up and search elsewhere when you catch movement in the corner of your eye, near the lockers.
You whirl around, but it's not $targetname you see. A $hunteradj $hunterspecies is stalking towards you, his tagger raised. You scramble backwards, tripping over one of the benches between the rows of lockers and crashing to the floor.
The $hunterspecies is upon you now, and you know there's no escape.
"Mm, you look good down there," the $hunterspecies says, as you struggle up to a sitting position. "Your head right at the perfect level."
Indeed, you find yourself face to face with his crotch, and you can see a growing bulge in his pants. He looks down at you, smirking, and fires his tagger.
You feel a pinch as the dart hits your shoulder, followed by a wave of numbing warmth. You understand the peril that you're in, and that soon your body is going to change, but you can't stop staring at that bulge.
He sees you looking, and obligingly unbuttons his pants, letting them drop to the floor. His $hunterspecies cock pops out, thick and dripping with precum. He has worked up a musk from running around campus looking for you, and the smell is strangely intoxicating. Your mind is becoming foggy and the thought screaming through your head, drowning out all other thoughts, is just how badly you want your face all up in that $hunterspecies crotch.
The $hunterspecies doesn't object as you shimmy closer, stuffing your face into his crotch with a satisfied moan. You wrap your arms around his waist and pull him closer, letting his cock rub against your face and smear precum on your muzzle.
"Mm, that's good," he says, grabbing the back of your head and pushing you deeper into the fluff of his crotch. "Get right in there."
You happily oblige, taking a big deep huff and finding the scent both powerful and satisfying. You barely even notice as your hands, wrapped around his waist, fuse together, flattening down and becoming stretchy elastic.
You can taste his balls as your tongue hangs out of your mouth, licking all around them and enjoying how they feel and taste.
Your body lifts up off the ground as you begin to shrink, your legs wrapping around his and meeting your arms, flattening and fusing into them where they meet with a line of stitches.
Your body flattens out as well, your fur disappearing into a soft, stretchy cotton blend. Your face presses tighter against his crotch, and you can feel his boner against your face, filling your pouch so satisfyingly. Some of his precum drips out, soaking into your face. It feels amazing.
"Damn, just a fuckin' jockstrap now," the $hunterspecies says, and you feel his paw grabbing at his cock through you. "You're really soft and comfortable. And," he stretches out your waistband and lets it snap back against his waist, "quite stretchy too."
You feel him bend down as he puts his pants back on, the extra layer of fabric pressing you even more into him, and you have absolutely no complaints. This is exactly where you want to be, with a big musky $hunterspecies cock filling up your entire being.
"Get comfortable down there," he says, "cause I am gonna be wearing you a <i>lot</i>!"
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndAthShowers")>>
<<run $unlockedEndings.push("BadEndAthShowers")>>
<</if>><<nobr>>
<h2>Bad End: Swimming Pool</h2>
<<set $npcspecies to $specieslist.random()>>
<<if $npcspecies == $hunterspecies>>
<<set $npcspecies to $specieslist.random()>>
<</if>>
<<set $showfooter to false>>
<</nobr>>
Glancing around the pool, you cast around for $targetname, but you don't see the $targetspecies anywhere. You can't imagine he's chosen today to go for a swim, so you poke around the bleachers, tagger drawn, and come face to face with...
"Found ya," the $hunteradj $hunterspecies says, his tagger aimed right at your chest. You know you wouldn't get two steps before he tagged you, so you sigh and drop your arms to your sides.
"Thinking of goin' for a swim, were we?" asks the $hunterspecies, chuckling. "Well, think I can oblige."
The dart hits you suddenly, causing you to stumble back. Your foot slips on a poolside puddle and you lose your balance, toppling back into the water with a splash.
The $hunterspecies pays you no mind, reaching down and picking up your tagger. "All yours!" he calls to the lifeguard, a sporty-looking $npcspecies, and departs in search of his next target.
You splash around in the water, trying to right yourself and get back to the poolside, but your limbs are being uncooperative. The edge of the pool becomes further away as you find yourself shrinking, your limbs disappearing into your body.
You can only float there, half-submerged, in humiliation as the changes sweep over you, your body flattening and your soaked fur vanishing, replaced by stretchy red fabric.
Your torso bends itself backwards at an angle no spine could ever allow, until what's left of your legs and crotch meet the back of your head and merge into it, leaving a round opening at the top. In only moments you're nothing more than a stretchy red speedo, bobbing uselessly in the water.
The $npcspecies lifeguard hops down from his platform and grabs a long net, fishing you out of the water with a sigh.
"I love Tag days," he mutters, "but not when they leave their stuff in my pool."
He retrieves you from the net and holds you up, dripping. The $npcspecies then twists you, wringing the water out of you in what feels like the most intense full-body massage ever.
"Although," he admits, "you do look comfy... and just my size."
After making sure that no one is around, the $npcspecies strips off his swimwear and tugs you on, pulling you up so that you tightly hug his bubble butt and well-endowed $npcspecies cock.
Being worn by him is gives you a satisfaction you'd never known before. His butt and cock fill you up, and you help him show off his goods in a very appealing way. If you had any misgivings about your fate before, they melt away now, and you know in your core that being worn by this $npcspecies is your ideal purpose.
"Ahh, what the hell," the $npcspecies says. "Let's take you for a swim."
As he dives into the water, you feel complete.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndAthPool")>>
<<run $unlockedEndings.push("BadEndAthPool")>>
<</if>><<nobr>>
<h2>Bad End: Athletics Track</h2>
<<set $showfooter to false>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<if $npcspecies == $hunterspecies>>
<<set $npcspecies to $specieslist.random()>>
<</if>>
<<if $npcadj == $hunteradj>>
<<set $npcadj to $adjlist.random()>>
<</if>>
<</nobr>>
You watch the runners on the track, looking to see if you can spot the $targetspecies you're hunting for. None of the people out for a run seem to match fit the bill, but you do spot a $hunteradj $hunterspecies... and he seems to be running towards you!
With a jolt of fear and adrenaline, you take off running yourself, hoping to make it into the Athletics Centre and lose him before he can catch up with you.
Unfortunately for you, he appears to be in better shape, and the $hunterspecies lays a paw on your shoulder before you can make it halfway to the door.
"Going for a little run, are we?" the $hunteradj $hunterspecies growls in your ear, and you turn around with a sigh to face your fate.
"I'm surprised I could catch you with these," he says, gesturing down to his ratty running shoes, his toes poking out the end of one. He slips them off, then kicks them off to the side. "If I know how this game works, then I think I know what'll happen next."
He smirks. "But I'm gonna give you a little chance first, to get to know the place where you're gonna be spending a lot of time. Really get in there and get used to them."
He gestures with his tagger at a nearby bench, and leads you over to it at dart-point. He sits down on the bench - you think briefly of running again, but know you wouldn't get far - and puts out his $hunterspecies paws for you.
You get down on all fours, and he wastes no time putting his paws in your face, commanding you to lick them, rub your nose in them, and get intimately familiar with every nook and cranny. Some runners on the track whoop and holler and catcall you as they run by, only adding to the humiliation.
The $hunterspecies is clearly enjoying every moment, but it's clear when he's ready for the next stage, because he raises the tagger and... <i>phlunk!</i> The dart rushes out, immediately finding your shoulder.
"Now that you're well acquainted with them, get ready to enjoy them for a long time to come," he says. Then suddenly he grunts and gasps in surprise.
"No, I don't quite think so," a muscular $npcspecies says from behind the $hunterspecies, lowering his tagger. "My my, two for the price of one."
The $hunterspecies twists to look at his hunter, and in doing so topples off of the bench with a grunt. The $npcspecies smirks, looking down at the both of you.
"I'd say it's time for the <i>both</i> of you to get to know your place," he says, taking the $hunterspecies's place on the bench and kicking off his shoes as you feel a flush of warmth in your face.
You look down at his paws and feel a throbbing in your pants. His big, muscular $npcspecies paws look even more appealing than the $hunterspecies's paws.
You shake your head, wondering where the thought came from. You were just being humiliated by the $hunterspecies beside you, forced to lick his paws, and now suddenly you are getting turned on by this $npcspecies?
The $hunterspecies seems to be having a similar moral quandary, but he loses that battle, and grabs one of the $npcspecies's paws with gusto and shoves his face right into it.
"Mmm," moans the $npcspecies, "that's right. And what about you?"
You shouldn't. You don't want to. Don't you? You... do, you realize. You want that paw in your face. You want to sniff it and lick it and feel its soft pawpads and <i>worship</i> it.
And so, that's what you do. Enthusiastically, you begin getting intimately familiar with the $npcspecies's paw, barely even noticing the changes that your body begins to go through.
It's not until you happen to catch a glance of the hunter beside you and see that he has become some bizarre cross between a $hunterspecies and an athletic shoe that you realize that something similar is happening to you as well.
Your hands, previously wrapped around his foot to hold it in place as you worship it, have lost their fur and fused their interlocked fingers together and become the sides and back of the shoe.
The $npcspecies moves his paw down, finding your twitching boner and stepping on it as you moan in pleasure at the sensation. Your cock flattens as he steps on it, becoming a wide, squishy insole. Your legs, bent beneath you, flatten out and rubberize into the sole of the shoe.
With the last of your movement, you press your face desperately to the top of his paw, trying to get a last huff while you still have a nose, feeling as you do your head flattening out into the top of the shoe.
The $npcspecies stands up from the bench, testing his weight on his two new trainers. His weight presses down on you, and it feels like he's stepping on your cock in the most orgasmic way.
With each step he takes, as he picks up your dropped tagger and leaves the running track in search of his next target, you feel a rhythmic bliss, unceasingly pleased to be so close to such a powerful, wonderful paw.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndAthTrack")>>
<<run $unlockedEndings.push("BadEndAthTrack")>>
<</if>><<nobr>>
<h2>Bad End: Basketball Court</h2>
<<set $showfooter to false>>
<</nobr>>
You're momentarily distracted by the basketball game going on in front of you, and you don't notice the $hunteradj $hunterspecies lurking in the shadows of the bleachers until it's too late. He jumps out, tagger drawn, and fires a dart that finds its mark squarely in your shoulder.
A couple of the players see what's happening and the game quickly grinds to a halt as everyone stops to watch.
The first effect you feel is a dryness in your mouth. You flick your tongue a few times, trying to generate saliva, but your mouth, and now throat, have become unbearably dry, making you cough a little.
You notice your fur growing paler, turning white except for a black stripe that goes all the way around your chest. You wobble and lose your balance as your legs begin to fuse together. The $hunterspecies leaps forward and catches you, holding you up as you lose the ability to stand up straight.
He supports you as the changes continue, watching with amusement as your arms fuse to your sides and your fur becomes a soft cotton. Your head tilts back and your mouth opens, wider and wider and wider, until it makes a huge 'O'. There's a sense of vertigo as you feel yourself shrinking, and soon the $hunterspecies is simply holding you in his paws rather than holding you up.
Finally, there's an extremely strange sensation, almost like your brain is crossing its eyes, and suddenly you can feel yourself in two places at once as you split into two identical white socks.
"Damn, that was hot, watching that," the $hunterspecies says, inspecting his new socks. He sits on the bleachers and kicks off his shoes, peeling off the socks he was already wearing.
"Let's see how you fit, hm?"
As the $hunterspecies slips his paws into you, you feel an incredibly satisfying feeling of fullness. Your body (bodies?) stretch over his paws, hugging them snugly but not too tightly. He pulls you on all the way and stands up, testing his weight. Feeling his feet pressing down on you is amazing, like a full-body massage.
"You're really comfy," he says. "I hope you're durable, cause I'm gonna wear you a lot!"
You hope you're durable too, because you want to spend as much time as you can wrapped around his feet. It's really the perfect place for socks like you to be.
<b>GAME OVER!</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndAthCourt")>>
<<run $unlockedEndings.push("BadEndAthCourt")>>
<</if>><<nobr>>
<<set $flavorlist = ["grape", "strawberry", "green apple", "peach", "blueberry", "cherry", "tropical fruit", "root beer", "orange", "mixed berry", "watermelon", "mango"]>>
<<set $sodaflavor to $flavorlist.random()>>
<h2>Bad End: Dorm Room</h2>
<<set $showfooter to false>>
You hear a knock at your door. Before you can answer it, a $hunteradj $hunterspecies kicks it open. His tagger is drawn, aimed squarely at you.<br><br>
<<if $kyleinroom == 1>>"Oh damn," Kyle says. "Guess your game is ending early."<br><br><</if>>
"Thought you could just hide from me in your room, eh?" the $hunterspecies asks. "C'mon, you know this is the easiest place to find you." Before you can reply, he fires the tagger, and the dart finds its mark.<br><br>
You fall back on the bed, clutching your arm where the dart hit you. The changes are immediate. Your fur begins to melt away, and your body takes on a shiny metal texture. Your arms drop to your sides and merge with them, disappearing into your rapidly-rounding torso along with your legs.<br><br>
<<if $kyleinroom == 1>>Kyle watches with fascination as you transform, his first good look at a victim of the game this year. You look to him with pleading eyes, but there's nothing he or anyone can do for you now.<br><br><</if>>
You feel a peculiar bubbling sensation in your torso, a fizziness merged with heartburn, and try to open your mouth to let out a belch, but your mouth appears to have fused shut. Your vision tilts up as your head reconfigures, facing up and flattening against your torso. You feel a rush of vertigo as your body shrinks, the bed growing larger and larger around you.<br><br>
In moments, you are nothing more than an aluminum soda can laying on the bed.<br><br>
The $hunterspecies picks you up with (to you) a gigantic paw and inspects you. "Hmm, $sodaflavor-flavored," he says. A claw hooks under the tab on the top of your head, and with a satisfying hiss, he pops you open.<br><br>
As the $hunterspecies takes a sip of you, you feel the most curious sensation. A part of you is flowing out of your body and into his mouth, and you feel a bit of yourself slipping away. The more he drinks of you, the more you lose yourself; holes in your being that you know are there, but have no idea what filled them.<br><br>
<<if $kyleinroom == 1>>The $hunterspecies offers you to Kyle. "Sure," Kyle says, taking you in his hand, "he looks delicious." He takes a big swig of you, savoring your taste. They take turns passing you back and forth, drinking your $sodaflavor-flavored contents.<br><br><</if>>
Once the $hunterspecies has finished every last drop of you, you feel so profoundly empty. Who were you? What did you used to be? You were always a soda can, weren't you? Why does a soda can need to think? You don't really need to think, you're just an empty soda can being tossed in the bin.<br><br>
<b>GAME OVER!</b><br>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("BadEndDormRoom")>>
<<run $unlockedEndings.push("BadEndDormRoom")>>
<</if>>
<</nobr>><<nobr>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<set $npcTF to $targetTFlist.random()>>
<<set $showfooter to false>>
<<set $hidecount to $hidecount+1>>
<<set $waitactiondesc = {
"Dorm Room": "You can't help but get hard at the thought of what you might be turned into if you get caught, and decide to quickly rub one out.<br><br><<if $kyleinroom==1>>\"Seriously?\" Kyle asks, looking up from his phone at you as you begin cranking your shaft. \"Isn't there something more important you should be doing right now?\" He raises an eyebrow. \"Or do you <i>want</i> to be caught?\"<<else>>You pleasure yourself for a few minutes, then cum to your fantasies and clean yourself up.<</if>>",
"Dormitory Hallway": "You wander the halls of your dorm for a few minutes, hearing some interesting rhythmic thumping sounds coming from behind a few of the doors.",
"Dormitory Bathroom": "You relieve yourself on the toilet, spending a few minutes admiring the graffiti. Someone <i>really</i> wants you to call them for a good time. Maybe after today, if you survive.<br><br>You finish up and wash your hands (you <i>do</i> wash your hands, right?).",
"Dormitory Common Room": "You sit down on one of the sofas and flip on the television. The university's broadcast channel is showing coverage of the day's event. Right now they're showing footage of a $npcadj $npcspecies getting tagged and turning into $npcTF. You spend a few minutes watching the coverage.",
"Dormitory Elevator": "You spend a few minutes in the elevator, riding it up and down, seeing who gets on and off at different floors. You don't see your target, $targetname, but thankfully don't see your hunter, either.",
"West Plaza": "You take a seat on one of the stone benches and spend a few minutes people-watching, observing the students moving about the campus. At one point you see a $npcadj $npcspecies get caught and transformed into $npcTF by their hunter, and wistfully wonder how that would feel.",
"East Plaza": "You spend a few minutes lurking near the school merch stand observing the crowds and a way-too-peppy $npcspecies festooned in school colors bounds over and hands you a pennant. You wave it halfheartedly until he goes away, then toss it aside.",
"North Plaza": "You spend a few minutes watching the otter make balloon animals with deft paws. He takes notice of you and quickly fashions a balloon $npcspecies, handing it to you with a wink.",
"South Plaza": "The students playing a game of catch invite you to join in, so you spend a few minutes tossing the ball back and forth, keeping an eye out for $targetname as you do so.",
"Plaza Statue": "You wait for a quieter moment then step up to the huge statue and, like hundreds of students before you, rub your paws along the shiny length of the horse's cock, hoping for luck.",
"Athletic Centre": "You spend a few minutes wandering along, looking at the various trophies and awards that the school's sports teams have won over the years. You'd swear that one of the trophies wobbles a little as you approach, but it's probably just your imagination.",
"Athletics Track": "Figuring that the practice couldn't hurt, you step onto the running track and spend a few minutes jogging a lap or two around. Could come in handy if you need to escape your hunter or chase your target, after all.",
"Athletics Court": "Taking a moment for yourself, you sit down on the bleachers and watch the basketball game for a few minutes. The players are concentrating pretty intently on their game, so clearly none of them are participating in the event today.",
"Athletics Showers": "Looking around the showers, you notice a jockstrap abandoned on a bench by the lockers. You can hear the sounds of two people enjoying an intimate shower together, so you figure they'll be busy for a few minutes. Making sure no one else is around, you pick up the jockstrap and take a quick huff. Mmm, the good kind of musk. You rub yourself through your pants for a few minutes while stuffing your snout in the jockstrap, indulging in a forbidden pleasure.<br><br>You think you've risked getting caught long enough, so you put the jockstrap back and slink away.",
"Athletics Pool": "You approach the edge of the pool and contemplate diving in. A sudden loud whistle draws your attention, and you see the lifeguard glaring at you. \"Don't. Even. Think. About. It.\" he warns. He makes you go stand in the corner for a few minutes as punishment for contemplating jumping in a pool fully-clothed.",
"Theatre": "You step up onto the stage and deliver your best monologue, speaking convincing nonsense for several minutes. When you finish, a watching $npcspecies claps sarcastically and tells you to get off the stage.",
"Library": "You browse the shelves and grab a promising book, hoping that sitting down to flip through it for a bit will calm your mind. You're buzzing too much with the energy of the game, however, and after a few minutes you sigh and put the book back.",
"Gardens": "You wander the paths of the gardens for a few minutes, enjoying the smells and appreciating the beauty cultivated by the students. You don't really have a green thumb, so this is all pretty impressive to you. The flowers smell nice, though one or two of them make you sneeze.",
"Main Hall": "You approach the bank of vending machines, looking for a nice snack. You pop a coin in and punch the buttons, then curse as the snack drops and gets stuck against the glass. You spend a few minutes trying to bump it loose, but eventually give up.",
"Lecture Hall": "You grab a piece of chalk from the box by the board and join the student already drawing on the board. It's a fun catharsis, and you spend a few minutes drawing a decent $npcspecies.",
"Science Labs": "You check out some of the experiments that're ongoing. The science students are tolerant of your presence, but warn you off if you get too close to their precious research. One $npcadj $npcspecies is testing the effects of various viscous liquids on $npcTF, but you're not sure what the ultimate goal is.",
"Art Room": "You find a blank canvas and grab some paints, deciding to calm your mind with a bit of painting. You spend a few minutes painting a $npcadj $npcspecies getting transformed into $npcTF. It looks pretty good!" }>>
<</nobr>>
$waitactiondesc[$location]
<<if $hidecount < 5>>
[[Continue|GoToLocation]]
<<else>>
<<if $location is "Dorm Room">>
[[Continue|BadEndDormRoom]]
<<else>>
[[Continue|GoToLocation]]
<</if>>
<</if>><<nobr>><<set $hidecount to $hidecount+1>><<set $showfooter to false>>
You sit down at the computer.<br><br>
<<linkappend "View campus map" t8n>><br>
You look up a map of the campus.<br>
<<include "CampusMap">>
<</linkappend>><br>
<<linkappend "Search for info on target" t8n>>
<<if $targetname !== "Kyle">>
<<set $cluegiven to true>>
<<set $lastseenknown to true>><br>
You search for $targetname on the school's database, and find out that he's a $targetadj $targetspecies who likes $targethobby1 and $targethobby2. His last social media post showed him $locationclue[$targetlocation] <<if $targetlastseen > 0>>about $targetlastseen minutes ago.<<else>>just moments ago.<</if>><br>
<<else>>
<<set $kylememloc1 to $loclist.pluck()>>
<<set $kylememloc2 to $loclist.pluck()>>
<<set $kylememloc3 to $loclist.pluck()>>
<<set $kylememory1 to $locationclue[$kylememloc1]>>
<<set $kylememory2 to $locationclue[$kylememloc2]>>
<<set $kylememory3 to $locationclue[$kylememloc3]>>
<br>Kyle is your roommate and friend. His social media has lots of pictures of the two of you together, $kylememory1, $kylememory2, and $kylememory3. It's hard to believe that he's your final target, but if you wanna win, you know what you need to do.<br>
<</if>>
<</linkappend>><br>
<<if $kylehelp == 0>>
<<if $kyletarget == 1>>
<<linkappend "Search for '$kyletargetname'" t8n>><br>
You search for '$kyletargetname' on the school's database, and find out that he's a $kyletargetadj $kyletargetspecies in third year who likes hanging out at the $kyletargetloc.<br>
<<set $kyleinfo to 1>>
<</linkappend>><br>
<</if>>
<</if>>
<<if $hidecount < 5>>
[[Stop using the computer|GoToLocation]]
<<else>>
<<if $location is "Dorm Room">>
[[Stop using the computer|BadEndDormRoom]]
<<else>>
[[Stop using the computer|GoToLocation]]
<</if>>
<</if>>
<br><br><</nobr>><<nobr>><<set $showfooter to false>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<set $npchasinfo to random(1,20)>>
<<set $hidecount to $hidecount+1>>
<<set $npcaskcheck to 1>>
<<set $isnpcaround to random (1,20)>>
/* List of possible NPC responses */
<<set $npcinfolist = [
"<<set $targetlocknown to true>>Hmm, $targetname? Yeah, I think I saw him at the $targetlocation.",
"You should be more worried about the $hunteradj $hunterspecies looking for you around the $hunterlocation!",
"I haven't seen a $targetspecies by that name, but I did see that a $hunteradj $hunterspecies was prowling around looking for you!",
"I'm not helping you! I'd much rather see you caught and transformed, heheh!",
"<<set $targetlocknown to true>>Ooh, are you gonna transform him? That's hot. I think I saw him at $targetlocation a little while ago. Go get him!",
"Sorry, I haven't seen him.",
"Sorry, I don't know who that is.",
"Ahh, I'm not sure. Sorry.",
"No clue, but good luck on your hunt!",
"No, but I sure wish I was hunting <i>you</i>! I'd love to see you turn into something, heh.",
"<<set $targetlocknown to true>>Oh, $targetname the $targetspecies? I saw him at the $targetlocation earlier.",
"<<set $lastseenknown to true>><<set $targetlocknown to true>>Yeah, I saw a $targetadj $targetspecies near the $targetlocation about $targetlastseen minutes ago.",
"Are you hunting $targetname? He's my friend, no way I'm telling you where he is!",
"<<set $cluegiven to true>>$targetname? I saw him $locationclue[$targetlocation] earlier.",
"<<set $lastseenknown to true>><<set $cluegiven to true>>You're hunting $targetname, eh? Yeah, he was $locationclue[$targetlocation] about $targetlastseen minutes ago.",
"No, but I did hear someone was searching for <i>you</i>! Last I heard, he was looking around the $hunterlocation, so I'd avoid that area for now if I was you! Unless you <i>want</i> to get caught, of course...",
"Man, I wish I was playing. I'd love to get transformed! But nah, sorry, I haven't seen him.",
"<<set $targetlocknown to true>>I think I saw someone matching that description at the $targetlocation a little while ago.",
"<<set $targetlocknown to true>><<set $lastseenknown to true>>Oh yeah, I saw him near the $targetlocation about $targetlastseen minutes ago.",
"<<set $cluegiven to true>><<set $lastseenknown to true>>I shouldn't say, but... what the hell. I saw him $locationclue[$targetlocation] about $targetlastseen minutes ago.",
"<<set $targetlocknown to true>>That asshole? Yeah, he's at the $targetlocation. I hope you get him!",
"I always wanted to see that $targetspecies get transformed! He'd look great as a nice jockstrap, or maybe a tight onahole... ahh... Oh, but no, sorry, I'm not sure where he is.",
"<<set $cluegiven to true>><<set $lastseenknown to true>>Man, I wish I was playing. I'd love to transform that $targetadj $targetspecies myself! About $targetlastseen minutes ago I saw him $locationclue[$targetlocation]. Good luck!",
"<<set $cluegiven to true>>$targetname? I saw him $locationclue[$targetlocation], you might find him there!",
]>>
You look around for someone to ask about $targetname.<br><br>
<<if $targetLastLoc == $location>>
A $npcadj $npcspecies sees you prowling around and says, "Are you looking for a $targetadj $targetspecies? He just left! He should still be somewhere nearby..."
<<elseif $targetlocation == $location>>
You ask a $npcadj $npcspecies if he's seen your target, and he says, "You're looking for $targetname? He's here right now!"
<<else>>
<<if $isnpcaround > 1>>
You approach a $npcadj $npcspecies and ask if they know your target.<br><br>
<<if $targetname == "Kyle">>
"That's your roommate, isn't it?" the $npcspecies says. "I dunno where he is, but I imagine he'll go back to your dorm room later."
<<else>>
<<set $npcinfo to $npcinfolist.random()>>
The $npcspecies says, "$npcinfo"
<</if>>
<<else>>
You don't see anyone you can ask.
<</if>>
<</if>>
<br><br>
[[Return|GoToLocation]]
<</nobr>><<nobr>><<set $showfooter to false>>
<<set $badendlocs = {
"Dormitory Hallway": "BadEndDormHall",
"Dormitory Bathroom": "BadEndDormBathroom",
"Dormitory Common Room": "BadEndDormCommonRoom",
"Dormitory Elevator": "BadEndDormElevator",
"West Plaza": "BadEndPlazaW",
"East Plaza": "BadEndPlazaE",
"North Plaza": "BadEndPlazaN",
"South Plaza": "BadEndPlazaS",
"Plaza Statue": "BadEndPlazaStatue",
"Athletic Centre": "BadEndAthletics",
"Athletics Track": "BadEndAthTrack",
"Athletics Court": "BadEndAthCourt",
"Athletics Showers": "BadEndAthShowers",
"Athletics Pool": "BadEndAthPool",
"Theatre": "BadEndTheatre",
"Library": "BadEndLibrary",
"Gardens": "BadEndGardens",
"Main Hall": "BadEndMainHall",
"Lecture Hall": "BadEndLectureHall",
"Science Labs": "BadEndScienceLabs",
"Art Room": "BadEndArtRoom" }>>
<<set _escapeOptions = [
{
item: 'Missing Sock',
text: "You spot the hunter, a $hunteradj $hunterspecies, moments before he spots you. Thinking fast, you chuck your sock at him. He recoils to avoid the sock, giving you enough time to flee. Running across campus, you briefly mourn for the short time you and your sock were reunited. You eventually find yourself at..."
},
{
item: 'Disguise',
text: "You spot the hunter, a $hunteradj $hunterspecies, moments before he spots you. Quickly donning your disguise, you flee the $hunterspecies, dodging and weaving around campus until you think you've lost him. You find yourself at..."
},
{
item: 'Distraction',
text: "You spot the hunter, a $hunteradj $hunterspecies, moments before he spots you. Thinking fast, you start a distraction and slip away in the commotion. You run for a while, putting some distance between you and him. You eventually find yourself at..."
},
{
item: 'Makeshift Shield',
text: "You spot the hunter, a $hunteradj $hunterspecies, moments before he spots you. He raises his tagger and fires, but you bring your makeshift shield up just in time and hear the dart thunk against the shield. Tossing the shield aside, you flee while the $hunterspecies recharges his tagger. Putting some distance between yourself and him, you find yourself at..."
}
]>>
<<set $hunterlocation to $location>>
/* Create array of available escapes */
<<set _availableEscapes = []>>
<<for _i to 0; _i < _escapeOptions.length; _i++>>
<<if $inventory.includes(_escapeOptions[_i].item)>>
<<run _availableEscapes.push(_i)>>
<</if>>
<</for>>
<<if _availableEscapes.length > 0>>
<<set _randomIndex = random(0, _availableEscapes.length - 1)>>
<<set _selectedIndex = _availableEscapes[_randomIndex]>>
<<run $inventory.delete(_escapeOptions[_selectedIndex].item)>>
<<print _escapeOptions[_selectedIndex].text>>
<br><br>[[Continue|GoToLocation]]
<<else>>
/* Handle case where player has no escape items */
<<goto $badendlocs[$location]>>
<</if>>
<</nobr>><<nobr>><<set $showfooter to false>>
<h2>Ending 1: Victory</h2>
<<if $protectending !== 1>>
You get back to your dorm room. The room is empty, and it's clear that Kyle hasn't returned yet. You take a seat on your bed, facing the door, and wait for him to return.<br><br>
Eventually you hear the jingle of keys, and Kyle enters the room. <</if>>His eyes travel down to the tagger in your hand, and an embarrassed smile spreads across his face.<br><br>
"You've got me, huh?" he asks. You nod.<br><br>
"I don't suppose it's any use me trying to grab my tagger before you can shoot, eh?" He smiles and sets down his bag. You can see he's already growing hard.<br><br>
"I hoped it would be you in the end," the bear tells you. "You've been a great roommate, and whoever you get next will be lucky to have you. Whenever you're ready!"<br><br>
<<linkappend "Win the game!" t8n>><br><br>
To his credit, Kyle barely flinches when the dart hits him.<br><br>
His belly is the first to change, ballooning out and popping the buttons on his shirt. He gasps in surprise, and tries to take off his remaining clothes, but finds it difficult as his fingers fuse together into rounded nubs at the ends of his arms. He didn't need to bother anyway, as his expanding form quickly does away with the rest of his clothes, and his cock flops out, drooling precum.<br><br>
He reaches down to paw at it, but his usless arms can't get any purchase. His fur melts away, leaving only a shiny latex in its place. His cock shrinks and is replaced by a smooth nulge. Kyle moans as he presses at it with his nubs, and a big smile spreads across his face.<br><br>
The smile becomes fixed in place, a permanently happy, dopey expression, as Kyle's facial features toonify and become nothing more than colored latex. Handles sprout at his hips, and a rubber air valve appears where his bellybutton was.<br><br>
The bear wobbles in place as his legs change, and he falls forward onto you with a squeak. Thankfully you're not crushed by him, as he has become hollow and filled with air.<br><br>
You shimmy out from underneath him and inspect the results as the changes finish. Kyle has become a big, bouncy, squeaky pooltoy plastered with a pemagrin. You know that he'd be making the same expression even if it wasn't painted on his face.<br><br>
<<if $protectending !== 1>>With some difficulty due to its size, you move the pooltoy over onto Kyle's bed, and settle down on your bed as the TV switches on.<<else>>With some difficulty due to its size, you carry the pooltoy back to your room and dump it on Kyle's bed, settling down on your bed as the TV switches on.<</if>><br><br>
<<linkappend "Watch the announcement" t8n>><br><br>
The university's president appears on screen, looking pleased.<br><br>
"We have just been informed that the last target has been tagged, and this year's game of TF Tag has come to an end!" <<if $protectending !== 1>>You briefly wonder how he could possibly have known that, but he continues before you can dwell on it too much.<</if>><br><br>
"We would like to extend our congratulations to this year's winner!" Your school portrait appears up in the corner of the screen. "As promised, his tuition fees for this year have been waived, and he is welcome to keep all the objects he's collected over the course of the day.<br><br>
"We will be very excited to see him back in next year's competition as a defending champion!"<br><br>
With that, the president signs off and the TV resumes its regular programming.<br><br>
Next year's competition?! <i>Gulp.</i><br><br>
<b>THE END.</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("EndingMCWin")>>
<<run $unlockedEndings.push("EndingMCWin")>>
<</if>>
<</linkappend>>
<</linkappend>>
<</nobr>><<nobr>><<set $showfooter to false>><</nobr>>
<h2>Ending 2: Caught</h2>
On your way back to your room, you spot $targetname with his back turned to you, completely unawares. You're rushing to get back before the game ends, and barely even pay attention to what the $targetspecies turns into when you hit him with the dart. You scoop up his tagger as he falls, not even breaking stride as you head back to your room.
It's dark when you arrive back at your dorm. You switch the lights on, and find Kyle sitting on his bed holding his tagger, aiming it squarely at you.
"Looks like I win," he says, as you step into the room and close the door behind you. You glance down at the tagger you picked up, and see that it has Kyle's name on it; you're the only two left. You know that there's no way you can raise the tagger and get him before he gets you. You let the tagger drop to the floor.
<<linkappend "You're ready for your fate." t8n>><br>
He nods approvingly, and gestures for you to take your clothes off, keeping the tagger trained on you the whole while.
You comply, and soon stand naked before him. He removes his pants, and his cock pops out, rapidly stiffening. This is a dance you two have performed many times before - horny university students have to do <i>something</i> to release that pent-up energy, after all - but you know that this time is gonna be different.
Grabbing the lube from your bedside table, you lube up your hole and squirt some on his cock, applying it with a deft hand. Kyle moans a little and his cockhead drips some precum, but he knows that this isn't even close to the main event.
You bend over your bed and expose your tailhole to him, and Kyle wastes no time. His cock, slick with lube and precum, slides into you without difficulty, and right as he bottoms out you feel a sudden pinch on your buttcheek as the TF dart hits you.
Kyle tosses the now-useless tagger off to the side and devotes his attention to fucking you, making you both moan as he thrusts in and out. He's not rough, but he <i>is</i> deep, and you can feel him pounding your prostate.
The feeling as he hits your prostate seems to grow, spreading up across your entire body. Each thrust makes you feel more and more sensitive. Your skin tingles as your fur disappears and your mouth floods with saliva. But you quickly realize it isn't saliva, and precum drools out of the corner of your mouth.
You find it difficult to hold yourself up on the bed as your arms lose their strength, withering away until they disappear entirely. Your legs have started deforming, turning into big round globes that dangle below your body, slapping against your stomach as Kyle holds you down against the bed and thrusts into you.
At some point, probably around the time you feel your heartbeats syching, he stops thrusting into you and starts thrusting <i>with</i> you. You feel yourself sliding back and forth across the fabric of your bed as he bucks his hips, and the sensation is incredible. Your whole underside feels hyper sensitive, and as he wraps his big meaty bear paws around you and begins jerking you - himself? - off, you find yourself in a state of bliss.
Your features have smoothed out, your head has widened and flared, and you've shrunk down until you're small enough that he can hold you with one paw.
"Ffffuck," he moans, jerking you faster and faster. "You're so much more sensitive than my cock."
You agree wholeheartedly. An explosion of pleasure is wracking your whole being, and you are beginning to feel a pressure building in your balls. You try to hold it back as long as possible, but Kyle's paw is relentless, and suddenly you pass the tipping point.
With an almighty roar, Kyle cums, a torrent of seed flooding out from you in great ropey strands, painting your bedspread white. This goes on for some time, and Kyle has to brace himself as his knees go weak. Eventually the gush becomes a trickle, and with a squeeze up your shaft Kyle gets the last of the cum out.
"Fuck, you make an awesome cock," he says, looking down at his new member. "And you've made me a few inches longer now, too!" Kyle grabs a tissue and wipes you clean, then pulls on a pair of underwear. Cocooned in the soft cotton and held securely against his thigh, you let yourself soften, settling down until Kyle needs you again. Which, you hope, will be soon and often. You twitch a little thinking about it.
<br>
<b>THE END.</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("EndingRMWin")>>
<<run $unlockedEndings.push("EndingRMWin")>>
<</if>>
<</linkappend>><<nobr>><<set $showfooter to false>><</nobr>><h2>Ending 4: Showdown</h2>
You ease open the dorm room door, your tagger drawn. You want to be ready if Kyle is already in there. It turns out, he is - and his tagger is aimed at you, too.
"I guess we've both got each other, huh?" Kyle says as you enter and close the door behind you. You nod. "We're the only two left, so one of us is going to win, and..." he trails off for a moment. "Well, one of us isn't."
He takes a nervous breath. "So, how do you wanna do this?" the bear asks. "Good old fashioned duel?"
Even though either of you could easily tag the other in the back and betray them, you have enough respect for each other not to. You companionably head down to the plaza <<if $showdowncomplete>>(the salacious statue from earlier appears to have been removed at some point)<</if>> and take up position beneath the big statue with the shiny, well-rubbed horse cock, standing back to back. Students loitering in the plaza take notice of what's happening and begin to gather around to watch.
"Steps to the count of five?" Kyle asks. You both raise your taggers, ready to decide which of you will be making it home tonight.
<<linkappend "\"One...\"" t8n>>
You take a big step away from Kyle, and sense him doing the same. You can't help but start to get a little hard at the thought of what's about to happen.
<<linkappend "\"Two...\"" t8n>>
You step again. The growing crowd is watching with bated breath. Will you get him, or will he get you? You shiver a little in anticipation, imagining how it might feel if you lose.
<<linkappend "\"Three...\"" t8n>>
Another step. Some one cheers your name, and there's an answering cheer in support of Kyle. You're straining in your pants now, realizing everyone is gonna be watching what happens next.
<<linkappend "\"Four...\"" t8n>>
One more step. Your heart pounds in your chest. This is it!
<<linkappend "\"Five!\"" t8n>>
You spin around quickly, bringing your tagger level with Kyle, and pull the trigger. Half an instant later, you feel a sudden sharp pinch in your arm as his dart finds you, and you drop your tagger to the pavement below.
Kyle lowers his arm and looks down, and you can see your dart sticking out of his stomach.
"Huh," he mutters, looking from your dart to his.
The crowd has gone silent, waiting to see what happens next.
Your world narrows down to just you and Kyle and you take a step towards him. In the end, you both got each other. You're both going to transform. Neither of you will win.
Or... perhaps, you think, maybe both of you win after all. You and Kyle approach each other again in front of the statue, a strange tingling feeling running across your whole body.
Your cock is straining in your pants, and you can't bear to keep it smothered anymore. You don't care if the crowd sees, you don't even notice them. And it won't matter soon anyway, because you'll just be... whatever it is you're going to become.
Kyle has shed his clothes too, and you hold each other, your erections pressing against one other. His fur, once a rich brown, has started to take on a bit of a coppery color. Yours has too, you notice.
The only thought running through your head is how badly you want him, like you used to do in your dorm room on nights when the two of you were so horny and pent up and wanted a break from studying.
Someone in the crowd whoops, and a bottle of lube is tossed your way. You catch it with a hand that's starting to feel sluggish and slow, and squirt it on Kyle's cock. He turns you around and presses his cock against your tailhole, and you shudder with pleasure as he slowly slides in.
There, in front of a crowd of onlookers, he begins to fuck you, your bodies turning more and more a copper color, your details and features smoothing out and becoming engravings on your body, your throbbing cock getting harder and harder, literally, until it's a solid metal shaft sticking out from you. Your balls want so desperately to cum, but there's nowhere for them to unload to, and they too turn to shiny metal orbs.
With difficulty, and an arm that feels heavy as lead, you reach back and put your hand on Kyle's face, twisting your upper body so that you can kiss him as he thrusts deeply into you.
And it's in that pose that your bodies finally lock up. Your muzzle pressed to his and your eyes closed to enjoy the pleasure of the kiss, his final thrusts going slower and slower until he stops for good with his cock buried into you, an incredible sensation that persists even after you've both stopped moving. As you fuse together, your thoughts become his thoughts, your desires and pleasure become his, and the two of you, as one, move no more.
Hesitantly at first, then more and more boldly, students begin to approach you, reaching out and grasping the large, permanently-hard copper cock sticking out from the statue that now decorates the plaza. They take it in turns to rub it for luck, a new monument to inspire future participants of the campus's annual competition.
And as time goes by, you get rubbed a lot, feeling every paw that strokes up and down your metal shaft, til it is shiny and bright. You're where you belong. Together.
<b>THE END.</b>
[[Restart?|MainMenu]]
<<set $showdowncomplete to true>>
<<if !$unlockedEndings.includes("EndingShowdown")>>
<<run $unlockedEndings.push("EndingShowdown")>>
<</if>>
<</linkappend>>
<</linkappend>>
<</linkappend>>
<</linkappend>>
<</linkappend>><<nobr>><<set $showfooter to false>><</nobr>>
<h2>Ending 3: Survival</h2>
You get back to your dorm room. The room is empty, and it's clear that Kyle hasn't returned yet. You suspect that he never will.
As the clock strikes 9pm, the television turns on and the university's president appears.
"If you're seeing this, congratulations!" he beams. "You've survived this year's TF Tag! Sadly, the time for our game has run out and the tagger serums have lost their effect, but there are still several participants remaining. So, while it's a shame we didn't have a winner to crown, never fear! There's always next year, and we've automatically reserved a slot for all surviving students in next year's game!"
<i>Gulp.</i>
<b>THE END.</b>
[[Restart?|MainMenu]]
<<if !$unlockedEndings.includes("EndingMCSurvives")>>
<<run $unlockedEndings.push("EndingMCSurvives")>>
<</if>><<nobr>>
<<set $showfooter to false>>
As you pass by, you overhear two students talking about a $kylehunteradj $kylehunterspecies, who's hunting for a bear named Kyle -- wait, that's your roommate!<br><br>
<div id="choices">
<<link "Text him to warn him">>
<<replace "#choices">><<set $kylehelp to $kylehelp+1>>
<<set $gossipover to 1>>
Kyle is grateful for the info, and promises he'll keep an eye out.<br><br>He shares that he just heard that the person hunting you was recently seen at the $hunterlocation and wishes you luck.<br><br>
[[Return|GoToLocation]]<</replace>>
<</link>>
<br>
<<link "Do nothing">>
<<replace "#choices">><<set $gossipover to 1>>
You decide to keep the information to yourself.<br><br>
[[Return|GoToLocation]]<</replace>>
<</link>>
</div>
<</nobr>><<nobr>>
<<set $showfooter to false>>
<<if $interveneyes == 5>>
<<set $interveneover to 2>>
You spot Kyle sneaking up on the $inthunterspecies you redirected earlier, who is now looking around aimlessly trying to pick up his target's trail again.<br><br>
Kyle tags the $inthunterspecies with a dart, turning him into a shiny golden coin. He pockets the coin and picks up the hunter's discarded tagger. Catching your eye, Kyle gives a salute and takes off after his next target.<br><br>
[[Way to go, Kyle!|GoToLocation]]
<</if>>
<<if $interveneover == 0>>
As you make your way through the $location, a $inttargetadj $inttargetspecies goes running past, fleeing from a hunter. "Help me!" he cries out, before ducking behind a corner.<br><br>
The hunter, a $inthunteradj $inthunterspecies, comes running moments later, brandishing his tagger. "Which way did he go?" he demands.<br><br>
<div id="choices">
<<link "Tell the truth">>
<<replace "#choices">>
<<set $interveneover to 1>>
The $inthunterspecies thanks you and takes off in pursuit of his target. A few moments later, you hear a scream.<br><br>
[[Return|GoToLocation]]<</replace>>
<</link>>
<br>
<<link "Misdirect him">>
<<replace "#choices">>
<<set $kylehelp to $kylehelp+1>>
<<set $interveneover to 1>>
<<set $interveneyes to 1>>
You point away from the direction the $inttargetspecies ran. The $inthunterspecies takes off in the direction you point, heading the opposite way of the target.<br><br>
[[Return|GoToLocation]]<</replace>>
<</link>>
</div>
<</if>>
<</nobr>> <table style="width:100%">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>Gardens ↓</td>
</tr>
<tr>
<td> </td>
<td>↓ Dorm Bathroom ↓</td>
<td> </td>
<td> </td>
<td>North Plaza </td>
<td>← Library ↓</td>
<td>Science Labs ↓</td>
</tr>
<tr>
<td>Dorm Room →</td>
<td>Dorm Hallway</td>
<td>Dorm Elevator</td>
<td>West Plaza</td>
<td>Plaza Statue</td>
<td>East Plaza</td>
<td>Main Hall</td>
<td>← Art Room</td>
</tr>
<tr>
<td> </td>
<td>Common Room ↑</td>
<td> </td>
<td> </td>
<td>South Plaza</td>
<td>← Theatre ↑</td>
<td>Lecture Hall ↑</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td>Track→</td>
<td>Athletics Centre</td>
<td>←Showers→</td>
<td>←Pool</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>Athletics Court ↑</td>
</tr>
</table> <h2>Walkthrough</h2><<nobr>><<set $walkthrough to false>><</nobr>>
<b>-----WARNING! CONTAINS SPOILERS!-----</b>
Click [[here|MainMenu]] to go back if you don't want to read them.
<<linkappend "<b>Hard Mode and Easy Mode</b>" t8n>>
In <i>Hard Mode</i>, the hunter is more aggressive and he will always move towards your current location when traveling. The chance of randomly being caught by the hunter in any given location (even if it's not his active location) is also increased by 150%. Additionally, you can only find one of each defensive item across the entire campus.
In <i>Easy Mode</i>, information is displayed at the bottom of the screen about your target's current location, as well as the hunter's current location. Additionally, you can't be randomly caught outside of the hunter's current location. When moving, as in Normal Mode, the hunter will move to a random location adjacent to his current one.
<</linkappend>>
<<linkappend "<b>The Hunter</b>" t8n>>
The hunter moves around the map, searching for you.
If you are in the same location as your hunter, there is a high chance that he will find you (and a smaller chance that you'll sense his presence, giving you an opportunity to get out of there).
If the hunter finds you, you will receive the associated location's bad end <i>unless</i> you are carrying one or more escape items in your inventory (found through Searching), in which case you will expend that item and flee to a random part of the map.
When not in the hunter's search location, there is still a small chance that the hunter will suddenly appear and catch you, <i>unless</i> you have the Hunter Locator in your inventory (found through Searching). If you remain in one location for too long, by Searching, Asking, or Waiting, the hunter will pick up your trail and arrive at your location.
To increase your chances of getting a particular bad end, repeatedly Wait in the location until the hunter arrives without any escape items in your inventory and Wait until he catches you.
<</linkappend>>
<<linkappend "<b>Your Target</b>" t8n>>
You are given a random target at the beginning of each game. The target will move around the map, changing location every hour. When you reach the target's location, conducting a Search will find them.
Using a computer (in your dorm room or in the library) will give you information on your target's whereabouts, and Asking people in various locations has a chance to give a hint as well.
When you tag a target, you will collect their tagger and be given a new quarry to pursue. Once you've caught four targets, you will receive your final target: Kyle. He can be found by returning to your Dorm Room once there is less than two hours left on the clock.
<</linkappend>>
<<linkappend "<b>Bad Ends</b>" t8n>>
Each named location has an associated bad end (you get caught by your hunter and transformed).
The bad ends are as follows:
<table>
<tr>
<td><b><u>Location</u></b></td>
<td><b><u>Ending</u></b></td>
</tr>
<tr>
<td>Dorm Room</td>
<td>Soda Can</td>
</tr>
<tr>
<td>Dorm Hallway</td>
<td>Inflatable Sex Doll</td>
</tr>
<tr>
<td>Dorm Bathroom</td>
<td>Deodorant Stick</td>
</tr>
<tr>
<td>Dorm Common Room</td>
<td>Condom</td>
</tr>
<tr>
<td>Dorm Elevator</td>
<td>Chastity Cage</td>
</tr>
<tr>
<td>West Plaza</td>
<td>Fursuit</td>
</tr>
<tr>
<td>North Plaza</td>
<td>Balloon</td>
</tr>
<tr>
<td>East Plaza</td>
<td>Towel</td>
</tr>
<tr>
<td>South Plaza</td>
<td>Wrist Watch</td>
</tr>
<tr>
<td>Plaza Statue</td>
<td>Statue Fountain</td>
</tr>
<tr>
<td>Gardens</td>
<td>Giant Plant</td>
</tr>
<tr>
<td>Athletics Centre</td>
<td>Trophy</td>
</tr>
<tr>
<td>Athletics Track</td>
<td>Shoe</td>
</tr>
<tr>
<td>Athletics Court</td>
<td>Socks</td>
</tr>
<tr>
<td>Athletics Showers</td>
<td>Jockstrap</td>
</tr>
<tr>
<td>Athletics Pool</td>
<td>Speedo</td>
</tr>
<tr>
<td>Library</td>
<td>Onahole</td>
</tr>
<tr>
<td>Lecture Hall</td>
<td>Chalk</td>
</tr>
<tr>
<td>Theatre</td>
<td>Plush Toy</td>
</tr>
<tr>
<td>Science Labs</td>
<td>Serum</td>
</tr>
<tr>
<td>Main Hall</td>
<td>Vending Machine</td>
</tr>
<tr>
<td>Art Room</td>
<td>Mannequin</td>
</tr>
</table>
<</linkappend>>
<<linkappend "<b>Main Endings</b>" t8n>>
Depending on whether certain conditions are fulfilled, you can receive one of several main endings once you visit the Dorm Room with less than two hours left on the clock, or once time expires.
There are several opportunities to help Kyle during the day, and if at least three of them are resolved properly, he will be present for several of the endings.
<i>Opportunity One:</i>
Ask Kyle who his target is before he leaves the dorm at the beginning of the game, then search for information about that target on your computer and speak with him again to tell him the information.
<i>Opportunity Two:</i>
In a randomly-determined location on the map, two students can be overheard discussing who is hunting Kyle. You can then text him to tip him off and keep him safe.
<i>Opportunity Three:</i>
In a randomly-determined location on the map, a participant is seen running from a hunter. He asks you to help him, and if you choose to deceive the hunter, it will help Kyle later down the road.
<i>Opportunity Four:</i>
In a randomly-determined location on the map, Kyle can be seen chasing a target. You have the option to assist him by tripping the target.
In addition, the number of targets you have caught will affect the available ending.
<table>
<tr>
<td><b><u>Conditions</u></b></td>
<td><b><u>Ending</u></b></td>
</tr>
<tr>
<td>Kyle Helped 3 Times,
4 Targets Caught</td>
<td>"Showdown" Ending</td>
</tr>
<tr>
<td>Kyle Not Helped,
4 Targets Caught</td>
<td>"Victory" Ending</td>
</tr>
<tr>
<td>Kyle Helped 3 Times,
Less than 4 Targets Caught</td>
<td>"Caught" Ending</td>
</tr>
<tr>
<td>Kyle Not Helped,
Less than 4 Targets Caught</td>
<td>"Survival" Ending</td>
</tr>
</table>
<</linkappend>>
<br>[[Return|MainMenu]]<<nobr>><<set $ezmode to false>><<set $hardmode to false>><<set $endlessmode to false>><</nobr>><h2>TF Tag - Main Menu</h2>
<i><b>TF Tag</b> is a work of gay pornographic furry fiction by Ky the Capybara, and is intended only for an 18+ audience. It contains inanimate transformation, permanent endings, dubious consent, and some endings contain identity loss or mental shift. Play at your peril!</i>
Welcome to <b>TF Tag</b>! It's the campus's annual game, and you have been selected as one of the participants! Armed with your tagger, search around the campus to find your target. Hit 'em with a dart and they'll transform and be out of the game. Then you'll gain their tagger and get to hunt down their target.
But be warned! You're not the only one on the prowl... someone out there has <i>your</i> name, and they'll be searching for you, too! Avoid your hunter while seeking your target, and try to win the game by being the last one standing - or, at least, survive until the game ends in 12 hours!<br>
<<nobr>><div id="choices">
<<link "Enable Hard Mode (Limited Defensive Items, More Aggressive Hunter)">>
<<replace "#choices">>
<i>Hard mode enabled. Good luck!</i><br><br><<set $hardmode to true>><</replace>>
<</link>>
<br>
<<link "Enable EZMode (Target & Hunter Information Displayed)">>
<<replace "#choices">>
<i>EZMode enabled. Wuss!</i><br><br><<set $ezmode to true>><</replace>>
<</link>>
<br>
<<link "Enable Endless Mode (No Timer, 50 Targets to Win)">>
<<replace "#choices">>
<i>Endless Mode enabled! Good luck!</i><br><br><<set $endlessmode to true>><</replace>>
<</link>>
</div><br>
[[Walkthrough (Contains Spoilers, Duh!)|Walkthrough]]<br>
[[Ending Gallery]]<br>
[[Update Log|Changelog]]<br>
[[Credits]]<br><br>
<b>[[Start Game|Start]]</b><br><br><i>Current game version: v1.2.2 - 2024.10.29</i>
<br><i>I'd love to hear your feedback! Drop me a message if you enjoyed the game or encountered a game-breaking bug that I need to squish! https://linktr.ee/kymaequ </i>
<</nobr>><h2>Credits</h2>
<b>TF Tag</b> was made by Ky the Capybara
https://linktr.ee/kymaequ
It was created using Twine SugarCube, a great open-source tool for making stories.
https://twinery.org/
Inspired by the amazing games that Blueballs makes! Check them out at
https://www.dormausvalley.com/bluesquirrel/index.htm
Special thanks to Medkit for feedback and testing.
[[Return|MainMenu]]<<nobr>><<set $huntercatch to random(1,4)>>
<<if $huntercatch == 4>>
<i>You get a bad feeling about this place... It feels like someone's watching you.</i>
<br>
<<else>>
<<goto "EscapeHunter">>
<</if>><</nobr>>v1.2 20241029.14
-Added an Endless Mode
-New Ending: Endless
-Adjusted code to accommodate Endless Mode
-New event (Endless Mode-only)
-Adjusted inventory to prioritize useful items
v1.1 20241028.23
-Added Ending Gallery to view received endings
-Added extra paragraph to Plaza Statue if Showdown ending has been completed
v1.0.1 20241028.22
-Moved initialization to StoryInit; should help prevent "Action macro" issues
-Adjusted opening of game to make clear Survive is a boring ending
-Started implementing Ending Gallery
-Fixed bug that made Hunter way too lenient
-Fixed new bug that made things not reset on new game
v1.0 20241028.12
Release version!
v0.9 20241027.17
-New Endings: Plaza East, Lecture Hall, Science Labs, Athletics Track, Athletics Pool, Athletics Centre, Athletics Showers
-Updated walkthrough with correct information
-Changed hunter catch chance from 50% to 75%
-Added ability to view map from footer
v0.8.1 20241024.22
-FIXED: Common Room bad ending wouldn't trigger
v0.8 20241024.21
-Added connections between North Plaza & Library, South Plaza & Theatre, and Athletics Track - Athletics Court - Athletics Showers
-Added location-specific catch dialogues
-Increased variety of target caught dialogues
-Merged target caught pages
-FIXED: If hunter escape and Protect event were in the same location, it would teleport the player
v0.7 20241024.12
-Minor text adjustments
-Properly flagged given information in AskInfo responses
-Added more variety to AskInfo responses
-Optimized hunter escape code. It will now consume a random escape item instead of the first in the list
-New Endings: Plaza Statue, Theatre, Main Hall
v0.6.1 20241023.19
-Added flag to prevent player from getting Dorm Hall bad end on first visit
-New ending: Showdown
-Updated Walkthrough to include new opportunity
v0.6 - 20241023.12
-Added fourth event, Protect, that will make Ending 1 and 4 easier to achieve
-Ending 1 has different dialogue depending on when it's triggered
v0.5.1 - 20241022.21
-Updated warning text
-Updated Kyle target message to provide guidance
-Added more name options
-Certain TFed targets will now reflect their (former) species in their inventory item
-Fixed bug that allowed target to wander into your dorm room
-The player will now be told if they've just missed the target through Asking or Searching
v0.5 - 20241022.15
-Optimized search action code, reworded some actions
-New endings: Library, Dorm Room
-Added some easter egg characters as targets
v0.4 - 20241021.21
-Added different wait actions
-New endings: North Plaza, South Plaza
-FIXED: Given clues would persist after they should expire
-FIXED: Kyle's lookup on computer would give incorrect info
v0.3 - 20241021.13
-Optimized bad end code
-Tweaked intro story
v0.2 - 20241021.12
-Rewrote hunter and target movement mechanics. They will now move to adjacent locations instead of randomly across the map. In Hard Mode, the hunter will always move towards the player.
-The player will get the dorm room bad end if the hunter moves to the dorm room while they're in it
-Player will always find the missing sock when searching their room
-Added headers to rooms & endings
-Added text to nudge player to return to dorm as game winds down
-Added clues to locations and more variety in Ask for Info responses
-Target will now transform into a random object when tagged.
-In Hard Mode, only one of each item can be found.
-Added West Plaza and Art Room endings
-Added fluff for target descriptions
FIX: Using the computer too much will now properly trigger the dorm bad end
FIX: Fleeing from hunter will no longer land you in the same location
v0.1 20241020.10
Endings: MC Win, RM Win, MC Survives,
Bad Ends: Dorm Hall, Dorm Bathroom, Dorm Common Room, Dorm Elevator, Athletics Court, Gardensb01. When catching in Gardens, black screen??
FIXED b02. There's a possibility the hunter may randomly wander into the player's room and if the player goes there they'll trigger the dorm room bad end, without the player already being present (so the text of the ending won't really make sense)
FIXED b03. Inventory doesn't appear in EZMode
FIXED b04. Wait action list is borked
FIXED b05. Kyle's pictures in the pc lookup will be incorrect
b06. Difficulty triggering Kyle wins ending?<<nobr>>
<<set $targetLoc = $targetlocation>>
<<set $hunterLoc = $hunterlocation>>
/* Hard Mode Hunter Movement */
<<if $hardmode>>
<<script>>
window.calculateHunterDistance = function(start, end, locations) {
var queue = [[start]];
var visited = [start];
while (queue.length > 0) {
var path = queue.shift();
var current = path[path.length - 1];
if (current === end) {
return path.length - 1;
}
var adjacent = locations[current];
if (adjacent) {
for (var i = 0; i < adjacent.length; i++) {
var adj = adjacent[i];
if (!visited.includes(adj)) {
visited.push(adj);
var newPath = path.slice();
newPath.push(adj);
queue.push(newPath);
}
}
} else {
console.error('No adjacent locations found for:', current);
}
}
return Infinity;
};
window.moveHunter = function() {
var playerLoc = State.variables.location;
var hunterLoc = State.variables.hunterLoc;
var locations = State.variables.locations;
if (!playerLoc || !hunterLoc || !locations) {
console.error('One or more variables are undefined:', { playerLoc, hunterLoc, locations });
return;
}
console.log('Player Location:', playerLoc);
console.log('Hunter Location:', hunterLoc);
console.log('Locations:', locations);
var currentDistance = window.calculateHunterDistance(hunterLoc, playerLoc, locations);
var possibleMoves = locations[hunterLoc];
var bestMove = hunterLoc;
var bestDistance = currentDistance;
console.log('Current Distance:', currentDistance);
console.log('Possible Moves:', possibleMoves);
if (possibleMoves) {
for (var i = 0; i < possibleMoves.length; i++) {
var newLoc = possibleMoves[i];
var newDistance = window.calculateHunterDistance(newLoc, playerLoc, locations);
console.log('Checking Move:', newLoc, 'Distance:', newDistance);
if (newDistance < bestDistance) {
bestMove = newLoc;
bestDistance = newDistance;
}
}
State.variables.hunterLoc = bestMove;
} else {
console.error('No possible moves found for:', hunterLoc);
}
};
<</script>>
/* Normal Mode Hunter Movement */
<<else>>
<<script>>
window.moveHunterEasyMode = function() {
var hunterLoc = State.variables.hunterLoc;
var locations = State.variables.locations;
console.log('Hunter Location:', hunterLoc);
console.log('Locations:', locations);
var possibleMoves = locations[hunterLoc];
console.log('Possible Moves:', possibleMoves);
if (possibleMoves && possibleMoves.length > 0) {
var newLoc = possibleMoves[Math.floor(Math.random() * possibleMoves.length)];
State.variables.hunterLoc = newLoc;
console.log('Hunter moved to:', newLoc);
} else {
console.error('No possible moves found for:', hunterLoc);
}
};
<</script>>
<</if>>
<<script>>
window.moveTarget = function() {
var targetLoc = State.variables.targetLoc;
var locations = State.variables.locations;
console.log('Target Location:', targetLoc);
console.log('Locations:', locations);
var possibleMoves = locations[targetLoc];
console.log('Possible Moves:', possibleMoves);
if (possibleMoves && possibleMoves.length > 0) {
var newLoc = possibleMoves[Math.floor(Math.random() * possibleMoves.length)];
State.variables.targetLoc = newLoc;
console.log('Target moved to:', newLoc);
} else {
console.error('No possible moves found for:', targetLoc);
}
};
<</script>>
<<if $huntermovecounter >= 3>>
<<if $hardmode>>
<<run window.moveHunter()>>
<<else>>
<<run window.moveHunterEasyMode()>>
<</if>>
<<set $hunterlocation to $hunterLoc>>
<<set $huntermovecounter to 0>>
<</if>>
<<if $hidecount >= 5>>
<<set $hunterlocation to $location>>
<</if>>
<<if $targetmovecounter > 5>>
<<set $targetLastLoc to $targetlocation>>
<<run window.moveTarget()>>
<<set $targetmovecounter to 0>>
<<set $targetlocation to $targetLoc>>
<<set $targetlocknown to false>>
<<set $cluegiven to false>>
<</if>>
<</nobr>><<nobr>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<set $showfooter to false>>
You spot Kyle sneaking up on a $npcadj $npcspecies, his tagger drawn. At the last moment, the $npcspecies notices him, and takes off running. As the $npcspecies runs past, you...<br><br>
<div id="choices">
<<link "Trip him!">>
<<replace "#choices">><<set $kylehelp to $kylehelp+1>>
<<set $protectover to 1>>
The $npcspecies trips over your outstretched foot, going sprawling to the ground. Kyle catches up with him plants a foot on his back, keeping him down. "Nice try," he says, and tags his target.<br><br>The $npcadj $npcspecies stood no chance, and you watch as he rapidly transforms until he's nothing more than a flat, surprised-looking doormat beneath Kyle's foot. Kyle gives you a high five and thanks you for the assist, picking up the $npcspecies's discarded tagger and carrying on his way.<br><br>
[[Return|GoToLocation]]<</replace>>
<</link>>
<br>
<<link "Do nothing">>
<<replace "#choices">><<set $protectover to 1>>
You let the $npcspecies run past and Kyle chases after him, cursing under his breath.<br><br>
[[Return|GoToLocation]]<</replace>>
<</link>>
<<if $targetname == "Kyle">><br>
<<link "Catch Kyle!">>
<<replace "#choices">>
<<set $protectover to 1>>
<<set $protectending to 1>>
Kyle takes aim at the fleeing $npcspecies and fires, managing a miraculous shot. The $npcspecies stumbles and falls, the changes quickly taking hold.<br><br>
But as Kyle approaches the transforming $npcspecies, you raise your own tagger and aim it at him...<br><br>
[[Continue|EndingMCWin]]<</replace>>
<</link>>
<</if>>
</div>
<</nobr>><h2>Update Log</h2>
[[Go Back|MainMenu]]
<i>Version 1.2.2</i>
- Added some hunter/target-only backdoors to several locations to allow them to move around the map easier and be less likely to get "stuck" in certain areas of the map
<i>Version 1.2.1</i>
- Fixed an issue that caused modes to persist even after game over. Endless mode really was endless!
<i>Version 1.2.0</i>
- Added <b>Endless Mode</b>, where there's no time limit and you win by catching 50 targets.
- New ending if you achieve the goal in Endless Mode!
- Added a number of new possible TFs for targets
- Adjusted inventory coding to prioritize useful items
- Fixed an issue with names being depleted
- Fixed an issue that prevented main endings from triggering properly
<i>Version 1.1.0</i>
- Added an Ending Gallery to the Main Menu that will allow you to view received endings
- <<linkappend "! Spoiler Warning !">> A certain statue will now appear in the Plaza Statue location if Ending 4: Showdown has been unlocked.<</linkappend>>
<i>Version 1.0.1</i>
- Fixed an issue that made the hunter practically blind and unlikely to catch you if you were in the same location.
- Saves should work properly now and not cause the Actions menu to break
- Added a Restart button to each ending
<i>Version 1.0 2024.10.28</i>
Release version of the game!<h2>Ending Gallery</h2>
Here you can view the endings that you've unlocked! Note that some details, such as the hunter's species, may be different than when you first received the ending.
<table style="width:100%" class="endings-table" >
<tr>
<td><b>Bad Ends</b></td>
</tr>
<tr>
<td><<nobr>><<if $unlockedEndings.includes("BadEndDormRoom")>>
<<ViewEnding>>
[[Dorm Room (Soda Can)|BadEndDormRoom]]
<<else>>
Dorm Room
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndDormHall")>>
<<ViewEnding>>
[[Dorm Hallway (Sex Doll)|BadEndDormHall]]
<<else>>
Dorm Hallway
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndDormCommonRoom")>>
<<ViewEnding>>
[[Dorm Common Room (Condom)|BadEndDormCommonRoom]]
<<else>>
Dorm Common Room
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndDormBathroom")>>
<<ViewEnding>>
[[Dorm Bathroom (Deodorant)|BadEndDormBathroom]]
<<else>>
Dorm Bathroom
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndDormElevator")>>
<<ViewEnding>>
[[Dorm Elevator (Chastity Cage)|BadEndDormElevator]]
<<else>>
Dorm Elevator
<</if>><</nobr>></td>
</tr>
<tr>
<td><<nobr>><<if $unlockedEndings.includes("BadEndPlazaE")>>
<<ViewEnding>>
[[Plaza East (Towel)|BadEndPlazaE]]
<<else>>
Plaza East
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndPlazaN")>>
<<ViewEnding>>
[[Plaza North (Balloon)|BadEndPlazaN]]
<<else>>
Plaza North
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndPlazaS")>>
<<ViewEnding>>
[[Plaza South (Wristwatch)|BadEndPlazaS]]
<<else>>
Plaza South
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndPlazaW")>>
<<ViewEnding>>
[[Plaza West (Fursuit)|BadEndPlazaW]]
<<else>>
Plaza West
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndPlazaStatue")>>
<<ViewEnding>>
[[Plaza Statue (Fountain)|BadEndPlazaStatue]]
<<else>>
Plaza Statue
<</if>><</nobr>></td>
</tr>
<tr>
<td><<nobr>><<if $unlockedEndings.includes("BadEndAthletics")>>
<<ViewEnding>>
[[Athletics Centre (Trophy)|BadEndAthletics]]
<<else>>
Athletics Centre
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndAthTrack")>>
<<ViewEnding>>
[[Athletics Track (Shoe)|BadEndAthTrack]]
<<else>>
Athletics Track
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndAthCourt")>>
<<ViewEnding>>
[[Athletics Court (Socks)|BadEndAthCourt]]
<<else>>
Athletics Court
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndAthShowers")>>
<<ViewEnding>>
[[Athletics Showers (Jockstrap)|BadEndAthShowers]]
<<else>>
Athletics Showers
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndAthPool")>>
<<ViewEnding>>
[[Athletics Pool (Speedo)|BadEndAthPool]]
<<else>>
Athletics Pool
<</if>><</nobr>></td>
</tr>
<tr>
<td><<nobr>><<if $unlockedEndings.includes("BadEndMainHall")>>
<<ViewEnding>>
[[Main Hall (Vending Machine)|BadEndMainHall]]
<<else>>
Main Hall
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndArtRoom")>>
<<ViewEnding>>
[[Art Room (Mannequin)|BadEndArtRoom]]
<<else>>
Art Room
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndLectureHall")>>
<<ViewEnding>>
[[Lecture Hall (Chalk)|BadEndLectureHall]]
<<else>>
Lecture Hall
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndScienceLabs")>>
<<ViewEnding>>
[[Science Lab (Serum)|BadEndScienceLabs]]
<<else>>
Science Lab
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndLibrary")>>
<<ViewEnding>>
[[Library (Onahole)|BadEndLibrary]]
<<else>>
Library
<</if>><</nobr>></td>
</tr>
<tr>
<td><<nobr>><<if $unlockedEndings.includes("BadEndTheatre")>>
<<ViewEnding>>
[[Theatre (Plush Toy)|BadEndTheatre]]
<<else>>
Theatre
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("BadEndGardens")>>
<<ViewEnding>>
[[Gardens (Plant)|BadEndGardens]]
<<else>>
Gardens
<</if>><</nobr>></td>
</tr>
<tr>
<td><b>Main Endings</b></td>
</tr>
<tr>
<td><<nobr>><<if $unlockedEndings.includes("EndingMCWin")>>
<<ViewEnding>>
[[Ending 1: Victory (Pool Toy)|EndingMCWin]]
<<else>>
Ending 1: Victory
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("EndingRMWin")>>
<<ViewEnding>>
[[Ending 2: Caught (Cock)|EndingRMWin]]
<<else>>
Ending 2: Caught
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("EndingMCSurvives")>>
<<ViewEnding>>
[[Ending 3: Survival|EndingMCSurvives]]
<<else>>
Ending 3: Survival
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("EndingShowdown")>>
<<ViewEnding>>
[[Ending 4: Showdown (Statue)|EndingShowdown]]
<<else>>
Ending 4: Showdown
<</if>><</nobr>></td>
<td><<nobr>><<if $unlockedEndings.includes("EndingEndless")>>
<<ViewEnding>>
[[Ending 5: Endless (Doormat)|EndingEndless]]
<<else>>
( ??? )
<</if>><</nobr>></td>
</tr>
</table>
[[Return|MainMenu]]<<nobr>>
/* Set up Random Generators */
<<set $loclist = ["Dormitory Hallway", "Dormitory Bathroom", "Dormitory Common Room", "Dormitory Elevator", "West Plaza", "North Plaza", "South Plaza", "East Plaza", "Plaza Statue", "Gardens", "Athletic Centre", "Athletics Track", "Athletics Court", "Athletics Showers", "Athletics Pool", "Library", "Theatre", "Science Labs", "Main Hall", "Lecture Hall", "Art Room"]>>
/* Set Non-Dorm Locations */
<<set $kyletargetloclist = ["West Plaza", "North Plaza", "South Plaza", "East Plaza", "Plaza Statue", "Gardens", "Athletic Centre", "Athletics Track", "Athletics Court", "Athletics Showers", "Athletics Pool", "Library", "Theatre", "Science Labs", "Main Hall", "Lecture Hall", "Art Room"]>>
/* Set Location Clues */
<<set $locationclue = {
"Dormitory Hallway": "in a hall with lots of doors",
"Dormitory Bathroom": "scribbling something on a stall wall",
"Dormitory Common Room": "hanging out and watching TV",
"Dormitory Elevator": "taking a mirror selfie",
"West Plaza": "donating to a fundraiser",
"East Plaza": "buying school merch",
"North Plaza": "holding a bright red balloon",
"South Plaza": "playing a game of catch",
"Plaza Statue": "rubbing a big shiny cock for luck",
"Athletic Centre": "celebrating school glories",
"Athletics Track": "going for a jog",
"Athletics Court": "shooting three-pointers",
"Athletics Showers": "taking a shower",
"Athletics Pool": "going for a dip",
"Theatre": "practicing acting",
"Library": "studying tactics",
"Gardens": "surrounded by colorful plants",
"Main Hall": "in a busy thoroughfare",
"Lecture Hall": "sitting in on a talk",
"Science Labs": "experimenting with strange things",
"Art Room": "making a colorful mess" }>>
/* Set Location Wait Actions */
<<set $waitactionlist = {
"Dorm Room": "Wait (Have a quick wank)",
"Dormitory Hallway": "Wait (Roam the halls)",
"Dormitory Bathroom": "Wait (Use the facilities)",
"Dormitory Common Room": "Wait (Watch the TV)",
"Dormitory Elevator": "Wait (Ride the elevator)",
"West Plaza": "Wait (People-watch)",
"East Plaza": "Wait (Show school spirit)",
"North Plaza": "Wait (Get a balloon animal)",
"South Plaza": "Wait (Play catch)",
"Plaza Statue": "Wait (Rub the horse for luck)",
"Athletic Centre": "Wait (Check out the trophies)",
"Athletics Track": "Wait (Run a lap)",
"Athletics Court": "Wait (Watch the basketball game)",
"Athletics Showers": "Wait (Sniff a jockstrap)",
"Athletics Pool": "Wait (Go for a swim)",
"Theatre": "Wait (Give a monologue)",
"Library": "Wait (Read something)",
"Gardens": "Wait (Stop and smell the flowers)",
"Main Hall": "Wait (Get something from the vending machine)",
"Lecture Hall": "Wait (Draw on the chalkboard)",
"Science Labs": "Wait (Check out the experiments)",
"Art Room": "Wait (Paint something)" }>>
/* Set Location Adjacencies */
<<set $locations = {
"Dorm Room": ["Dormitory Hallway"],
"Dormitory Hallway": ["Dorm Room", "Dormitory Bathroom", "Dormitory Elevator", "Dormitory Common Room"],
"Dormitory Bathroom": ["Dormitory Hallway"],
"Dormitory Common Room": ["Dormitory Hallway"],
"Dormitory Elevator": ["Dormitory Hallway", "West Plaza"],
"West Plaza": ["Dormitory Elevator", "North Plaza", "South Plaza", "Plaza Statue"],
"East Plaza": ["Library", "North Plaza", "South Plaza", "Plaza Statue", "Theatre", "Main Hall"],
"North Plaza": ["Gardens", "West Plaza", "East Plaza", "Plaza Statue", "Library"],
"South Plaza": ["Athletic Centre", "East Plaza", "West Plaza", "Plaza Statue", "Theatre"],
"Plaza Statue": ["North Plaza", "East Plaza", "West Plaza", "South Plaza"],
"Athletic Centre": ["Athletics Track", "Athletics Showers", "Athletics Court", "South Plaza"],
"Athletics Track": ["Athletic Centre", "Athletics Court", "South Plaza"],
"Athletics Court": ["Athletic Centre", "Athletics Track", "Athletics Showers"],
"Athletics Showers": ["Athletic Centre", "Athletics Pool", "Athletics Court"],
"Athletics Pool": ["Athletics Showers", "South Plaza"],
"Theatre": ["East Plaza", "South Plaza"],
"Library": ["East Plaza", "North Plaza"],
"Gardens": ["North Plaza"],
"Main Hall": ["East Plaza", "Science Labs", "Art Room", "Lecture Hall"],
"Lecture Hall": ["Main Hall", "East Plaza", "Theatre"],
"Science Labs": ["Main Hall", "East Plaza", "Library"],
"Art Room": ["Main Hall"],
}>>
/* Set up Wait Actions Widget */
<<widget "waitAction">>
<<set $waitmessage = $waitactionlist[$location]>>
<<linkappend $waitmessage>>
<<goto "Wait">>
<</linkappend>>
<</widget>>
/* Set up Actions Widget */
<<widget "Actions">>
<<linkappend "Search">><br>
<<if $searchcheck == 0>>
<<goto "Search">>
<<else>>
You've already searched here recently.
<</if>>
<</linkappend>><br>
<<waitAction>><br>
<<linkappend "Ask someone about target">><br>
<<if $npcaskcheck == 0>>
<<goto "AskInfo">>
<<else>>
You've already asked someone here for information..
<</if>>
<</linkappend>><br>
<<linkappend "View campus map" t8n>><br>
<<include "CampusMap">>
<</linkappend>>
<</widget>>
// Start 2
/* Define Initial Target & Hunter */
<<set $specialCharacters = {
"Zooks": {
species: "kobold",
adj: "subby"
},
"Blueballs": {
species: "raccoon",
adj: "blue"
},
"Ritz": {
species: "cat",
adj: "dom"
},
"Decro": {
species: "wolf",
adj: "white"
},
"Maple": {
species: "wolf",
adj: "red"
},
"Ky": {
species: "capybara",
adj: "all-powerful"
},
"Medley": {
species: "skunk",
adj: "pooltoy"
}
}>>
<<widget "GenTarget">>
<<set $targetname = $namelist.pluck()>>
/* Check if this is a special character using the ?. operator */
<<if $specialCharacters[$targetname]?.species>>
<<set $targetspecies to $specialCharacters[$targetname].species>>
<<set $targetadj to $specialCharacters[$targetname].adj>>
<<else>>
<<if $targetname !== undefined>>
<<if !$endlessmode>>
<<set $targetname = $targetname + $lastnamelist.pluck()>>
<<else>>
<<set $targetname = $targetname + $lastnamelist.random()>>
<</if>>
<</if>>
<<set $targetspecies to $specieslist.random()>>
<<set $targetadj to $adjlist.random()>>
<</if>>
<<set $targethobby1 to $targethobbylist.random()>>
<<set $targethobby2 to $targethobbylist.random()>>
<<set $targetlocation to $loclist.random()>>
<<set $targetlocknown to false>>
<<set $targetlastseen to false>>
<<set $cluegiven to false>>
<<set $targetmovecounter to 0>>
<</widget>>
<<widget "GenerateDroppedItem">>
/* Get random item from your existing item list */
<<if !$endlessmode>>
<<set $currentItem = $targetTFlist.pluck()>>
<<else>>
<<set $currentItem = $targetTFlist.random()>>
<</if>>
/* Check if this item has a special pattern */
<<if $itemPatterns[$currentItem]>>
/* Get the pattern and replace {species} with actual species */
<<set _pattern = $itemPatterns[$currentItem].pattern>>
<<set $currentItem = _pattern.replace("{species}", $targetspecies)>>
<</if>>
/* Add to inventory */
<<if !$inventory>>
<<set $inventory = []>>
<</if>>
<<set $inventory.push($currentItem)>>
<</widget>>
<<set $highscore to 0>>
<<set $showdowncomplete to false>>
<<set $unlockedEndings = []>>
<<widget "ViewEnding">>
<<set $hunterspecies to $specieslist.random()>>
<<set $hunteradj to $adjlist.random()>>
<<GenTarget>>
<</widget>>
<<script>>
// Set up auto-saving whenever an ending is unlocked
Config.saves.autosave = true;
<</script>>
<</nobr>><<nobr>>
<<set $pickeditem to $inventory.random()>>
<h2>Ending 5: Endless</h2>
<<set $showfooter to false>>
<</nobr>>
You arrive at the administrative building and make your way to the president's office, unsure of what you'll find when you enter. He didn't mention what the prize would be for making it this far, but you really hope it's good.
You knock on the ornate oak door and poke your head in, finding the president sitting at his desk, his big, meaty lion paws up on the desk as he talks on the phone.
He gestures for you to enter, points to the phone, and holds up one finger.
You slowly approach, taking a look around the room. It's expensively-decorated, with rich woods comprising the furniture and rows of books on the shelves. Accolades decorate one wall, while paintings of previous presidents adorn another. A fireplace crackles merrily, casting dancing orange light across an oriental rug. The lamp on the president's desk and the fireplace provide the only light, giving the room a dramatic ambiance, and the moody lighting really highlights the lion's muscles bulging beneath his slightly-unbuttoned dress shirt.
You take a seat in the comfortable chair opposite the president as he finishes up his call with, "No, no need to get Legal involved. The possibility was written into their student contracts. Yes, we get to keep the tuition already paid. Yes, he's here with me now. Alright. See to it."
He sets down the phone and picks up a cigar smouldering in a tray on the desk. Taking a big inhale, the embers light up, and you could almost swear they look like a face. He tips his head up and exhales, considerately not blowing the smoke in your face.
"Well well well," the lion says at last, putting the cigar back on the tray and inspecting you. "Our ultimate champion! You certainly made a mark on the campus today, I will say. Thanks to your efforts, and those of the other participants, we've freed up lots of slots for new students. And I'm sure you've gained quite the collection in the process!"
He gestures to your bag. "Let's take a look, shall we?" You open your bag and empty out its contents like a kid on Halloween, the many items spilling out onto the large desk. The president picks up $pickeditem and looks at it carefully. "And who was this?" he wonders, then after a moment sets <<print $pickeditem.replace(/^an? /, 'the ')>> back down and shrugs. "I suppose it doesn't matter now, eh?"
The lion takes his paws off the desk and reaches beneath it, producing a nice, black leather briefcase that he sets on the desk.
"This," he says, slapping the top of the briefcase, "is a full ride's worth of money. Complete tuition for your time here, in cold hard cash. And my promise that you will be exempt from any future TF Tag events. Unless, of course, you willingly register." He flashes a big smile at you, his teeth glinting in the light.
"It's all yours, you've earned it. It can't have been easy, avoiding getting caught for so long!" The president's smile returns, but there's something different in it this time. He slowly opens a drawer in his desk and takes out a tagger, setting it gently next to the briefcase. You gulp as you notice that the label on the side has your name on it.
"I know how hot it can be," the lion purrs, "watching the serum transform people. Wondering how it feels, wondering... if you might just want to get caught, after all."
He leans back and props his paws back up on the desk again, scattering some of the items from your bag into the carpet.
"So I'll offer you a choice," he says softly, smirking. "You can take the briefcase, enjoy the free ride and make the most of your time here at our wonderful university. Or," he nods his head towards the tagger, "you can find out what it feels like, and you'll get to spend a lot longer here at the university. Quite close to me, I will add." He wiggles his paws at you teasingly. "What will it be?"
<div id="choices"><<nobr>>
<<link "Briefcase">>
<<replace "#choices">>
You reach out and, after a moment's hesitation, grab the handle of the briefcase. The president nods thoughtfully and sits back, grabbing his cigar and taking another puff.<br><br>
He helps you put your things back into your overstuffed bag, then sees you to the door with your bag and briefcase of cash. With a final friendly pat on the back, he sends you on your way to enjoy your well-earned prize.<br><br>
<b>THE END!</b><br>
[[Restart?|MainMenu]]
<</replace>>
<</link>>
<br>
<<link "Tagger">>
<<replace "#choices">>
Taking a deep breath, you point to the tagger. A grin spreads across the lion's face, and you smile bashfully. You made it this far, escaped being caught and transformed... only to willingly turn yourself over to this handsome, muscular lion.<br><br>
"Very well!" he announces with satisfaction. "I'm certain you'll enjoy it, and I'll make very good use of you, I promise you that! Now if you wouldn't mind removing your clothes... that's right, no need to be shy at this point."<br><br>
You dutifully remove your clothes, blushing as you reveal the throbbing boner that was hiding in your pants. The president beckons you to his side of the desk, and takes up the tagger.<br><br>
"You might feel a slight pinch," he says, pressing the barrel to your shoulder. You feel more than a slight pinch as he pulls the trigger, the dart instantly slamming into you and injecting its serum.<br><br>
"There we go," he purrs. "Please lay down on the carpet for me, right there. Good."<br><br>
Laying down, you look up at the handsome lion, his face lit with the warm glows of the lamp and the fire, and he smiles down at you. Then he raises a paw, and presses it down on your face.<br><br>
A muffled sound is all that makes it out of you as he gently, but firmly, presses down, and you watch with crossed eyes as that big paw deforms your muzzle, squishing it down and flattening it against your face. You try to open your mouth to say something, but it feels as though your bones have vanished and all you can say is, "Mmmfff!"<br><br>
The lion brings his other paw down, and in tandem they begin stepping all over you, gently flattening you wherever they land. It feels painless. No, better than painless - it feels <i>good</i>, like every part that gets stepped on is receiving a pro massage.<br><br>
Feeling his paws all over you makes your cock twitch and drip, and you reach down to touch yourself. Before your hand can get there, his paw knocks it aside and pins it to the floor, squishing it down until you can do no more than feebly twitch it.<br><br>
You gurgle out a whine through your smushed snout and his paw is there in an instant, pressing down on your face again until it's too flat to utter a peep.<br><br>
His paws find your cock, drooling precum onto your flat stomach, and begin to tease it. He doesn't flatten it, not yet, but he rubs sensually up and down your shaft with both paws, and you try to buck your hips but manage only a pathetic little tremble.<br><br>
"Mm, enjoying this are we?" he asks, stroking your shaft between his toes. "Feeling needy for release?"<br><br>
<i>Yes, yes,</i> your mind screams, but you have no way to communicate it to him, and can only lay there as he plays with your cock.<br><br>
But just as you feel your orgasm building, he starts to press your cock against your stomach, flattening it down and sealing it forever shut. Your balls, full and aching for release, are the next to go, and he presses down on them with his paws until the cum-filled orbs are flat and flush with the rest of your body. It's heavenly torture, begging so dearly for release but knowing that you will never receive it.<br><br>
"Let's get you in shape," the president announces, standing up from his chair. "You're a bit too long at the moment."<br><br>
He reaches down and takes one of your flattened legs, lifting up your hip and folding the leg beneath you. He does the same with your other leg, as well as your two arms. Now that you're in a smaller and more manageable shape, he nods in satisfaction and sits back down.<br><br>
The stepping resumes, and this time as he presses those beautiful paws down on you it serves to press your layers together, smushing your body down into your legs and arms and flattening you even further, until by the time he's finished you're scarcely half an inch high.<br><br>
"Mm, that's better," he says, as you finally finish your transformation into a doormat. "Nice and flat and soft."<br><br>
He reaches down and drags you underneath his desk, wasting no time in putting his paws right back on top of you.<br><br>
"Oh yes, very soft," he purrs. "I'm very much going to enjoy having you down there for a long time to come."<br><br>
As he gently kneads you with his paws, one on your face and one on your cock, you know that you are very much going to enjoy being down there as well.<br><br>
<b>THE END.</b><br>
[[Restart?|MainMenu]]
<</replace>>
<</link>>
<</nobr>></div>
<<if !$unlockedEndings.includes("EndingEndless")>>
<<run $unlockedEndings.push("EndingEndless")>>
<</if>><<nobr>>
<<set $npcspecies to $specieslist.random()>>
<<set $npcadj to $adjlist.random()>>
<<set $kylecaughtitem = $targetTFlist.random()>>
<<set $showfooter to false>>
<<set $caughteventover to true>>
You see Kyle coming around the corner, searching for his target. He sees you and gives a friendly wave, but his eyes suddenly go wide and he twists around, revealing a dart sticking out of his back.<br><br>
You can only watch helplessly as your roommate transforms in front of your very eyes, his body shifting and shrinking until he's nothing more than $kylecaughtitem.<br><br>
The $npcadj $npcspecies who tagged him strides over and picks <<print $kylecaughtitem.replace(/^an? /, 'the ')>> up and shoves it in his bag. He picks up Kyle's tagger and gives you a wink.<br><br>
"Thanks for distracting him for me, bro," the $npcspecies says, and departs in search of his next target.<br><br>
[[Continue|GoToLocation]]
<</nobr>>