diff --git a/game/base-system/parasites.twee b/game/base-system/parasites.twee
index acb0e5216ee9f6b74f2acbbd82b4424e5d9991ef..8f63dc4da71133903888f7452b4dd2714375f0c7 100644
--- a/game/base-system/parasites.twee
+++ b/game/base-system/parasites.twee
@@ -102,6 +102,7 @@
 		<</if>>
 
 		<<run delete $parasite[_temp0].name>>
+		<<run delete $parasite[_temp0].origin>>
 
 		<<set _temp0 to _temp0.replace(/_/g, " ")>>/*Removes underscores from argument to match with the change made in the <<parasite>> widget.*/
 		<<for _type range $parasite.types>>
@@ -116,7 +117,7 @@
 <<widget "resetEarSlime">>
 	<<set $earSlime to {
 		days: 0,
-		corruption: 0, 
+		corruption: 0,
 		growth: 0,
 		focus: "none",
 		event: "",
diff --git a/game/overworld-town/loc-school/roof.twee b/game/overworld-town/loc-school/roof.twee
index f07ef75350fd577bd24774a1f5b2057dae3360f5..5a302820a9963c12fb7548aafeb949e58c15c35a 100644
--- a/game/overworld-town/loc-school/roof.twee
+++ b/game/overworld-town/loc-school/roof.twee
@@ -4,62 +4,62 @@
 You are on the school roof, a wide expanse overlooking both the front and rear yards.
 
 <<if $schoolstate is "lunch">>
-    <<if $NPCName[$NPCNameList.indexOf("Whitney")].init is 1 and !["dungeon", "pillory"].includes(C.npc.Whitney.state)>>
-        Whitney leans against one of the railings, flanked by friends and
-        <<if Weather.precipitation is "rain">>
-            sheltered from the wind-swept rain by a nearby wall.
-        <<else>>
-            watching the grounds below.
-        <</if>>
-        <br><br>
-    <<else>>
-        <<if Weather.precipitation is "rain">>
-            Groups of students chat in groups, huddled in the few dry spots.
-            <br><br>
-        <<else>>
-            Groups of students chat in groups, eating from lunchboxes.
-        <</if>>
-        <br><br>
-    <</if>>
+	<<if $NPCName[$NPCNameList.indexOf("Whitney")].init is 1 and !["dungeon", "pillory"].includes(C.npc.Whitney.state) and $daily.whitney.roofLeave isnot true>>
+		Whitney leans against one of the railings, flanked by friends and
+		<<if Weather.precipitation is "rain">>
+			sheltered from the wind-swept rain by a nearby wall.
+		<<else>>
+			watching the grounds below.
+		<</if>>
+		<br><br>
+	<<else>>
+		<<if Weather.precipitation is "rain">>
+			Groups of students chat in groups, huddled in the few dry spots.
+			<br><br>
+		<<else>>
+			Groups of students chat in groups, eating from lunchboxes.
+		<</if>>
+		<br><br>
+	<</if>>
 <<elseif $schoollesson is 1>>
-    There's no one around. You see movement through the windows of various classrooms.
-    <br><br>
+	There's no one around. You see movement through the windows of various classrooms.
+	<br><br>
 <<elseif $schoolday is 1>>
-    <<if $schoolstate is "morning">>
-        Students chat in groups,
-        <<if Weather.precipitation is "rain">>
-            huddling near walls for shelter from the wind-swept rain.
-        <<else>>
-            making the most of their free time before lessons begin.
-        <</if>>
-        <br><br>
-    <<elseif $schoolstate is "afternoon">>
-        Students chat in groups,
-        <<if Weather.precipitation is "rain">>
-            huddling near walls for shelter from the wind-swept rain.
-        <<else>>
-            relieved that lessons are over.
-        <</if>>
-        <br><br>
-    <<else>>
-        There's no one around.
-        <br><br>
-    <</if>>
+	<<if $schoolstate is "morning">>
+		Students chat in groups,
+		<<if Weather.precipitation is "rain">>
+			huddling near walls for shelter from the wind-swept rain.
+		<<else>>
+			making the most of their free time before lessons begin.
+		<</if>>
+		<br><br>
+	<<elseif $schoolstate is "afternoon">>
+		Students chat in groups,
+		<<if Weather.precipitation is "rain">>
+			huddling near walls for shelter from the wind-swept rain.
+		<<else>>
+			relieved that lessons are over.
+		<</if>>
+		<br><br>
+	<<else>>
+		There's no one around.
+		<br><br>
+	<</if>>
 <<else>>
-    There's no one around.
-    <br><br>
+	There's no one around.
+	<br><br>
 <</if>>
 
 <<if $exposed gte 1>>
-    You hide behind a corner, concealing your <<lewdness>>.
-    <br><br>
+	You hide behind a corner, concealing your <<lewdness>>.
+	<br><br>
 <</if>>
 
 <<if $schoolstate is "lunch" and $NPCName[$NPCNameList.indexOf("Whitney")].init is 1 and !["dungeon", "pillory"].includes(C.npc.Whitney.state) and !$whitney_roof>>
-    <<whitney_roof_events>>
+	<<whitney_roof_events>>
 <<else>>
-    <<link [[Hallways (0:01)|Hallways]]>><<endevent>><<pass 1>><</link>>
-    <br>
+	<<link [[Hallways (0:01)|Hallways]]>><<endevent>><<pass 1>><</link>>
+	<br>
 <</if>>
 
 
@@ -114,7 +114,7 @@ You are on the school roof, a wide expanse overlooking both the front and rear y
 	<br><br>
 	<<clotheson>>
 	<<endcombat>><<npc Whitney>><<person1>>
-    <br><br>
+	<br><br>
 
 	Whitney lifts you to your feet, an evil glint in <<his>> eye.
 	<br><br>
@@ -134,8 +134,8 @@ Several students below look up. You're not so high they can't tell who you are.
 <br><br>
 
 <<if hasSexStat("promiscuity", 2)>>
-    <<link [[Grind back|Whitney Roof Railing Grind]]>><<npcincr Whitney lust 5>><</link>><<promiscuous2>><<glust>>
-    <br>
+	<<link [[Grind back|Whitney Roof Railing Grind]]>><<npcincr Whitney lust 5>><</link>><<promiscuous2>><<glust>>
+	<br>
 <</if>>
 
 <<link [[Let Whitney do what <<he>> wants| Whitney Roof Railing Let]]>><<arousal 600>><</link>><<garousal>>
@@ -153,11 +153,11 @@ You grind against Whitney, raising your <<bottom>> in time with <<his>> thrusts.
 
 
 <<if $NPCName[$NPCNameList.indexOf("Whitney")].love gte 5>>
-    <<link [[Next|Whitney Roof Railing 2]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing 2]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Whitney Roof Railing End]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing End]]>><</link>>
+	<br>
 <</if>>
 
 :: Whitney Roof Railing Let
@@ -167,11 +167,11 @@ You remain passive, only moving to stay steady as Whitney thrusts against you wi
 <br><br>
 
 <<if $NPCName[$NPCNameList.indexOf("Whitney")].love gte 5>>
-    <<link [[Next|Whitney Roof Railing 2]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing 2]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Whitney Roof Railing End]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing End]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -179,11 +179,11 @@ You remain passive, only moving to stay steady as Whitney thrusts against you wi
 <<effects>>
 
 <<if $speech_attitude is "meek">>
-    "Please let me go," you say. "Everyone down there can see us. They'll get the wrong impression."
+	"Please let me go," you say. "Everyone down there can see us. They'll get the wrong impression."
 <<elseif $speech_attitude is "bratty">>
-    "Get the fuck away from me," you say. "Everyone down there is gonna think I'm as perverted as you."
+	"Get the fuck away from me," you say. "Everyone down there is gonna think I'm as perverted as you."
 <<else>>
-    "Let me go," you say. "People down there will think we're doing something more obscene than we really are."
+	"Let me go," you say. "People down there will think we're doing something more obscene than we really are."
 <</if>>
 <br><br>
 
@@ -191,11 +191,11 @@ Whitney answers with a violent thrust against your <<bottom>>, making you jolt.
 <br><br>
 
 <<if $NPCName[$NPCNameList.indexOf("Whitney")].love gte 5>>
-    <<link [[Next|Whitney Roof Railing 2]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing 2]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Whitney Roof Railing End]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing End]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -210,8 +210,8 @@ You look down, and see you've caught the attention of students below.
 <br><br>
 
 <<if hasSexStat("promiscuity", 3)>>
-    <<link [[Moan|Whitney Roof Railing Moan]]>><<arousal 600>><</link>><<promiscuous3>><<garousal>>
-    <br>
+	<<link [[Moan|Whitney Roof Railing Moan]]>><<arousal 600>><</link>><<promiscuous3>><<garousal>>
+	<br>
 <</if>>
 <<link [[Endure|Whitney Roof Railing Endure]]>><</link>>
 <br>
@@ -226,11 +226,11 @@ You close your eyes and moan aloud. One of Whitney's friends laughs, but is soon
 <br><br>
 
 <<if $NPCName[$NPCNameList.indexOf("Whitney")].love gte 10>>
-    <<link [[Next|Whitney Roof Railing 3]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing 3]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Whitney Roof Railing End]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing End]]>><</link>>
+	<br>
 <</if>>
 
 :: Whitney Roof Railing Endure
@@ -244,11 +244,11 @@ You endure Whitney's incessant thrusting, and the gazes of the students below. W
 
 
 <<if $NPCName[$NPCNameList.indexOf("Whitney")].love gte 10>>
-    <<link [[Next|Whitney Roof Railing 3]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing 3]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Whitney Roof Railing End]]>><</link>>
-    <br>
+	<<link [[Next|Whitney Roof Railing End]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -286,33 +286,33 @@ You hear the false clicks of the phones around you as Whitney's friends take pic
 <br><br>
 
 <<if $arousal gte $arousalmax>>
-    "That'll be all, slut," Whitney says, slapping your <<bottom>> into motion. The impact sends ripples of sensation up your spine. <<orgasm>>
+	"That'll be all, slut," Whitney says, slapping your <<bottom>> into motion. The impact sends ripples of sensation up your spine. <<orgasm>>
 
-    You lean against the railing to steady your legs. "You're such a slut," Whitney says, bending you over.
-    <br><br>
-    <<link [[Next|Whitney Roof Railing Rape]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	You lean against the railing to steady your legs. "You're such a slut," Whitney says, bending you over.
+	<br><br>
+	<<link [[Next|Whitney Roof Railing Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <<else>>
-    "That'll be all, slut," Whitney says, slapping your <<bottom>> into motion. <<He>> eyes you as you walk away.
-    <br><br>
+	"That'll be all, slut," Whitney says, slapping your <<bottom>> into motion. <<He>> eyes you as you walk away.
+	<br><br>
 
-    <<link [[Next|School Roof]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|School Roof]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Whitney Roof Railing End
 <<effects>>
 
 <<if $arousal gte $arousalmax>>
-    Whitney steps to your side, takes a selfie with your <<bottom>> in the background, then gives it a firm smack. The impact sends ripples of sensation up your spine. <<orgasm>>
+	Whitney steps to your side, takes a selfie with your <<bottom>> in the background, then gives it a firm smack. The impact sends ripples of sensation up your spine. <<orgasm>>
 
-    You lean against the railing to steady your legs. "You're such a slut," Whitney says, bending you over.
-    <br><br>
-    <<link [[Next|Whitney Roof Railing Rape]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	You lean against the railing to steady your legs. "You're such a slut," Whitney says, bending you over.
+	<br><br>
+	<<link [[Next|Whitney Roof Railing Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <<else>>
-    Whitney steps to your side, takes a selfie with your <<bottom>> in the background, then gives it a firm smack. "I'm done for now. Fuck off before I do something invasive."
-    <br><br>
+	Whitney steps to your side, takes a selfie with your <<bottom>> in the background, then gives it a firm smack. "I'm done for now. Fuck off before I do something invasive."
+	<br><br>
 	<<link [[Next|School Roof]]>><<endevent>><</link>>
 	<br>
 <</if>>
@@ -363,8 +363,8 @@ You hear the false clicks of the phones around you as Whitney's friends take pic
 	<<set $rescued += 1>>
 	"Whitney!" barks a voice from below. It sounds like Doren. "I know that's you." The teacher emerges from the hallways beneath you, and looks up, but Whitney has already backed away from view.
 	<br><br>
-    <<He>> lights a cigarette. "Another time, slut."
-    <br><br>
+	<<He>> lights a cigarette. "Another time, slut."
+	<br><br>
 	<<tearful>> you walk across the roof.
 	<br><br>
 <</if>>
@@ -378,11 +378,11 @@ You hear the false clicks of the phones around you as Whitney's friends take pic
 <<effects>>
 
 <<if $speech_attitude is "meek">>
-    "What would you like me to do?" you ask.
+	"What would you like me to do?" you ask.
 <<elseif $speech_attitude is "bratty">>
-    "Be more specific," you say.
+	"Be more specific," you say.
 <<else>>
-    "What do you mean?" you ask.
+	"What do you mean?" you ask.
 <</if>>
 <br><br>
 "Pose for us," Whitney replies. "Or strut like you're on a catwalk. Anything to get our juices flowing."
@@ -392,7 +392,7 @@ You hear the false clicks of the phones around you as Whitney's friends take pic
 <<link [[Strut like you're on a catwalk|Whitney Roof Show Strut]]>><</link>><<exhibitionist1>>
 <br>
 <<if hasSexStat("exhibitionism", 2)>>
-    <<link [[Strike an erotic pose|Whitney Roof Show Erotic]]>><</link>><<exhibitionist2>>
+	<<link [[Strike an erotic pose|Whitney Roof Show Erotic]]>><</link>><<exhibitionist2>>
 <</if>>
 
 :: Whitney Roof Show Pose
@@ -405,8 +405,8 @@ Whitney's friends reach for their phones. Whitney just leans back and admires th
 <br><br>
 
 <<if $attractiveness gte 5000>>
-    <<famemodel 5>>
-    <<internet_photo "whitney_roof_cute">>
+	<<famemodel 5>>
+	<<internet_photo "whitney_roof_cute">>
 <</if>>
 "That's all, slut." Whitney says once <<his>> friends have taken some pictures. "Go bother someone else."
 <br><br>
@@ -445,11 +445,11 @@ You bend over theatrically and blow Whitney a kiss. <<He>> recoils just as theat
 <<effects>>
 
 <<if $speech_attitude is "meek">>
-    You reach out a tentative hand. "That'll be £10 please."
+	You reach out a tentative hand. "That'll be £10 please."
 <<elseif $speech_attitude is "bratty">>
-    You hold out your hand. "Ahem."
+	You hold out your hand. "Ahem."
 <<else>>
-    "That'll be £10," you say, holding out your hand.
+	"That'll be £10," you say, holding out your hand.
 <</if>>
 <br><br>
 
@@ -546,35 +546,35 @@ You turn and walk away from Whitney, through <<his>> leering friends. You feel <
 You turn on the spot, and bend over, sticking your <<bottom>> into the air. You wiggle it, and cast a look over your shoulder. Whitney's friends scramble for their phones.<<exhibitionism2>>
 
 <<if $worn.lower.skirt_down is 1>>
-    <<if $worn.under_lower.type.includes("naked")>>
-        <<if hasSexStat("exhibitionism", 5)>>
-            Your skirt flares in the breeze. You could escalate the situation, <span class="pink">but you're not wearing underwear.</span>
-            <br><br>
-            <<link [[Lift skirt|Whitney Roof Show Erotic Pantiless]]>><</link>><<exhibitionist5>>
-            <br>
-        <<else>>
-            Your skirt flares in the breeze. You tug it down, feeling a blush creep across your face. <span class="pink">You're not wearing underwear.</span><<gstress>><<stress 6>>
-            <br><br>
-        <</if>>
-    <<else>>
-        <<if hasSexStat("exhibitionism", 3)>>
-            Your skirt flares in the breeze. You could escalate the situation.
-            <br><br>
-            <<link [[Lift skirt|Whitney Roof Show Erotic Panties]]>><</link>><<exhibitionist3>>
-            <br>
-        <<else>>
-            Your skirt flares in the breeze. You tug it down before anyone gets a glimpse of your <<print $worn.under_lower.name>>.
-            <br><br>
-        <</if>>
-    <</if>>
+	<<if $worn.under_lower.type.includes("naked")>>
+		<<if hasSexStat("exhibitionism", 5)>>
+			Your skirt flares in the breeze. You could escalate the situation, <span class="pink">but you're not wearing underwear.</span>
+			<br><br>
+			<<link [[Lift skirt|Whitney Roof Show Erotic Pantiless]]>><</link>><<exhibitionist5>>
+			<br>
+		<<else>>
+			Your skirt flares in the breeze. You tug it down, feeling a blush creep across your face. <span class="pink">You're not wearing underwear.</span><<gstress>><<stress 6>>
+			<br><br>
+		<</if>>
+	<<else>>
+		<<if hasSexStat("exhibitionism", 3)>>
+			Your skirt flares in the breeze. You could escalate the situation.
+			<br><br>
+			<<link [[Lift skirt|Whitney Roof Show Erotic Panties]]>><</link>><<exhibitionist3>>
+			<br>
+		<<else>>
+			Your skirt flares in the breeze. You tug it down before anyone gets a glimpse of your <<print $worn.under_lower.name>>.
+			<br><br>
+		<</if>>
+	<</if>>
 <<else>>
-    Whitney's friends step closer, taking pictures as they do.
-    <br><br>
+	Whitney's friends step closer, taking pictures as they do.
+	<br><br>
 <</if>>
 
 <<if $attractiveness gte 5000>>
-    <<famemodel 5>>
-    <<internet_photo "whitney_roof_erotic">>
+	<<famemodel 5>>
+	<<internet_photo "whitney_roof_erotic">>
 <</if>>
 
 <<link [[Stop|Whitney Roof Show Stop]]>><</link>>
@@ -721,21 +721,21 @@ One of <<his>> friends can't contain <<person2>><<his>> laughter. Whitney silenc
 <<effects>>
 
 <<if $physiqueSuccess>>
-    You pull away from Whitney. <<He>> tries to grab your waist, but you kick <<him>> in the shin and put some distance between you.<<llove>><<ldom>><<npcincr Whitney love -1>><<npcincr Whitney dom -1>>
-    <br><br>
+	You pull away from Whitney. <<He>> tries to grab your waist, but you kick <<him>> in the shin and put some distance between you.<<llove>><<ldom>><<npcincr Whitney love -1>><<npcincr Whitney dom -1>>
+	<br><br>
 
-    Whitney's gaze flicks between <<his>> friends, as if daring them to laugh. They remain silent. Whitney scowls, but turns away from you and faces the yard.
-    <br><br>
+	Whitney's gaze flicks between <<his>> friends, as if daring them to laugh. They remain silent. Whitney scowls, but turns away from you and faces the yard.
+	<br><br>
 
-    <<link [[Next|School Roof]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|School Roof]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    You try to pull away from Whitney, <span class="red">but <<he>> grasps your wrists and pulls you against <<him>>.</span> "Did I say you could leave, slut?" <<he>> asks. <<He>> forces your mouth open with one hand and pushes the fingers of the other inside.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-    <br><br>
-    <<link [[Cooperate|Whitney Roof Grope Cooperate 2]]>><</link>>
-    <br>
-    <<link [[Bite|Whitney Roof Grope Bite]]>><<npcincr Whitney love -1>><<npcincr Whitney dom -1>><<control 10>><</link>><<llove>><<ldom>><<gcontrol>>
-    <br>
+	You try to pull away from Whitney, <span class="red">but <<he>> grasps your wrists and pulls you against <<him>>.</span> "Did I say you could leave, slut?" <<he>> asks. <<He>> forces your mouth open with one hand and pushes the fingers of the other inside.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+	<br><br>
+	<<link [[Cooperate|Whitney Roof Grope Cooperate 2]]>><</link>>
+	<br>
+	<<link [[Bite|Whitney Roof Grope Bite]]>><<npcincr Whitney love -1>><<npcincr Whitney dom -1>><<control 10>><</link>><<llove>><<ldom>><<gcontrol>>
+	<br>
 
 <</if>>
 
@@ -755,11 +755,11 @@ You walk up to Whitney, attracting <<his>> attention at once. "What do you want,
 <<effects>>
 
 <<if $speech_attitude is "bratty">>
-    "Do you really think hurting this one is a good use of your time?" You ask.
+	"Do you really think hurting this one is a good use of your time?" You ask.
 <<elseif $speech_attitude is "meek">>
-    "Please don't hurt <<person2>><<him>>," you say.
+	"Please don't hurt <<person2>><<him>>," you say.
 <<else>>
-    "Put <<person2>><<him>> down before you hurt <<person2>><<him>>," you say.
+	"Put <<person2>><<him>> down before you hurt <<person2>><<him>>," you say.
 <</if>>
 <br><br>
 
@@ -777,11 +777,11 @@ The <<person>> produces <<his>> key from <<his>> shirt pocket. Whitney releases
 <<effects>>
 
 <<if $speech_attitude is "bratty">>
-    "Do it," you say, flashing the <<person2>><<person>> an evil smile. "I want to hear <<him>> hit the ground."
+	"Do it," you say, flashing the <<person2>><<person>> an evil smile. "I want to hear <<him>> hit the ground."
 <<elseif $speech_attitude is "meek">>
-    "Please do what <<person1>><<he>> says," you say, giving the <<person2>><<person>> a pleading look.
+	"Please do what <<person1>><<he>> says," you say, giving the <<person2>><<person>> a pleading look.
 <<else>>
-    "Whitney will do it," you say, giving the <<person2>><<person>> a level look. <<person1>>"<<Hes>> crazy."
+	"Whitney will do it," you say, giving the <<person2>><<person>> a level look. <<person1>>"<<Hes>> crazy."
 <</if>>
 <br><br>
 
@@ -795,8 +795,6 @@ Whitney throws the key at one of <<person1>><<his>> friends, puts the <<person2>
 <<link [[Next|School Roof]]>><<endevent>><</link>>
 <br>
 
-
-
 :: Whitney Roof Bully Watch
 <<effects>>
 
@@ -807,25 +805,25 @@ Whitney's friends pay you no attention as you join their circle around Whitney.
 "Two," <<person1>><<he>> gives the <<person2>><<person>> a violent shove. The victim's arms flail.
 <br>
 <<if $rng gte 51>>
-    <<npc "Doren" 3>>
-    "Three!" Whitney grasps the <<person2>><<person>> with <<person1>><<his>> other hand, and hurls the student off the roof. <<person2>><<He>> screams as <<he>> falls, but you don't hear <<him>> hit the floor. The scream is replaced with a sob.
-    <br><br>
-    Whitney's friends rush to the railing to observe, pushing you with them. You arrive to see Doren below, holding the <<person2>><<person>> in <<person3>><<his>> arms.
-    <br><br>
-    "You've crossed a line Whitney," Doren says as <<he>> rights the <<person2>><<person>> to <<his>> feet, <<person3>><<his>> voice uncharacteristically cold.
-    <br><br>
-    "Nah," Whitney replies, lighting a cigarette. "I knew you were there."
-    <br><br>
-    "Detention," says Doren. "You need help." Whitney is already turning away.
-    <br><br>
+	<<npc "Doren" 3>>
+	"Three!" Whitney grasps the <<person2>><<person>> with <<person1>><<his>> other hand, and hurls the student off the roof. <<person2>><<He>> screams as <<he>> falls, but you don't hear <<him>> hit the floor. The scream is replaced with a sob.
+	<br><br>
+	Whitney's friends rush to the railing to observe, pushing you with them. You arrive to see Doren below, holding the <<person2>><<person>> in <<person3>><<his>> arms.
+	<br><br>
+	"You've crossed a line Whitney," Doren says as <<he>> rights the <<person2>><<person>> to <<his>> feet, <<person3>><<his>> voice uncharacteristically cold.
+	<br><br>
+	"Nah," Whitney replies, lighting a cigarette. "I knew you were there."
+	<br><br>
+	"Detention," says Doren. "You need help." Whitney is already turning away.
+	<br><br>
 <<else>>
-    <<npc "Sirris" 3>>
-    "Th-"
-    <br>
-    "Whitney!" shouts a voice from below. It sounds like Sirris. "I know that's you! Let the <<person2>><<personsimple>> down!"
-    <br><br>
-    Whitney considers a moment, as if wondering how to interpret the teacher's words. Then <<person1>><<he>> pulls the <<person2>><<person>> away from the precipice, and lights a calm cigarette.
-    <br><br>
+	<<npc "Sirris" 3>>
+	"Th-"
+	<br>
+	"Whitney!" shouts a voice from below. It sounds like Sirris. "I know that's you! Let the <<person2>><<personsimple>> down!"
+	<br><br>
+	Whitney considers a moment, as if wondering how to interpret the teacher's words. Then <<person1>><<he>> pulls the <<person2>><<person>> away from the precipice, and lights a calm cigarette.
+	<br><br>
 <</if>>
 
 <<link [[Next|School Roof]]>><<endevent>><</link>>
@@ -839,3 +837,295 @@ You turn, and leave the <<person2>><<person>> to squirm in Whitney's grasp.
 
 <<link [[Next|School Roof]]>><<endevent>><</link>>
 <br>
+
+:: Whitney Roof Bully Mean Fight
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+	<<neutral 1>>
+	<<maninit>>
+	<<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+	You scramble to get away, but Whitney snatches you before you can get too far.
+	<br><br>
+	<<if $delinquency lt 400>><<enable_rescue>><</if>>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<<alarmstate "<span class='red'>No one comes to your aid, likely due to your reputation as a delinquent.</span>">>
+<<man>>
+<<audience>>
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if _combatend or ($pain gte 100 and $willpowerpain is 0)>>
+	<span id="next"><<link [[Next|Whitney Roof Bully Mean Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Whitney Roof Bully Mean Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Whitney Roof Bully Mean Fight Finish
+<<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation "short">>
+
+	Whitney stumbles against the railing, dazed and flushed.<<npcincr Whitney lust -20>><<llust>>
+	<br><br>
+	<<tearful>> you bolt for safety. <<His>> friends seem more interested in Whitney and don't pursue you.
+<<elseif $enemyhealth lte 0>>
+	You manage to throw Whitney off and bolt for safety. No one follows you.
+	<br><br>
+	<<tearful>> you come to a stop.
+<<elseif $alarm is 1 and $rescue is 1>>
+	"Oi! What's going on up there?" Doren shouts from the ground below.
+	<br><br>
+	One of Whitney's friends peeks over the railing. "Nothing!"
+	<br><br>
+	"Is that a cigarette in your mouth, <<nnpc_gendery "Whitney">>?" Doren sounds livid. "Stay right there, I'm coming up!"
+	<br><br>
+	"Idiot!" Whitney smacks <<his>> friend, then turns to you. "Don't let me catch you up here again, slut." <<He>> and <<his>> friends rush downstairs.<<set $daily.whitney.roofLeave to true>>
+	<br><br>
+	<<tearful>> you pick yourself up.
+	<br><br>
+
+	<<endcombat>>
+	<<clotheson>>
+
+	<<link [[Next|School Roof]]>><<set $eventskip to 1>><</link>>
+	<<exit>>
+<<else>>
+	Wracked with pain, you curl up uselessly on the ground.
+	<br><br>
+	Whitney shoves <<his>> foot into your gut for good measure. "Fucking crybaby. You have ten seconds to get the fuck out of my sight before I toss you over the railing."
+	<br><br>
+	<<tearful>> you stagger to your feet and make your leave. The delinquents jeer at you as you walk away.<<status -5>><<lcool>>
+<</if>>
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+
+<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
+<br>
+
+:: Whitney Roof Bully Ashtray
+<<effects>>
+
+You walk up to Whitney. <<He>> doesn't look pleased. "<<= either (`What the hell do you think you're doing up here, slut?`,`Who invited you, slut?`,`You fucking lost or something, slut?`)>>" You open your mouth to reply, but Whitney cuts you off. "Don't answer that. Since you're already here, I'll put you to good use."
+<br><br>
+<<He>> pushes on your shoulders, forcing you down to your knees. <<His>> friends eagerly take out their phones.
+<br><br>
+Whitney takes a long drag on <<his>> cigarette, then holds the lit end over you. "Hands out."
+<br><br>
+
+<<link [[Comply|Whitney Roof Bully Ashtray 2]]>><<trauma 6>><<status -5>><<npcincr Whitney dom 1>><</link>><<gtrauma>><<lcool>><<gdom>>
+<br>
+<<link [[Refuse|Whitney Roof Bully Mean Fight]]>><<set $fightstart to 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
+<br>
+
+:: Whitney Roof Bully Ashtray 2
+<<effects>><<outfitChecks>>
+
+<<if $speech_attitude is "meek">>
+	Fearful of Whitney's wrath, you
+<<elseif $speech_attitude is "bratty">>
+	You sneer at the request, but you know you're outnumbered. You reluctantly
+<<else>>
+	You hesitate, but you
+<</if>>
+cup your palms to catch the ashes when <<he>> taps them off.
+<br><br>
+Thankfully they don't hurt, but it is humiliating. "Pathetic," Whitney says over the laughter of <<his>> friends.
+<br><br>
+<<if C.npc.Whitney.lust gte 60>>
+	<<He>> crouches down and <<allTops>>, revealing your <<undertop>>. Whitney takes a drag and blows the smoke against your chest. "Nice view, though," <<he>> says as <<he>> rises. <<His>> friends take pictures of your <<upperstrip>><<lewdness>>.<<silently>><<clotheson>><</silently>>
+	<br><br>
+<</if>>
+
+<<He>> returns to smoking and socialising with <<his>> friends like you're not even there. You start to get up, but Whitney kicks you back into place. "Where do you think you're going, ashtray? I'm not done."
+<br><br>
+
+<<link [[Next|Whitney Roof Bully Ashtray End]]>><<set _timeLeft to 60 - Time.minute>><<pass _timeLeft>><</link>>
+<br>
+
+:: Whitney Roof Bully Ashtray End
+<<effects>>
+
+You spend the remainder of the lunch hour on your knees next to Whitney, catching cigarette ashes in your hands.
+<<if C.npc.Whitney.dom gte 10>>
+	Some of <<his>> gang look like they want to participate, though none of them have the courage to ask Whitney for permission.
+<<else>>
+	<br><br>
+	A couple of delinquents ask Whitney for permission to use your services, too. "It'll cost you," <<he>> says with a smirk, adding more ash to the pile in your hands. They don't pursue it.
+<</if>>
+<br><br>
+The bell rings. Your arms ache from keeping them elevated for so long. Whitney takes one last pull on <<his>> fag before stubbing it out on your arm.<<tiredness 5>><<pain 4>><<gtiredness>><<gpain>>
+<br><br>
+"If I catch you up here again, expect another handful of ash. Later, loser." <<He>> kicks you onto your back and heads into the school. <<His>> friends follow suit.<<npcincr Whitney lust 5>><<glust>>
+<br><br>
+<<tearful>> you climb to your feet and dust the ashes off your hands.
+<br><br>
+
+<<link [[Next|School Roof]]>><<endevent>><<set $eventskip to 1>><</link>>
+<br>
+
+:: Whitney Roof Bully Sell Panty
+<<effects>><<outfitChecks>>
+
+You walk up to the delinquents. Whitney's smile drops.
+<br><br>
+<<if $speech_attitude is "meek">>
+	"Wh-what's so funny?" you ask sheepishly.
+<<elseif $speech_attitude is "bratty">>
+	"Don't tell me you're up here having a good time without me." You smirk.
+<<else>>
+	"What's so funny, then?" you ask.
+<</if>>
+<br><br>
+Whitney grabs you and yanks you close. "You lost, slut? The gloryholes are that way." This earns <<him>> some more snickers. "Actually, I'm glad you're here. You can help me out with something."
+<br><br>
+
+<<if !_underwear>>
+	<<link [[Next|Whitney Roof Bully Sell Panty End]]>><<set $phase to 0>><</link>>
+	<br>
+<<else>>
+	Whitney spins you around to face <<his>> friends and <<= _bottomIsSkirt ? "flips up your skirt" : "yanks down your pants">>, revealing your <<undies>>. "Highest bidder gets the slut's <<undies>>." <<lowerstrip>>
+	<br><br>
+
+	<<link [[Endure|Whitney Roof Bully Sell Panty 2]]>><<set $phase to 0>><<stress 6>><<trauma 6>><<npcincr Whitney dom 1>><</link>><<gstress>><<gtrauma>><<gdom>>
+	<br>
+	<<if hasSexStat("exhibitionism", 3)>>
+		<<link [[Upsell|Whitney Roof Bully Sell Panty 2]]>><<set $phase to 1>><<npcincr Whitney dom 1>><<npcincr Whitney love 1>><</link>><<exhibitionist3>><<gdom>><<glove>>
+		<br>
+	<</if>>
+	<<link [[Run|Whitney Roof Bully Mean Fight]]>><<set $fightstart to 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
+	<br>
+<</if>>
+
+:: Whitney Roof Bully Sell Panty 2
+<<effects>>
+
+A <<generates2>><<person2>><<person>> chimes in first. "£1!"
+<br><br>
+Another shouts, "£5!" A few more rifle through their wallets.
+<br><br>
+<<if $phase is 1>>
+	<<generates3>><<generates4>>
+	<<flaunting>> you tease at your <<undies>>, revealing just a little more skin.<<exhibitionism3>>
+
+	<<if $speech_attitude is "meek">>
+		"Come on, <<group>>," you coo. "A-aren't they cute? I promise they're worth every penny..."
+	<<elseif $speech_attitude is "bratty">>
+		"I didn't realise Whitney's friends would be so damned cheap," you scoff. "Come on, <<group>>. This cute little number could be all yours for the right price."
+	<<else>>
+		"Come on, <<group>>," you coo. "Don't you like what you see? They're worth every penny."
+	<</if>>
+	<br><br>
+	Whitney's friends grow frantic. A <<person3>><<person>> holds up a crumpled wad of banknotes with a shaky hand. "£26!" <<he>> stutters.
+	<br><br>
+	A taller <<person4>><<personsimple>> snatches the cash out of the <<person3>><<persons>> hand and shouts, "£56!"
+	<br><br>
+	"Sold!" Whitney eagerly counts the money as you step out of your underwear and hand it to the bidder. The tall <<person4>><<personsimple>> seems pleased by <<his>> investment.
+<<else>>
+	<<if $speech_attitude is "meek">>
+		You fidget nervously as Whitney's friends continue bidding on your <<undies>>. You try not to look at them.
+	<<elseif $speech_attitude is "bratty">>
+		You glare at Whitney's friends as they continue bidding on your <<undies>>, hoping to discourage them. They don't seem to notice.
+	<<else>>
+		You watch as Whitney's friends continue bidding on your <<undies>>.
+	<</if>>
+	<br><br>
+	The highest bid only goes to £15. "Cheapskates," Whitney mumbles as <<person1>><<he>> counts the cash. <<He>> tears off your <<undies>> and hands them to the winner.
+<</if>>
+<<if $whitneypantiescheck gte 2 and $worn.under_lower.gender is "f">>
+	<<set $whitneySellPantiesCheck to true>>
+<</if>>
+<<underlowerruined>>
+<br><br>
+
+<<link [[Next|Whitney Roof Bully Sell Panty End]]>><<set $phase to 1>><</link>>
+<br>
+
+:: Whitney Roof Bully Sell Panty End
+<<effects>><<outfitChecks>>
+<<person1>>
+
+<<if $phase is 0>> /* No underwear */
+	Whitney spins you around to face <<his>> friends and <<= _bottomIsSkirt ? "flips up your skirt" : "yanks down your pants">>. "Highest bidder gets the slut's panti..." Whitney trails off mid-sentence as <<his>> friends start to whistle and jeer at your <<genitals>>.
+<<else>> /* After selling the underwear */
+	The rest of <<his>> gang start to whistle and jeer at your newly exposed <<genitals>>.
+<</if>>
+<br><br>
+<<set _genderUnknown to $player.gender isnot $player.gender_appearance and !$genderknown.includes("Whitney")>>
+<<if _genderUnknown>>
+	<<set $genderknown.pushUnique("Whitney")>><<set _whitneyGenderUnknown is true>>
+	<<if $player.penisExist and $player.vaginaExist>>
+		"You have both?" Whitney says incredulously. "How is that even possible?<<if $schoolrep.herm gte 3>> I mean, I've heard rumours, but...<</if>>" <<He>> looks surprised, but not disappointed.
+	<<else>>
+		"No shit?" Whitney says incredulously. "That's what you got under there?" <<He>> looks surprised, but not disappointed.
+	<</if>>
+	<br><br>
+	<<if playerChastity()>>
+		<<if $worn.genitals.origin is "Whitney">>
+			<<He>> grasps your <<= $worn.genitals.name>> and smirks. "At least I know you're following orders." <<He>> laughs it off.
+		<<else>>
+			<<He>> grasps your <<= $worn.genitals.name>> and gives it a fruitless tug. "And you got it fucking locked up?" After a frustrated huff, <<he>> laughs it off.
+		<</if>>
+	<<else>>
+		<<He>> laughs it off.
+	<</if>>
+<<elseif playerChastity()>>
+	<<if $worn.genitals.origin is "Whitney">>
+		Whitney grasps your <<= $worn.genitals.name>> and smirks. "At least I know you're following orders." <<He>> laughs it off.
+	<<else>>
+		Whitney sneers when <<he>> sees your <<= $worn.genitals.name>>. "What the fuck is that?" <<He>> gives it a fruitless tug. <<if $player.penisExist and $worn.genitals.name is "chastity parasite">><<arousal 600 "genitals">><<garousal>><</if>>
+		<br><br>
+		"What does a slut like you have it locked up for?" After a frustrated huff, <<he>> laughs it off.
+	<</if>>
+<<elseif $phase is 1>> /* After selling the underwear */
+	Whitney's eyes linger on your exposed <<genitals>>. "You look much better like this, anyway."
+	<<if C.npc.Whitney.lust gte 60>>
+		<<His>> hand slips down to grope you. "Easier access."<<arousal 600 "genitals">><<garousal>>
+	<</if>>
+<</if>>
+
+<<if $phase is 0>> /* No underwear */
+	<<= playerChastity() or _whitneyGenderUnknown ? '"Well, then.' : 'Whitney laughs. "Oops.'>> Sorry, <<= C.npc.Whitney.pronoun is "m" ? "lads" : "girls">>. Looks like <<pshes>> fresh out of inventory."
+	<br><br>
+	<<if $whitneypantiescheck gte 1>>
+		<<if $speech_attitude is "meek">>
+			"B-but," you stutter, "you told me not to wear any..."
+		<<elseif $speech_attitude is "bratty">>
+			"What the hell did you expect?" you baulk. "You told me not to wear any!"
+		<<else>>
+			"Well, yeah," you say. "You told me I wasn't allowed to wear them."
+		<</if>>
+		<br><br>
+		Whitney rolls <<his>> eyes. "Yeah, yeah, good on you for following the rules." <<He>> shoves you to the ground. "Doesn't make you any less of a spineless slut, though. Now piss off downstairs. I'm done with you for now."
+	<<else>>
+		Whitney shoves you to the ground. "You really are a worthless slut. Now piss off downstairs. I'm done with you for now."
+	<</if>>
+	<br><br>
+	<<tearful>> you pick yourself up and fix your clothes. The delinquents snicker at you as you walk away.
+	<br><br>
+<<else>> /* After selling the underwear */
+	<br><br>
+	<<He>> takes out a cigarette from <<his>> shirt pocket and smacks your rear.
+	<<if $whitneypantiescheck is 1 or $whitneySellPantiesCheck isnot true>>
+		"You're lucky I don't punish you for wearing those in the first place. Follow the fucking rules. Now fuck off downstairs before I change my mind."
+	<<else>>
+		"I'm done with you for now. Fuck off downstairs."
+		<<unset $whitneySellPantiesCheck>>
+	<</if>>
+	<<npcincr Whitney lust 5>><<glust>>
+	<br><br>
+	<<tearful>> you make your leave. The delinquents snicker at you as you walk away.
+	<br><br>
+	<<clotheson>>
+<</if>>
+
+<<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
+<br>
diff --git a/game/overworld-town/loc-school/widgets-events.twee b/game/overworld-town/loc-school/widgets-events.twee
index fa74af9524668312da61aefbf0f0abbe2e627201..c29f701b7c117887082aba72e4d6308b12ced3e6 100644
--- a/game/overworld-town/loc-school/widgets-events.twee
+++ b/game/overworld-town/loc-school/widgets-events.twee
@@ -260,12 +260,12 @@
 		<<if $bullytimer gte $rng and !["dungeon", "pillory"].includes(C.npc.Whitney.state)>>
 			/* If Whitney hasn't been introduced, eliminate all other events as options. Note: The intro will become mandatory by day 5 (when $bullytimer hits 100)*/
 			<<if $bullyevent is 0>> <<cleareventpool>> <</if>>
-			
+
 			<<addinlineevent "whitney_hallways" 10>>
 				<<set $bullytimer to 0>>
 				<<schoolbully>>
 			<</addinlineevent>>
-			
+
 			/* Run the eventpool with only Whitney's intro loaded, effectively giving it 100% weight */
 			<<if $bullyevent is 0>> <<runeventpool>> <<exit>> <</if>>
 		<</if>>
@@ -294,7 +294,7 @@
 			/* If it's been four weeks, Kylar's primary intro becomes mandatory by eliminatiing all other events as options */
 			<<if Time.days gte 28>> <<cleareventpool>> <</if>>
 
-			<<addinlineevent "kylar_intro" 10>> 
+			<<addinlineevent "kylar_intro" 10>>
 				<<npc Kylar>><<initnpc Kylar>><<generatey2>><<generatey3>>Someone's bag lands in front of you. It spills its contents, scattering pens and books across the floor. You turn the corner and see its owner, a <<nnpc_gendery "Kylar">> held aloft by <<person1>><<his>> collar and pushed against a locker. <<He>> kicks the <<person2>><<person>> holding <<person1>><<him>>, but the <<person2>><<person>> just laughs. "That your best?" <<he>> says. <<He>> grasps the bullied <<nnpc_gendery "Kylar">>'s unkempt dark hair with <<his>> free hand. "Lucky you. Hurting me would be stupid."
 				<br><br>
 				Other students ignore what is happening, or watch in amusement.
@@ -316,7 +316,7 @@
 			/* If it's been five weeks, Kylar's secondary intro becomes mandatory by eliminating all other events as options */
 			<<if Time.days gte 35>> <<cleareventpool>> <</if>>
 
-			<<addinlineevent "kylar_intro_ignored" 10>> 
+			<<addinlineevent "kylar_intro_ignored" 10>>
 				<<npcset Kylar state "active">>
 				<<npc Kylar>><<person1>>You round a corner and bump into a <<nnpc_gendery "Kylar">>. <<He>> scowls and looks up at you, but then <<his>> face softens and <<his>> mouth gapes.
 				<br><br>
@@ -602,7 +602,7 @@
 				<br><br>
 				The three glance at you, and hurry away when they notice you looking.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
 				<br><br>
-				
+
 				<<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
 				<br>
 			<</addinlineevent>>
@@ -951,7 +951,7 @@
 				<br>
 			<</if>>
 		<</addinlineevent>>
-		
+
 		<<if !$worn.lower.type.includes("naked")>>
 			<<addinlineevent "hallways_locker">>
 				<<lockerevent>>
@@ -964,7 +964,7 @@
 			<br><br>
 			<span class="yellow">Someone is locked in there.</span>
 			<br><br>
-			
+
 			<<link [[Pick the lock and help them out (0:10)|Hallways Locker Victim]]>><<pass 10>><<set $phase to 0>><</link>>
 			<br>
 			<<link [[Find a teacher to help them (0:03)|Hallways Locker Victim]]>><<pass 3>><<set $phase to 1>><</link>>
@@ -977,7 +977,7 @@
 		<</addinlineevent>>
 
 		<<addinlineevent "hallways_stalker">>
-			<<generatey1>><<person1>><<generateyv2>> A <<person>> is stalking a <<person2>><<person>> through the hallway. The <<person1>><<persons>> expression is intense, <<his>> intentions do not look friendly, 
+			<<generatey1>><<person1>><<generateyv2>> A <<person>> is stalking a <<person2>><<person>> through the hallway. The <<person1>><<persons>> expression is intense, <<his>> intentions do not look friendly,
 			<<person2>><<print either("but the <<person>> hasn't noticed. Yet.","and the <<person>> looks terrified.","and the <<person>> looks intimidated.","but the <<person>> seems completely unaware.")>>
 			<br><br>
 			<span class = "red">There are no teachers in sight.</span>
@@ -1203,7 +1203,7 @@
 					You try to walk away, but the <<person2>><<person>> turns and notices you. "It's <<phim>>!" <<he>> exclaims. The rest turn as well, an excited glimmer in their eyes.
 					<<schoolrep_naked>>
 					<br><br>
-					
+
 					<<link [[Walk away|Courtyard Flyover Walk]]>><<status -10>><</link>><<lcool>>
 					<br>
 					<<if hasSexStat("exhibitionism", 5)>>
@@ -1212,7 +1212,7 @@
 					<</if>>
 				<</addinlineevent>>
 			<</if>>
-			
+
 			<<if $flyover_caught is "mask">>
 				<<addinlineevent "flyover_mask">>
 					<<unset $flyover_caught>>
@@ -1442,7 +1442,7 @@
 						<br>
 					<</addinlineevent>>
 				<</if>>
-				
+
 				<<if $photo and $photo.nude_footage is 1>>
 					<<addinlineevent "courtyard_crush_photo_nude">>
 						<<set $photo.nude_footage to 0>>
@@ -1475,7 +1475,7 @@
 
 				<<addinlineevent "courtyard_crush_share">>
 					<<cleareventpool>>
-					
+
 					<<generatey1>><<generatey2>> You overhear a <<fullGroup>> sharing their crushes.
 					<<rng>>
 					<<if C.npc.Robin.init is 1>>
@@ -1517,7 +1517,7 @@
 								<<npc Whitney>><<person1>>
 								You suspect Whitney knows <<he>> has admirers.
 								<br><br>
-								
+
 								<<endevent>>
 								<<courtyard>>
 							<</if>>
@@ -1539,7 +1539,7 @@
 								<<endevent>>
 								You wonder if Sydney knows <<nnpc_he "Sydney">> has admirers, or if <<nnpc_he "Sydney">> would even understand.
 								<br><br>
-								
+
 								<<endevent>>
 								<<courtyard>>
 							<</if>>
@@ -2240,7 +2240,22 @@
 		<<link [[Comfort (0:05)|Bully Pantsing Robin]]>><<npcincr "Robin" trauma -2>><<pass 5>><</link>><<llrtrauma>>
 		<br>
 		<<link [[Ignore|Hallways]]>><<endevent>><<set $eventskip to 1>><<stress 6>><</link>><<gstress>>
+	<<elseif $bullyevent is 19 and C.npc.Whitney.dom gte 18 and ($watersportsdisable is "f" or $pillory.tenant.special.name isnot "Leighton")>>
+		<<set $bullyevent += 1>>
 
+		You're walking down the hallway when something <<= $worn.neck.type.includes("leash") ? "jerks your leash back" : $worn.neck.name isnot "naked" ? "hooks a finger into your $worn.neck.name" : "grabs your arm">>, stopping you in your tracks.
+		<br><br>
+		"And where do you think you're going, slut?" It's Whitney, with several of <<his>> goons trailing behind <<him>>. "Come on, step into my office." <<He>> herds you toward the <<nnpc_gendery "Whitney">>s' toilets.
+		<br><br>
+
+		<<if $watersportsdisable is "t">>
+			<<link [[Next|Bully Piss Rescue]]>><</link>>
+		<<else>>
+			<<link [[Go with it (0:15)|Bully Piss]]>><<set $phase to 0>><<pass 15>><<npcincr Whitney dom 1>><</link>><<gdom>>
+			<br>
+			<<link [[Fight|Bully Fight]]>><<set $phase to 0>><<set $fightstart to 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
+			<br>
+		<</if>>
 	<<else>>
 		<<set $bullyevent to 4>>
 		Someone grabs your hair from behind, tugging your head back. It's Whitney. <<He>> grins as <<his>> friends laugh.
@@ -2319,6 +2334,7 @@
 		<<if !$parasite.bottom.name>>
 			With your <<bottom>> exposed, you can do nothing to stop a smirking Whitney as <<he>> brings the <<print _parasite_type>> directly in front of your vulnerable hole, where it immediately wriggles its way onto you. The squelching sounds it makes are as lewd as they are disgusting.
 			<<parasite bottom _parasite_type>>
+			<<set $parasite.bottom.origin to "Whitney">>
 			<<arousal 5 "bottom">><<garousal>>
 			<<set _parasitestate to "placed">>
 			<br><br>
@@ -2327,6 +2343,7 @@
 		<<if !$parasite.nipples.name>>
 			With your <<breasts>> exposed, you can do nothing to stop a smirking Whitney as <<he>> brings the <<print _parasite_type>> directly in front of your quivering chest, where it immediately latches onto you. The squelching sounds it makes are as lewd as they are disgusting.
 			<<parasite nipples _parasite_type>>
+			<<set $parasite.nipples.origin to "Whitney">>
 			<<arousal 5 "breasts">><<garousal>>
 			<<set _parasitestate to "placed">>
 			<br><br>
@@ -2348,8 +2365,10 @@
 				where it immediately latches onto you. The squelching sounds it makes are as lewd as they are disgusting.
 				<<if $player.penisExist>>
 					<<parasite penis _parasite_type>>
+					<<set $parasite.penis.origin to "Whitney">>
 				<<else>>
 					<<parasite clit _parasite_type>>
+					<<set $parasite.clit.origin to "Whitney">>
 				<</if>>
 				<<arousal 5 "genitals">><<garousal>>
 				<<set _parasitestate to "placed">>
@@ -2830,12 +2849,11 @@
 		<<if $forcedcrossdressingdisable is "f" and $whitneyCrossdressSchool gte 1 and _maleClothes.length>>
 			Whitney and <<his>> friends surround you. <<He>> frowns when <<he>> notices your <<print $worn[_maleClothes[0]].name>>.
 			"<<if !_skirt>>Ignoring the lack of a skirt, thought<<else>>Thought<</if>> I asked you to not wear any boy's clothes. Bad <<girl>>," Whitney chides.
-			
+
 			<<WhitneyRulePunishment>>
 		<<elseif $forcedcrossdressingdisable is "f" and $whitneyskirtcheck gte 1 and (!_skirt or $worn.lower.reveal lte 200)>>
 			Whitney and <<his>> friends surround you. <<He>> frowns when <<he>> notices your $worn.lower.name.
 			"Thought I asked you to wear a <<print (_skirt ? "shorter " : "")>> skirt. Bad <<girl>>," Whitney chides.
-			
 
 			<<WhitneyRulePunishment>>
 		<<else>>
@@ -2912,27 +2930,114 @@
 	<<set $whitney_roof to 1>>
 	<<npc "Whitney">><<person1>>
 	<<cleareventpool>>
-	<<addinlineevent "whitney_roof_1">>
-		"If it isn't my slut," Whitney says, beckoning you closer. "Good timing. My friends and I are bored. Give us a show."
-		<br><br>
-		<<link [[Ask what sort of show|Whitney Roof Show Ask]]>><</link>>
-		<br>
-		<<link [[Strike a cute pose|Whitney Roof Show Pose]]>><</link>>
-		<br>
-		<<link [[Strut like you're on a catwalk|Whitney Roof Show Strut]]>><</link>><<exhibitionist1>>
-		<br>
-		<<if hasSexStat("exhibitionism", 2)>>
-			<<link [[Strike an erotic pose|Whitney Roof Show Erotic]]>><</link>><<exhibitionist2>>
+	<<if C.npc.Whitney.love gte 10 or $whitneyromance is 1>>
+		<<addinlineevent "whitney_roof_1">>
+			"If it isn't my slut," Whitney says, beckoning you closer. "Good timing. My friends and I are bored. Give us a show."
+			<br><br>
+			<<link [[Ask what sort of show|Whitney Roof Show Ask]]>><</link>>
+			<br>
+			<<link [[Strike a cute pose|Whitney Roof Show Pose]]>><</link>>
+			<br>
+			<<link [[Strut like you're on a catwalk|Whitney Roof Show Strut]]>><</link>><<exhibitionist1>>
+			<br>
+			<<if hasSexStat("exhibitionism", 2)>>
+				<<link [[Strike an erotic pose|Whitney Roof Show Erotic]]>><</link>><<exhibitionist2>>
+			<</if>>
+		<</addinlineevent>>
+		<<addinlineevent "whitney_roof_2">>
+			Whitney spots you, strides closer, and seizes you by the wrist. "Just the slut I need," <<he>> says, pulling you to the railing. "I've some frustrations to take out."
+			<br><br>
+			<<link [[Go along with it|Whitney Roof Railing]]>><</link>>
+			<br>
+			<<link [[Fight|Whitney Roof Fight]]>><<set $fightstart to 1>><</link>>
+			<br>
+		<</addinlineevent>>
+		<<addinlineevent "whitney_roof_4">>
+			<<generateyv2>><<person2>>
+			You find Whitney bullying a <<person>>. <<person1>><<He>> holds <<person2>><<him>> by the collar, pushed against the railing.
+			<br><br>
+
+			"It's up to you," Whitney says. "You give me the key to your locker. Or I throw you over."
+			<br><br>
+
+			<<link [[Intervene|Whitney Roof Bully Intervene]]>><</link>>
+			<br>
+			<<link [[Watch|Whitney Roof Bully Watch]]>><</link>>
+			<br>
+			<<link [[Leave|Whitney Roof Bully Leave]]>><</link>>
+			<br>
+		<</addinlineevent>>
+	<<else>>
+		<<addinlineevent "whitney_roof_ashtray">>
+			Whitney lights a fresh cigarette. <<He>> scowls when <<he>> notices you, flipping you off as <<he>> turns away.
+			<br><br>
+
+			<<if playerIsPregnant() and playerAwareTheyArePregnant()>>
+				<span class="blue">It's probably best not to approach a group of smoking delinquents while you are with child.</span>
+			<<else>>
+				<<link [[Approach|Whitney Roof Bully Ashtray]]>><</link>>
+			<</if>>
+			<br>
+			<<link [[Leave|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
+			<br>
+		<</addinlineevent>>
+		<<addinlineevent "whitney_roof_sell_panty">>
+			Whitney's friends burst into laughter at something <<he>> says. <<He>> basks in the attention.
+			<br><br>
+
+			<<link [[Approach|Whitney Roof Bully Sell Panty]]>><</link>>
+			<br>
+			<<link [[Leave|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
+			<br>
+		<</addinlineevent>>
+		<<if $worn.handheld.type.includes("bookbag")>>
+			<<addinlineevent "whitney_roof_snatch">>
+				A <<generates2>><<person2>>delinquent sneaks up behind you and snatches your $worn.handheld.name. <<He>> runs the bag over to Whitney.
+				<br><br>
+				<<if $speech_attitude is "meek">>
+					"H-hey, w-wait a second!" you stutter after <<him>>. "Th-that's mine!"
+				<<else>>
+					"Hey! That's mine!" you shout after <<him>>.
+				<</if>>
+				<br><br>
+				"Yours?" Whitney says, taking the bag. "Looks like it's mine now. Got anything good in here?" You're forced to watch as Whitney upends your bag, dropping miscellaneous items to the ground.<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
+				<br><br>
+				<<person1>><<He>> seems disinterested by what <<he>> finds. "Guess not." <<He>> shrugs, then throws the bag off the roof as hard as <<he>> can.
+				<br><br>
+				<<if $rng gte 96>>
+					You're about to scurry down to reclaim it, but you notice that Whitney's aim is off. Or rather, spot-on. Your bag hooks on a flagpole, <span class="red">dangling well out of reach.</span><<handheldruined>>
+					<br><br>
+					Whitney's friends laugh and congratulate <<him>> for <<his>> unexpected feat. <<tearful>> you sneak down the stairwell while they're distracted.
+					<br><br>
+
+					<<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
+					<br>
+				<<else>>
+					<<tearful>> you scurry down to the rear courtyard to reclaim it. Luckily there's no damage done.<<pass 3>>
+					<br><br>
+
+					<<link [[Next|School Rear Courtyard]]>><<endevent>><<set $eventskip to 1>><</link>>
+					<br>
+				<</if>>
+			<</addinlineevent>>
 		<</if>>
-	<</addinlineevent>>
-	<<addinlineevent "whitney_roof_2">>
-		Whitney spots you, strides closer, and seizes you by the wrist. "Just the slut I need," <<he>> says, pulling you to the railing. "I've some frustrations to take out."
-		<br><br>
-		<<link [[Go along with it|Whitney Roof Railing]]>><</link>>
-		<br>
-		<<link [[Fight|Whitney Roof Fight]]>><<set $fightstart to 1>><</link>>
-		<br>
-	<</addinlineevent>>
+		<<addinlineevent "whitney_roof_mean">>
+			<<generates2>>
+			<<if $rng gte 56>>
+				One of Whitney's mates notices you. The <<person2>><<person>> elbows Whitney and points at you.
+				<br><br>
+				Whitney retches dramatically when <<person1>><<he>> sees you, garnering laughter from <<his>> audience. <<He>> goes back to ignoring you.<<trauma 6>><<status -5>><<gtrauma>><<lcool>>
+			<<elseif $rng gte 11>>
+				Whitney leans over the railing a little further, holding out a can of pop. <<His>> friends grasp <<his>> clothes to keep <<him>> anchored. <<He>> pauses to aim, then quickly dumps its contents onto an unsuspecting victim below. <<= either ("A shrill squeal","An indignant gasp","A bout of enraged swearing")>> quickly follows, sending the delinquents into a fit of laughter.
+			<<else>>
+				One of Whitney's friends shoves a <<person2>><<person>>, who then shoves back. They continue the back and forth until they're on each other, hurling punches and insults. A crowd quickly gathers. Whitney lights a cigarette and, clearly amused, watches them roll around on the ground. It's probably best to keep your distance from the brawl.
+			<</if>>
+			<br><br>
+
+			<<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
+			<br>
+		<</addinlineevent>>
+	<</if>>
 	<<addinlineevent "whitney_roof_3">>
 		You see Whitney's mouth move, but the wind snatches the words before they reach you. <<His>> friends hear <<him>> though, and turn your way. They walk closer, grinning.
 		<br><br>
@@ -2942,21 +3047,6 @@
 		<<link [[Approach|Whitney Roof Grope Approach]]>><</link>>
 		<br>
 	<</addinlineevent>>
-	<<addinlineevent "whitney_roof_4">>
-		<<generateyv2>><<person2>>
-		You find Whitney bullying a <<person>>. <<person1>><<He>> holds <<person2>><<him>> by the collar, pushed against the railing.
-		<br><br>
-
-		"It's up to you," Whitney says. "You give me the key to your locker. Or I throw you over."
-		<br><br>
-
-		<<link [[Intervene|Whitney Roof Bully Intervene]]>><</link>>
-		<br>
-		<<link [[Watch|Whitney Roof Bully Watch]]>><</link>>
-		<br>
-		<<link [[Leave|Whitney Roof Bully Leave]]>><</link>>
-		<br>
-	<</addinlineevent>>
 	<<runeventpool>>
 <</widget>>
 
diff --git a/game/overworld-town/special-whitney/main.twee b/game/overworld-town/special-whitney/main.twee
index 094ee6d981971b7351b351cddb4731f848c0c661..4e4f2ffca6124d8e9c7b3c884bcb7362d106e7e7 100644
--- a/game/overworld-town/special-whitney/main.twee
+++ b/game/overworld-town/special-whitney/main.twee
@@ -49,6 +49,13 @@ Half an hour passes before a <<generatey1>><<person1>><<person>> unwittingly fre
 	<<if $bullyevent is 18>>
 		<span id="next"><<link [[Next|Bully Analingus Punishment Fight End]]>><</link>></span><<nexttext>>
 
+	<<elseif $bullyevent is 20>>
+		<<if $phase is 0>> /* Refuse to go to toilet */
+			<span id="next"><<link [[Next|Bully Piss Fight Finish]]>><</link>></span><<nexttext>>
+		<<else>> /* Refuse to piss */
+			<span id="next"><<link [[Next|Bully Piss Refuse Fight Finish]]>><</link>></span><<nexttext>>
+		<</if>>
+
 	<<else>>
 		<span id="next"><<link [[Next|Bully Fight Finish]]>><</link>></span><<nexttext>>
 	<</if>>
@@ -1436,7 +1443,7 @@ You stand on the other side. You're in an open space behind a large building. Th
             It doesn't take <<him>> long to finish. <<He>> grunts as <<he>> shoots <<his>> load right in your face, ejaculate splattering onto your forehead and dripping down your eyes and nose. <<He>> steps back, then bursts into laughter. "I like the new look. It suits you."<<trauma 6>><<stress 6>><<gtrauma>><<gstress>>
 			<<bodyliquid "face" "semen">>
         <<else>>
-            <<He>><<if $worn.face.type.includes("mask")>> yanks down your $worn.face.name and<</if>> grabs the back of your head, pulling it against <<his>> crotch. 
+            <<He>><<if $worn.face.type.includes("mask")>> yanks down your $worn.face.name and<</if>> grabs the back of your head, pulling it against <<his>> crotch.
             <<if npcHasStrapon(0)>>
                 <<He>> wraps a hand around the shaft of <<his>> strap, shifting it up to give you better access to <<his>> cunt. Fisting <<his>> free hand in your hair, <<he>> begins riding your tongue. <<He>> strokes <<his>> strap-on cock with each roll of <<his>> hips.
             <<else>>
@@ -1556,7 +1563,7 @@ You stand on the other side. You're in an open space behind a large building. Th
 
     <<if $speech_attitude is "meek">>
 	   "Th-thank you," you manage, getting to your feet.
-        <br><br>
+       <br><br>
 
     <<elseif $speech_attitude is "bratty">>
 	    "Took you long enough," you manage, getting to your feet.
@@ -3101,11 +3108,11 @@ You hand Whitney the money. "Nice doing business," <<he>> says. <<He>> barges pa
 	<</if>>
 <<elseif $phase is 1>>
 	<<if $speech_attitude is "meek">>
-		“P-P-please help me,” you whimper to the nearby students.
+		"P-P-please help me," you whimper to the nearby students.
 	<<elseif $speech_attitude is "bratty">>
-		“Hey you! Help me down, or you’ll regret it later,” you demand.
+		"Hey you! Help me down, or you'll regret it later," you demand.
 	<<else>>
-		“Please help me!” you shout at the crowd.
+		"Please help me!" you shout at the crowd.
 	<</if>>
 	<br><br>
 	<<endevent>>
@@ -3122,7 +3129,7 @@ You hand Whitney the money. "Nice doing business," <<he>> says. <<He>> barges pa
 		<<if $worn.under_lower.integrity lte 0>>
 			The <<person>> gives your ankles one final tug, tearing your $worn.under_lower.name clean from your body! You fall back to the ground, grasping your reddened and sore <<bottom>>. The crowd gasps, before breaking out into laughter and applause. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<underlowerruined>><<schoolrep_naked>>
 			<br><br>
-			“See, I helped you down,” <<he>> says with a malicious grin. You do your best to cover your exposed lower half as you try to find somewhere more private to free your hands.
+			"See, I helped you down," <<he>> says with a malicious grin. You do your best to cover your exposed lower half as you try to find somewhere more private to free your hands.
 			<br><br>
 			<<link [[Next|School Rear Courtyard]]>><<clotheson>><<unbindtemp>><<endevent>><</link>>
 		<<else>>
@@ -4110,6 +4117,474 @@ You laugh. You don't feel threatened despite the force against your back. The <<
 	<<link [[Next|"School Girl's Toilets"]]>><<set $eventskip to 1>><</link>>
 <</if>>
 
+:: Bully Piss
+<<effects>><<outfitChecks>>
+<<set $daily.whitney.bullyPissObey to 0>>
+
+Whitney shoves you into one of the stalls, your <<bottom>> landing on the toilet. "You're gonna earn your keep today, slut," <<he>> says.
+<br><br>
+<<if $speech_attitude is "meek">>
+	"Wh-what do you mean?"
+<<elseif $speech_attitude is "bratty">>
+	"What the fuck is that supposed to mean?"
+<<else>>
+	"What do you mean?"
+<</if>>
+you <<= $phase2 is "lose" ? "sniffle" : "ask">>.
+<br><br>
+Whitney barks out a laugh. <<His>> friends exchange knowing looks. "Some pervert's offered me a lot of money just to see you piss," <<he>> explains. "I'd be stupid to turn down that kind of dosh, so we're gonna make a little home video.<<if C.npc.Whitney.love gte 20 and $phase2 isnot "lose">> I may even let you in on a cut if you put on a good show for us.<<set $daily.whitney.bullyPissCut to true>><</if>>"
+<br><br>
+Whitney points at the toilet. "Now squat down and <<= _bottomIsSkirt ? "lift up your skirt" : "drop 'em">>."
+<br><br>
+
+<<link [[Comply|Bully Piss 2]]>><<set $phase to 0>><<set $daily.whitney.bullyPissObey += 1>><<stress 6>><<trauma 6>><<status -5>><<npcincr Whitney dom 1>><</link>><<gstress>><<gtrauma>><<lcool>><<gdom>>
+<br>
+<<if hasSexStat("exhibitionism", 4)>>
+	<<link [[Flaunt|Bully Piss 2]]>><<set $phase to 1>><<set $daily.whitney.bullyPissObey += 2>><<npcincr Whitney love 1>><<status -5>><<npcincr Whitney dom 1>><</link>><<exhibitionist4>><<glove>><<lcool>><<gdom>>
+	<br>
+<</if>>
+<<link [[Refuse|Bully Piss Refuse]]>><<set $phase to 0>><<npcincr Whitney dom -1>><</link>><<ldom>>
+<br>
+
+:: Bully Piss 2
+<<effects>><<outfitChecks>>
+
+<<if $phase is 0>> /* Comply */
+	<<tearful>> you <<= $speech_attitude is "meek" ? "shyly" : "begrudgingly">>
+	<<if !_bottomIsSkirt or (_bottomIsSkirt and $worn.under_lower.name isnot "naked")>>
+		pull your <<= _bottomIsSkirt ? "$worn.under_lower.name" : "<<allBottomsUnderwear>>">> down to your ankles<<= _bottomIsSkirt ? " and" : ",">>
+	<</if>>
+	<<if _bottomIsSkirt>>
+		lift your $worn.lower.name up,
+	<</if>>
+	<span class="lewd">exposing your <<genitals>>.</span>
+<<else>> /* Flaunt */
+	<<= $phase2 is "lose" ? "<<tearful>> you enticingly sway your hips, still keen on giving them a good show. You" : "<<flaunting>> you">> tease your
+	<<if !_bottomIsSkirt or (_bottomIsSkirt and $worn.under_lower.name isnot "naked")>>
+		<<= _bottomIsSkirt ? "$worn.under_lower.name" : "<<allBottomsUnderwear>>">> down to your ankles<<if _bottomIsSkirt>>, lift your<</if>>
+	<</if>>
+	<<if _bottomIsSkirt>>
+		<<= $worn.lower.name>> up and over your thighs
+	<</if>>
+	<span class="lewd">to expose your <<genitals>>.</span> <<exhibitionism4>>
+
+	Whitney and <<his>> friends are completely captivated.<<npcincr Whitney lust 5>><<glust>>
+<</if>>
+<<lowerstrip>><<underlowerstrip>>
+<br><br>
+<<if playerChastity()>>
+	<<if $worn.genitals.origin is "Whitney">>
+		Whitney wears an eager grin until you reveal the <<= $worn.genitals.name>> <<he>> gave you. "Oh. Right. Well, whatever. You'd
+	<<else>>
+		Whitney grimaces when <<he>> sees your <<= $worn.genitals.name>>. "What the fuck?" <<He>> gives it a few sharp tugs, but it doesn't budge. "Ugh. Whatever, you'd
+	<</if>>
+	better hope the buyer doesn't dip out because of that." <<if $player.penisExist and $worn.genitals.name is "chastity parasite">><<arousal 600 "genitals">><<garousal>><</if>>
+	<br><br>
+<<elseif $player.gender isnot $player.gender_appearance and !$genderknown.includes("Whitney")>>
+	<<set $genderknown.pushUnique("Whitney")>>
+	Whitney's eyebrows shoot up at the sight of your <<genitals>>. "Not what I was expecting, but sure. That works, too." <<He>> doesn't look disappointed.
+	<br><br>
+<</if>>
+
+<<set _liquid to $player.bodyliquid[$player.penisExist ? "penis" : "vagina"]>>
+<<if ['slime', 'urchin'].some(p => [$parasite.penis.name, $parasite.clit.name].includes(p))>>
+	Whitney notices your <<= $parasite[$player.penisExist ? "penis" : "clit"].name>>.
+	<<if $parasite[$player.penisExist ? "penis" : "clit"].origin is "Whitney">>
+		"Glad you liked my gift," <<he>> jeers.
+	<<else>>
+		"That gives me an idea for next time," <<he>> says with a grin.
+	<</if>>
+<<elseif _liquid.semen + _liquid.goo gte 5 or $skin.pubic.writing isnot undefined>>
+	Whitney notices your <<genitals>> covered in <span class="lewd"><<= $skin.pubic.writing isnot undefined ? '"$skin.pubic.writing"' : _liquid.semen gte _liquid.goo ? "semen" : "goo">></span>.
+	<<if $skin.pubic.special is "Whitney">>
+		"Damn, who left that there?" <<he>> jeers knowingly.
+	<<else>>
+		"Been slutting it up without me, huh?" <<he>> jeers.
+	<</if>>
+<<elseif $pbdisable is "f">>
+	<<if !($pblevel gte 2 or $pblevelballs gte 2) or ($pblevel gte 1 and $pbstripName isnot undefined)>>
+		"This is nice," <<he>> says, pointing to your <<= $pblevel is 0 and $pblevelballs is 0 ? "clean pubic area" : $pbstripName isnot undefined ? "$pbstripName pubic hair" : "pubic hair">>. "Bet I could charge extra for it, too."
+	<<else>>
+		"Yikes," <<he>> says, pointing to your pubic hair. "Ever heard of a razor?"
+	<</if>>
+<<else>>
+	"Perfect," Whitney grins.
+<</if>>
+<<He>> readies <<his>> phone camera, pointing it at your crotch. "Go on, then. Piss."
+<br><br>
+You take a deep breath and try to <<= $phase2 is "lose" ? "control your sobs and hiccoughing" : "relax">>. It's difficult with Whitney and <<his>> friends watching. They start to joke among themselves, but Whitney shushes them. Within moments, you feel a warmth building in your groin until it releases, trickling down into the toilet. <<His>> friends struggle to contain their chortles and whispers.
+<br><br>
+"<<= either ("Can't believe <<pshe>> did it","Shameless <<bastard>>","Good thing <<pshe>> doesn't have parents to disappoint")>>," you hear one of them say.
+<br><br>
+Whitney remains surprisingly professional, keeping a steady hand on the camera until your bladder empties. <<embarrassment>><<arousal 600>><<garousal>>
+<br><br>
+"Nice," <<he>> says as <<he>> checks the video on <<his>> phone. <<His>> friends jostle to peek at the footage over <<his>> shoulders.
+<br><br>
+<<if $arousal gte 6000>>
+	When <<he>> looks up at you, <<he>> seems surprised. "Fucking hell. Don't tell me you actually liked that," <<he>> says. <<He>> takes in your flushed face and chuckles. "That's foul, slut. Though I can't say I'm surprised."
+	<br><br>
+	<<if C.npc.Whitney.lust gte random(0, 40)>>
+		<<link [[Next|Bully Piss 3]]>><</link>>
+		<<exit>>
+	<</if>>
+<</if>>
+
+<<He>> pockets <<his>> phone. "Easy money," <<he>> says.
+<br><br>
+
+<<link [[Next|Bully Piss End]]>><</link>>
+<br>
+
+:: Bully Piss 3
+<<effects>>
+
+<<He>> looks like <<hes>> about to step away, but an idea strikes <<him>>. "Actually..." <<He>> tugs you down to straddle the toilet. "If you liked that so much, then how about a bonus reel? Bet the buyer would pay twice over for the unrated director's cut."
+<br><br>
+Whitney's friends cheer in a mix of disgust and excitement as <<he>>
+<<if $NPCList[0].penis isnot "none">>
+	<<if C.npc.Whitney.pronoun is "m">>
+		pulls <<his>> half-flaccid penis from <<his>> trousers.
+	<<else>>
+		lifts <<his>> skirt to reveal <<his>> half-flaccid penis.
+	<</if>>
+<<else>>
+	<<if C.npc.Whitney.pronoun is "m">>
+		steps out of <<his>> trousers. <<He>> stands on the toilet and plants a foot on the back, <<his>> naked pussy hovering over you.
+	<<else>>
+		stands on the toilet and plants a foot on the back. <<He>> gathers <<his>> skirt up to reveal <<his>> naked pussy hovering over you.
+	<</if>>
+<</if>>
+<br><br>
+Whitney flashes you a wicked grin. "How about it?" <span class="yellow"><<His>> intentions are very clear.</span>
+<br><br>
+
+<<link [[Go with it|Bully Piss 4]]>><<set $phase to 0>><<set $daily.whitney.bullyPissObey += 3>><<stress 6>><<trauma 6>><<status -5>><<npcincr Whitney dom 1>><</link>><<gstress>><<gtrauma>><<lcool>><<gdom>>
+<br>
+<<if hasSexStat("exhibitionism", 5)>>
+	<<link [[Pose for the camera|Bully Piss 4]]>><<set $phase to 1>><<set $daily.whitney.bullyPissObey += 4>><<status -5>><<npcincr Whitney love 1>><<npcincr Whitney dom 3>><</link>><<exhibitionist5>><<lcool>><<glove>><<ggdom>>
+	<br>
+<</if>>
+<<link [[Refuse|Bully Piss Refuse]]>><<set $phase to 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
+<br>
+
+:: Bully Piss 4
+<<effects>>
+
+<<if $phase is 0>> /* Go with it */
+	<<if $speech_attitude is "meek">>
+		"F-fine," you whimper.
+	<<elseif $speech_attitude is "bratty">>
+		"<<= C.npc.Whitney.pronoun is "m" ? "Bastard" : "Bitch">>," you grumble. "Just do it."
+	<<else>>
+		"Just get it over with," you say.
+	<</if>>
+	<br><br>
+	"That's the spirit," <<he>> says, aiming the camera with one hand while <<= $NPCList[0].penis isnot "none" ? "holding" : "spreading">> <<his>> <<= $NPCList[0].penis isnot "none" ? "cock" : "pussy">> with the other.
+	<br><br>
+	You close your eyes and brace yourself. It only takes a second before a warm stream of fluid trails down your neck and chest, soaking your <<allTops>><<wet_upper>>.
+<<else>> /* Pose for the camera */
+	<<if $speech_attitude is "meek">>
+		"P-please... G-go ahead... I don't mind..." you murmur.
+	<<elseif $speech_attitude is "bratty">>
+		"Go ahead," you say. "I'm literally asking for it."
+	<<else>>
+		"You act like I'm gonna say no." You smirk.
+	<</if>>
+	<br><br>
+	You stick out your chest and throw up a couple of peace signs, flashing a raunchy grin at the camera <<he>> still has pointed at you.<<exhibitionism5>>
+
+	"Fucking slut," Whitney laughs as <<he>> takes aim. "Of course you'd fucking like this."
+	<br><br>
+	A warm stream of piss splashes down your neck and chest, soaking your <<allTops>><<wet_upper>>. Your stomach flutters with humiliated delight. <<embarrassment>><<arousal 1200>><<ggarousal>>
+<</if>>
+<br><br>
+<<if $arousal gte $arousalmax>>
+	<<orgasm>>
+
+	Whitney is gobsmacked. "Did you just fucking cum?" <<His>> friends burst into laughter. "There's something seriously fucking wrong with you," <<he>> says as <<he>> fixes <<his>> clothes. <<His>> eyes linger on you.
+<<else>>
+	"There we go," Whitney sighs when <<hes>> done. <<He>> fixes <<his>> clothes, struggling to hold back <<his>> snickering.
+<</if>>
+<br><br>
+"That's all you are, isn't it? A toilet for me <<if $fame.sex gte 600>>and the rest of the town<</if>> to piss on?" <<He>> pockets <<his>> phone as <<his>> friends sneak in their own pictures. "Let me know if you wanna do this again, slut. I don't mind marking my territory the old fashioned way."<<npcincr Whitney lust 5>><<glust>>
+<br><br>
+
+<<link [[Next|Bully Piss End]]>><</link>>
+<br>
+
+:: Bully Piss End
+<<effects>>
+
+<<He>> offers you a two-finger salute as <<he>> turns on <<his>> heels. "Later, slut."
+<br><br>
+<<if C.npc.Whitney.love gte 20 and $daily.whitney.bullyPissCut is true>>
+	<<if $speech_attitude is "meek">>
+		"W-wait," you manage to say before <<he>> gets too far. "You said... I would get a cut?"
+	<<elseif $speech_attitude is "bratty">>
+		"Not so fast," you call after <<him>>. "Didn't you say I would get a cut?"
+	<<else>>
+		"Wait! You said I would get a cut, didn't you?" you ask before <<he>> gets too far.
+	<</if>>
+	<br><br>
+	<<if $daily.whitney.bullyPissObey lte 2>> /* only Comply or Flaunt*/
+		Whitney pauses. "I did say that, didn't I? Whatever." <<He>> digs into <<his>> <<= C.npc.Whitney.pronoun is "m" ? "back pocket" : "bra">> and takes out a <<moneyGain 5>> note, dropping it on the floor. "Don't spend it all in one place!"
+	<<elseif $daily.whitney.bullyPissObey gte 6>> /* Flaunt + Pose */
+		Whitney stops mid-step. "Oh yeah." <<He>> reaches into <<his>> <<= C.npc.Whitney.pronoun is "m" ? "back pocket" : "bra">> and counts out <<moneyGain 50>>. <<He>> sticks it between your lips and pats your cheek. "For an honest slut's work. You earned it."
+	<<else>>
+		<<set _money to ($daily.whitney.bullyPissObey lte 4 ? 10 : 20)>>
+		Whitney sighs and rolls <<his>> eyes, but reaches into <<his>> <<= C.npc.Whitney.pronoun is "m" ? "back pocket" : "bra">>. <<He>> tosses a <<moneyGain _money>> note on the floor. "<<= $daily.whitney.bullyPissObey lte 4 ? "This is all you get for phoning it in like that" : "A solid performance, but could have been better. I expected more from my slut, you know">>."
+	<</if>>
+	<br><br>
+<</if>>
+
+<<His>> friends chortle with <<him>> as they make their exit from the <<nnpc_gendery "Whitney">>s' toilets.
+<br><br>
+<<clotheson>>
+
+<<if C.npc.Whitney.pronoun is "m">>
+	<<link [[Next|School Boy's Toilets]]>><<endevent>><<set $eventskip to 1>><</link>>
+<<else>>
+	<<link [[Next|School Girl's Toilets]]>><<endevent>><<set $eventskip to 1>><</link>>
+<</if>>
+<br>
+
+:: Bully Piss Fight Finish
+<<effects>>
+
+<<if $enemyhealth lte 0>>
+	You slam Whitney against a locker bay, darting past <<his>> friends and making your escape. You don't look back.
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation "short">>
+
+	Whitney is left flushed and panting, slumped against a locker. "You... f-fucking cunt..."<<npcincr Whitney lust -20>><<llust>>
+	<br><br>
+	<<He>> scowls and stomps away, <<his>> friends following with poorly contained snickers.
+<<elseif $alarm is 1 and $rescue is 1>>
+	A teacher pokes their head out of a nearby classroom, drawn by the commotion. Cowed by the warning glare <<he>> receives, Whitney releases you. "Rain check, bitch." <<He>> stomps off, friends in tow.
+	<br><br>
+	<<tearful>> you carry on as you were.
+<<else>>
+	You fall to your knees. Whitney grabs a handful of your hair, dragging you into the toilets. "You just made it that much worse on yourself, slut."
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<npc Whitney>><<person1>>
+
+	<<link [[Next (0:15)|Bully Piss]]>><<set $phase2 to "lose">><<pass 15>><</link>>
+	<<exit>>
+<</if>>
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+
+<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
+<br>
+
+:: Bully Piss Refuse
+<<effects>>
+
+<<if $phase is 0>> /* PC rejects piss */
+	<<if $speech_attitude is "meek">>
+		"N-no, p-please!" you beg <<him>>. "D-don't make me...!"
+	<<elseif $speech_attitude is "bratty">>
+		"You're fucking joking," you say. "No way in hell am I going to do that!"
+	<<else>>
+		"What? No! Absolutely not!" you say.
+	<</if>>
+	<br><br>
+	<<if $whitneyromance is 1 and C.npc.Whitney.love gte 25 and $phase2 isnot "lose">>
+		Whitney hesitates. "... Fine," <<he>> says, pocketing <<his>> phone. "Fucking killjoy. You'll make it up to me. I'll find you later to cash in." <<He>> makes a lewd gesture with <<his>> hand and mouth.
+		<br><br>
+		<<His>> friends chortle with <<him>> as they make their exit from the <<nnpc_gendery "Whitney">>s' toilets.
+		<br><br>
+		<<clotheson>>
+
+		<<if C.npc.Whitney.pronoun is "m">>
+			<<link [[Next|School Boy's Toilets]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<<else>>
+			<<link [[Next|School Girl's Toilets]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<</if>>
+		<br>
+	<<else>>
+		"That's cute," <<he>> says. "You thought this was optional."
+		<br><br>
+
+		<<if $phase2 is "lose">>
+			<<link [[Next|Bully Piss Lose End]]>><<set $phase to 0>><</link>>
+		<<else>>
+			<<link [[Next|Bully Fight]]>><<set $phase to 1>><<set $fightstart to 1>><</link>>
+		<</if>>
+		<br>
+	<</if>>
+<<else>> /* PC rejects Whitney piss */
+	<<if $speech_attitude is "meek">>
+		"N-no, I can't...! That's unsanitary! Please don't...!" you beg.
+	<<elseif $speech_attitude is "bratty">>
+		You baulk at <<him>>. "You're fucking joking. No way in hell am I letting you piss on me!"
+	<<else>>
+		"What?" you shout frantically. "No! Absolutely not!"
+	<</if>>
+	<br><br>
+	<<if $whitneyromance is 1 and C.npc.Whitney.love gte 25 and $phase2 isnot "lose">>
+		Whitney shrugs, stepping back and fixing <<his>> clothes. "Fine. I'm making enough as it is."
+		<br><br>
+
+		<<link [[Next|Bully Piss End]]>><</link>>
+		<br>
+	<<else>>
+		Whitney's upper lip curls into a sneer. "Wrong answer."
+		<br><br>
+
+		<<if $phase2 is "lose">>
+			<<link [[Next|Bully Piss Lose End]]>><<set $phase to 1>><</link>>
+		<<else>>
+			<<link [[Next|Bully Fight]]>><<set $phase to 1>><<set $fightstart to 1>><</link>>
+		<</if>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Bully Piss Refuse Fight Finish
+<<effects>>
+
+<<if $enemyhealth lte 0>>
+	You slam Whitney against the stall, darting past <<his>> friends and out of the <<nnpc_gendery "Whitney">>s' toilets. You don't look back.
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
+	<<exit>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation "short">>
+
+	Whitney is left flushed and panting, slumped against a stall. "You... f-fucking cunt..."<<npcincr Whitney lust -20>><<llust>>
+	<br><br>
+	<<He>> scowls and stomps out the door, <<his>> friends following with poorly contained snickers.
+<<elseif $alarm is 1 and $rescue is 1>>
+	One of Whitney's friends stationed outside the toilets pops <<nnpc_his "Whitney">> head in. "Oi, it's Doren!"
+	<br><br>
+	Whitney shoves you against the toilet with an annoyed snarl. "Bitch."
+	<br><br>
+	All of them make a swift exit from the toilets. A moment later,
+	<<if C.npc.Whitney.pronoun is C.npc.Doren.pronoun>>
+		Doren barges in. "You okay, <<lass>>?"
+		<br><br>
+		<<tearful>> you nod and pick yourself up. "Yes. Thank you."
+	<<else>>
+		Doren's voice calls out from the hallway. "You okay in there, <<lass>>?"
+		<br><br>
+		<<tearful>> you pick yourself up and meet Doren at the door. "I'm okay," you say. "Thank you."
+	<</if>>
+	<br><br>
+	Doren hesitates, but accepts your answer. "Alright. Run along <<if ["first","second","third","fourth","fifth"].includes($schoolstate)>>to class<</if>>, then."
+<<else>>
+	You groan, curling up on the cold floor to protect your body from further harm.
+	<br><br>
+
+	<<endcombat>>
+
+	<<npc Whitney>><<person1>>
+
+	<<link [[Next|Bully Piss Lose End]]>><<set $phase to 1>><</link>>
+	<<exit>>
+<</if>>
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+
+<<if C.npc.Whitney.pronoun is "m">>
+	<<link [[Next|School Boy's Toilets]]>><<set $eventskip to 1>><</link>>
+<<else>>
+	<<link [[Next|School Girl's Toilets]]>><<set $eventskip to 1>><</link>>
+<</if>>
+<br>
+
+:: Bully Piss Lose End
+<<effects>>
+
+Whitney sneers.
+<<if $phase is 0>> /* PC rejects piss */
+	<span class="red">"I got another idea, then."</span> <<He>> throws you to the floor and
+<<else>> /* PC rejects Whitney piss */
+	<span class="red">"Now shut up and be a good little toilet, slut."</span> <<He>>
+<</if>>
+<<if $NPCList[0].penis isnot "none">>
+	<<if C.npc.Whitney.pronoun is "m">>
+		pulls <<his>> half flaccid penis from <<his>> trousers.
+	<<else>>
+		lifts <<his>> skirt to reveal <<his>> half flaccid penis.
+	<</if>>
+<<else>>
+	<<if C.npc.Whitney.pronoun is "m">>
+		steps out of <<his>> trousers and widens <<his>> stance, revealing <<his>> naked pussy hovering over you.
+	<<else>>
+		gathers <<his>> skirt up and widens <<his>> stance, <<his>> naked pussy hovering over you.
+	<</if>>
+<</if>>
+<br><br>
+Whitney's friends cheer in a mix of disgust and excitement as <<he>> takes a piss on your chest, filming every second of it. It soaks your <<allTops>>, and your skin crawls.<<wet_upper>>
+<br><br>
+<<He>> steps away when <<hes>> relieved <<himself>>, fixing <<his>> clothes. <<He>> motions to <<his>> friends. "Well, <<= C.npc.Whitney.pronoun is "m" ? "lads" : "girls">>? Help this slut learn <<pher>> place like the toilet <<pshe>> is."<<npcincr Whitney lust 5>><<glust>>
+<br><br>
+<<His>> friends take turns pissing on you. Whitney crouches down to better film your sobs.<<trauma 12>><<status -10>><<ggtrauma>><<llcool>>
+<br><br>
+When they finish, Whitney pockets <<his>> phone.
+<<if $phase is 0>> /* PC rejects piss */
+	"It's not what the buyer asked for, so you better hope they don't dip out of the deal. Later, slut."
+	<br><br>
+	Their laughter fades away as they leave the toilets.
+<<else>> /* PC rejects Whitney piss */
+	"Fucking nasty <<bitch>>," <<he>> grins. "If the buyer doesn't want it, I'll just sell it to the highest bidder. Later, slut."
+	<br><br>
+	<<He>> leaves the toilets with <<his>> friends.
+<</if>>
+<<tearful>> you manage to pick yourself off the floor.
+<br><br>
+<<clotheson>>
+
+<<if C.npc.Whitney.pronoun is "m">>
+	<<link [[Next|School Boy's Toilets]]>><<endevent>><<set $eventskip to 1>><</link>>
+<<else>>
+	<<link [[Next|School Girl's Toilets]]>><<endevent>><<set $eventskip to 1>><</link>>
+<</if>>
+<br>
+
+:: Bully Piss Rescue
+<<effects>>
+
+<<npc Leighton 2>>
+<<He>> freezes up when a hand lands on <<his>> shoulder. It's Leighton.
+<br><br>
+"Whitney. I was just starting to wonder why my office is so quiet today. Care to explain why I found a student's undergarments hanging from the flagpole this morning?"
+<br><br>
+Whitney and <<his>> friends snicker. "You didn't like the new flag I picked out?"
+<br><br>
+Leighton seems less than impressed. "My office. Now."
+<br><br>
+<<if $whitneyromance is 1 and C.npc.Whitney.love gte 20>>
+	Whitney scowls, then plants a quick kiss on your lips. "Rain check, slut."<<npcincr Whitney lust 5>><<glust>><<takeKissVirginity "Whitney" "loveInterest">>
+	<br><br>
+	<<He>> roughly shoves you into Leighton, sending you both against a wall of lockers.
+	<br><br>
+	Leighton is quick to throw you off, grumbling as <<person2>><<he>> watches Whitney and <<person1>><<his>> friends make a quick escape down the hall. <<person2>><<He>> turns to you with a sharp look. "Stay away from that one. Nothing but trouble."
+	<br><br>
+	Leighton leaves in a huff.
+<<else>>
+	Whitney scowls at you over <<person1>><<his>> shoulder as <<he>> gets escorted away by Leighton. <<His>> friends are quick to disperse.
+<</if>>
+<br><br>
+You're not sure what Whitney had planned, but you're glad you don't get to find out.
+<br><br>
+
+<<link [[Next|School Toilets]]>><<endevent>><<set $eventskip to 1>><</link>>
+<br>
+
 :: Bully Hair
 
 <<effects>>
@@ -4538,7 +5013,7 @@ You approach Whitney, and <<= Weather.precipitation isnot "none" ? "take shelter
 	<<whitneyexit>>
 <<elseif C.npc.Whitney.love gte 20 and $whitneyromance isnot 1 and !["dungeon", "pillory"].includes(C.npc.Whitney.state)>>
 	<<set $whitneyromance to 1>>
-	<<He>> suddenly grabs you and bends you backwards over the fountain, <<= Weather.precipitation isnot "none" ?  "letting the " + Weather.precipitation + " fall on your face" : "scowling down at you">>. <<He>> looks angrier than usual.
+	<<He>> suddenly grabs you and bends you backwards over the fountain, <<= Weather.precipitation isnot "none" ? "letting the " + Weather.precipitation + " fall on your face" : "scowling down at you">>. <<He>> looks angrier than usual.
 	<br><br>
 	"Stupid slut," <<he>> says. <<He>> nearly lets you drop into the fountain. "You've been asking for this, don't try to deny it." <<He>> pulls you up and kisses you with surprising tenderness. <<takeKissVirginity "Whitney" "loveInterest">>
 	<br><br>
diff --git a/game/overworld-town/special-whitney/park.twee b/game/overworld-town/special-whitney/park.twee
index 75828d1b29f2a17412356b451970a0eb57c66042..bcb87983a26e90d4d1c38962c2a5e63e01d047c0 100644
--- a/game/overworld-town/special-whitney/park.twee
+++ b/game/overworld-town/special-whitney/park.twee
@@ -773,8 +773,9 @@
 <<elseif $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 
+	Whitney sits back on the <<= Weather.precipitation is "snow" ? "fountain ledge" : "park bench">> with a contented sigh.
 	<<if $consensual is 1>>
-		Whitney sits back on the <<= Weather.precipitation is "snow" ? "fountain ledge" : "park bench">> with a contented sigh. "Fuck, I needed that."<<npcincr Whitney lust -20>><<llust>>
+		"Fuck, I needed that."<<npcincr Whitney lust -20>><<llust>>
 		<br><br>
 		<<if C.npc.Whitney.dom gte 10 and $orgasmcurrent is 0 and (($player.penisExist and (!playerChastity("penis") or $worn.genitals.name is "chastity parasite")) or ($player.vaginaExist and !playerChastity("hidden")))>>
 			<<if $player.penisExist and $penisuse isnot 0>>
@@ -812,7 +813,7 @@
 			<<whitneyexit>>
 		<</if>>
 	<<else>>
-		Whitney sits back on the <<= Weather.precipitation is "snow" ? "fountain ledge" : "park bench">> with a contented sigh.<<npcincr Whitney lust -20>><<llust>>
+		<<npcincr Whitney lust -20>><<llust>>
 		<br><br>
 		<<clotheson>>
 		<<endcombat>>
diff --git a/game/overworld-town/special-whitney/widgets.twee b/game/overworld-town/special-whitney/widgets.twee
index 73a064377d5e3d4087d198c6cceea4fba19c8346..7615b503a429ce88165457d0fb93d4a4d2cb7f89 100644
--- a/game/overworld-town/special-whitney/widgets.twee
+++ b/game/overworld-town/special-whitney/widgets.twee
@@ -404,4 +404,4 @@
 		<<link [[Next|Oxford Street]]>><<endevent>><</link>>
 		<br>
 	<</if>>
-<</widget>>
+<</widget>>
\ No newline at end of file