diff --git a/Actors/Player/ChastityBelt_Rope_Collar_BallGag_TwoRopesPunished.png b/Actors/Player/ChastityBelt_Rope_Collar_BallGag_TwoRopesPunished.png
deleted file mode 100644
index 8c89cf0f59..0000000000
Binary files a/Actors/Player/ChastityBelt_Rope_Collar_BallGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/ChastityBelt_Rope_Collar_BallGag_TwoRopesPunishment.png b/Actors/Player/ChastityBelt_Rope_Collar_BallGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..bec91c33a8
Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_BallGag_TwoRopesPunishment.png differ
diff --git a/Actors/Player/ChastityBelt_Rope_Collar_ClothGag_TwoRopesPunished.png b/Actors/Player/ChastityBelt_Rope_Collar_ClothGag_TwoRopesPunished.png
deleted file mode 100644
index a1e79ba422..0000000000
Binary files a/Actors/Player/ChastityBelt_Rope_Collar_ClothGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/ChastityBelt_Rope_Collar_ClothGag_TwoRopesPunishment.png b/Actors/Player/ChastityBelt_Rope_Collar_ClothGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..b00b919385
Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_ClothGag_TwoRopesPunishment.png differ
diff --git a/Actors/Player/ChastityBelt_Rope_Collar_NoGag_TwoRopesPunished.png b/Actors/Player/ChastityBelt_Rope_Collar_NoGag_TwoRopesPunished.png
deleted file mode 100644
index f5426f8655..0000000000
Binary files a/Actors/Player/ChastityBelt_Rope_Collar_NoGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/ChastityBelt_Rope_Collar_NoGag_TwoRopesPunishment.png b/Actors/Player/ChastityBelt_Rope_Collar_NoGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..8688a7b424
Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_NoGag_TwoRopesPunishment.png differ
diff --git a/Actors/Player/ChastityBelt_Rope_Collar_TapeGag_TwoRopesPunished.png b/Actors/Player/ChastityBelt_Rope_Collar_TapeGag_TwoRopesPunished.png
deleted file mode 100644
index 6e99d47d63..0000000000
Binary files a/Actors/Player/ChastityBelt_Rope_Collar_TapeGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/ChastityBelt_Rope_Collar_TapeGag_TwoRopesPunishment.png b/Actors/Player/ChastityBelt_Rope_Collar_TapeGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..738907988c
Binary files /dev/null and b/Actors/Player/ChastityBelt_Rope_Collar_TapeGag_TwoRopesPunishment.png differ
diff --git a/Actors/Player/Naked_Rope_Collar_BallGag_TwoRopesPunished.png b/Actors/Player/Naked_Rope_Collar_BallGag_TwoRopesPunished.png
deleted file mode 100644
index 69cde4b21d..0000000000
Binary files a/Actors/Player/Naked_Rope_Collar_BallGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/Naked_Rope_Collar_BallGag_TwoRopesPunishment.png b/Actors/Player/Naked_Rope_Collar_BallGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..c55ead20f3
Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_BallGag_TwoRopesPunishment.png differ
diff --git a/Actors/Player/Naked_Rope_Collar_ClothGag_TwoRopesPunished.png b/Actors/Player/Naked_Rope_Collar_ClothGag_TwoRopesPunished.png
deleted file mode 100644
index 83a5a83ba1..0000000000
Binary files a/Actors/Player/Naked_Rope_Collar_ClothGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/Naked_Rope_Collar_ClothGag_TwoRopesPunishment.png b/Actors/Player/Naked_Rope_Collar_ClothGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..ece8492333
Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_ClothGag_TwoRopesPunishment.png differ
diff --git a/Actors/Player/Naked_Rope_Collar_NoGag_TwoRopesPunished.png b/Actors/Player/Naked_Rope_Collar_NoGag_TwoRopesPunished.png
deleted file mode 100644
index 10e87cb3ae..0000000000
Binary files a/Actors/Player/Naked_Rope_Collar_NoGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/Naked_Rope_Collar_NoGag_TwoRopesPunishment.png b/Actors/Player/Naked_Rope_Collar_NoGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..1a0801c059
Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_NoGag_TwoRopesPunishment.png differ
diff --git a/Actors/Player/Naked_Rope_Collar_TapeGag_TwoRopesPunished.png b/Actors/Player/Naked_Rope_Collar_TapeGag_TwoRopesPunished.png
deleted file mode 100644
index 54e11ca52f..0000000000
Binary files a/Actors/Player/Naked_Rope_Collar_TapeGag_TwoRopesPunished.png and /dev/null differ
diff --git a/Actors/Player/Naked_Rope_Collar_TapeGag_TwoRopesPunishment.png b/Actors/Player/Naked_Rope_Collar_TapeGag_TwoRopesPunishment.png
new file mode 100644
index 0000000000..b6a36bbb31
Binary files /dev/null and b/Actors/Player/Naked_Rope_Collar_TapeGag_TwoRopesPunishment.png differ
diff --git a/Actors/Sidney/Shorts_NoBondage_NoGag_Crop.png b/Actors/Sidney/Shorts_NoBondage_NoGag_Crop.png
new file mode 100644
index 0000000000..0ca4ef62f3
Binary files /dev/null and b/Actors/Sidney/Shorts_NoBondage_NoGag_Crop.png differ
diff --git a/Backgrounds/Dorm.jpg b/Backgrounds/Dorm.jpg
index c0e781d0d1..f1f745ba03 100644
Binary files a/Backgrounds/Dorm.jpg and b/Backgrounds/Dorm.jpg differ
diff --git a/C000_Intro/ChapterSelect/GameCredits.csv b/C000_Intro/ChapterSelect/GameCredits.csv
index 6ef29ef60e..8612273c5f 100644
--- a/C000_Intro/ChapterSelect/GameCredits.csv
+++ b/C000_Intro/ChapterSelect/GameCredits.csv
@@ -28,38 +28,42 @@ Designated|Ilsyra
 Jyeoh|Winterisbest
 Michal P.|David
 Squerby55|Sanae X.
-Leon|Bob D.
-Jose A.|KBgamer2010
-CuvyanTaylor|JohnCenaDidNothing
-Destroyer-x|BinaryNerd
-Robert M.|bxfire
-Hazel K.|James B.
-EugeneTooms|Thomas G.
-Andrew C.|Koluc
-Zack|Keso
-Ryner L.|Noah J.
-The_Blarg|Ff7sfm
-John M.|thomas
-nubbs99|Lukas Z.
-John D.|ExpertPlasma
-Trosan|Bumurmum
+Leon|Lukas B.
+Alan R.|Yoshitake Y.
+David R.|Peter
+Troqu|Sid111
+Ricky R.|Strangerhood
+1073522|Simon W.
+Bob D.|flydeath
+KBgamer2010|CuvyanTaylor
+JohnCenaDidNothing|Destroyer-x
+BinaryNerd|Robert M.
+bxfire|Hazel K.
+James B.|EugeneTooms
+Thomas G.|Andrew C.
+Koluc|Zack
+Keso|Ryner L.
+Noah J.|The_Blarg
+Ff7sfm|John M.
+thomas|nubbs99
+Lukas Z.|John D.
+ExpertPlasma|Bumurmum
 Ediger|Steve J.
 Nathaniel W.|Denis S.
 Blackfur|Side E.
 Ray B.|Dan S.
 Mike W.|Gust R.
-ajwad|Adriano8727
-brunayla|Nam H.
-Ryan K.|Bobby A.
-Vkad 6.|skylar
-Richard M.|Alfredo A.
-Kevin K.|Kurami-
-Winnie|Michael F.
-Edward N.|itsrave
-Kuroham|Dennis S.
-Joseph M.|DARKSIDE W.
-smack54|Rashiash
-d1122|Sean M.
+Adriano8727|brunayla
+Nam H.|Ryan K.
+Bobby A.|Vkad 6.
+skylar|Richard M.
+Alfredo A.|Kevin K.
+Kurami-|Winnie
+Michael F.|Edward N.
+itsrave|Kuroham
+Dennis S.|Joseph M.
+DARKSIDE W.|smack54
+Rashiash|Sean M.
 Jose|neosuduno
 cross|Ian J.
 Jake h.|llecram a.
@@ -88,23 +92,25 @@ Daniel W.|Lilian B.
 Stanley F.|Jesse Y.
 Barbehenn|Stargat53
 Lovebdg1|Jörn P.
-David R.|target
+Johnny g.|target
 Andrei S.|Flying V.
-plicoc|Simon W.
-gottspende|What E.
-Stefano|Rafael R.
-roulio12|ElCorro
-Johnny g.|AJ22
-Austin M.|Lukas G.
+plicoc|gottspende
+What E.|Stefano
+Rafael R.|韩旭东
+Jared s.|AJ22
+Charlulu's D.|Fin H.
+jim k.|Nathan D.
+Bryce R.|roulio12
+ElCorro|Lukas G.
 egadonb|Meyer
 Alpha|Oren B.
 Afituz I.|Raven-rj
 Zongus763|Jack S.
-Joshua H.|Charlulu's D.
-Triassik|Leonardo P.
-jukehero461|天河
-lemonda|DJZ
-Littleshiro-kun|Christopher W.
+Joshua H.|Triassik
+Leonardo P.|jukehero461
+天河|lemonda
+DJZ|Littleshiro-kun
+Christopher W.|
 
 CreditTypeFans
 
diff --git a/C012_AfterClass/Dorm/Background.jpg b/C012_AfterClass/Dorm/Background.jpg
index 9ff2990a11..f33d12d2cd 100644
Binary files a/C012_AfterClass/Dorm/Background.jpg and b/C012_AfterClass/Dorm/Background.jpg differ
diff --git a/C012_AfterClass/Dorm/Script.js b/C012_AfterClass/Dorm/Script.js
index b1c07f1317..c69de04d24 100644
--- a/C012_AfterClass/Dorm/Script.js
+++ b/C012_AfterClass/Dorm/Script.js
@@ -1,13 +1,17 @@
 var C012_AfterClass_Dorm_Guest = [];
 var C012_AfterClass_Dorm_PlayerPos = 0;
+var C012_AfterClass_Dorm_PlayerGrounded = false;
 
 // Check if we must stop the scene for leaving guests
 function C012_AfterClass_Dorm_LeavingGuest() {
 
-	// Sidney will leave at 20:00
+	// Sidney will leave at 20:00, it ends any grounding event
 	if ((C012_AfterClass_Dorm_Guest.indexOf("Sidney") >= 0) && (CurrentTime >= 20 * 60 * 60 * 1000) && !ActorSpecificIsRestrained("Sidney")) {
+		C012_AfterClass_Dorm_Guest.splice("Sidney");
 		C012_AfterClass_Sidney_CurrentStage = 400;
+		if (C012_AfterClass_Dorm_PlayerGrounded) GameLogSpecificAddTimer(CurrentChapter, "Sidney", "EventGrounded", 1);
 		SetScene(CurrentChapter, "Sidney");
+		if (C012_AfterClass_Dorm_PlayerGrounded) OverridenIntroText = GetText("GroundingEndForLeaving");
 	}
 
 }
@@ -29,10 +33,13 @@ function C012_AfterClass_Dorm_Load() {
 	ActorSpecificSetPose("Sarah", "");
 	ActorSpecificSetPose("Sidney", "");
 	ActorSpecificSetPose("Jennifer", "");
-	Common_PlayerPose = "";
 	Common_BondageAllowed = true;
 	Common_SelfBondageAllowed = true;
 	
+	// If the player is grounded, the dorm is mostly deactivated until the timer runs out
+	C012_AfterClass_Dorm_PlayerGrounded = GameLogQuery(CurrentChapter, "", "EventGrounded");
+	Common_PlayerPose = C012_AfterClass_Dorm_PlayerGrounded ? "TwoRopesPunishment" : "";
+	
 	// Resets the other locations from the Dorm
 	C012_AfterClass_Pub_CurrentStage = 0;
 	C012_AfterClass_Roommates_CurrentStage = 0;
@@ -46,38 +53,55 @@ function C012_AfterClass_Dorm_Run() {
 	// Check if we must stop the scene for leaving guests
 	C012_AfterClass_Dorm_LeavingGuest();
 	
-	// Draw the background and the actors
-	DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
-	DrawTransparentPlayerImage(C012_AfterClass_Dorm_PlayerPos - 210, 0, 0.6667);
-	for (var A = 0; A < C012_AfterClass_Dorm_Guest.length; A++)
-		DrawActor(C012_AfterClass_Dorm_Guest[A], C012_AfterClass_Dorm_PlayerPos - 10 + A * 200, 0, 0.6667);
+	// If grounding is over, we go to the owner
+	if (C012_AfterClass_Dorm_PlayerGrounded && !GameLogQuery(CurrentChapter, "", "EventGrounded") && (C012_AfterClass_Sidney_CurrentStage != 400)) {
+		C012_AfterClass_Sidney_CurrentStage = 3915;
+		SetScene(CurrentChapter, Common_PlayerOwner);
+		LeaveIcon = "";
+	}
+
+	// Make sure we are still in the dorm after the previous events
+	if (CurrentScreen == "Dorm") {
+
+		// Draw the background and the actors
+		DrawImage(CurrentChapter + "/" + CurrentScreen + "/Background.jpg", 0, 0);
+		DrawTransparentPlayerImage(C012_AfterClass_Dorm_PlayerPos - 210, 0, 0.6667);
+		for (var A = 0; A < C012_AfterClass_Dorm_Guest.length; A++)
+			DrawActor(C012_AfterClass_Dorm_Guest[A], C012_AfterClass_Dorm_PlayerPos - 10 + A * 200, 0, 0.6667);
+		
+		// Draw the room icons
+		if ((MouseX >= 0) && (MouseX < 150) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Wardrobe_Active.png", 25, 0);
+		else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Wardrobe_Inactive.png", 25, 0);
+		if ((MouseX >= 150) && (MouseX < 300) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bed_Active.png", 175, 0);
+		else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bed_Inactive.png", 175, 0);
+		if ((MouseX >= 900) && (MouseX < 1050) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Save_Active.png", 925, 0);
+		else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Save_Inactive.png", 925, 0);
+		if ((MouseX >= 1050) && (MouseX < 1200) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Exit_Active.png", 1075, 0);
+		else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Exit_Inactive.png", 1075, 0);
 	
-	// Draw the room icons
-	if ((MouseX >= 0) && (MouseX < 150) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Wardrobe_Active.png", 25, 0);
-	else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Wardrobe_Inactive.png", 25, 0);
-	if ((MouseX >= 150) && (MouseX < 300) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bed_Active.png", 175, 0);
-	else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Bed_Inactive.png", 175, 0);
-	if ((MouseX >= 900) && (MouseX < 1050) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Save_Active.png", 925, 0);
-	else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Save_Inactive.png", 925, 0);
-	if ((MouseX >= 1050) && (MouseX < 1200) && (MouseY >= 0) && (MouseY <= 600)) DrawImage(CurrentChapter + "/" + CurrentScreen + "/Exit_Active.png", 1075, 0);
-	else DrawImage(CurrentChapter + "/" + CurrentScreen + "/Exit_Inactive.png", 1075, 0);
+	}
 	
 }
 
 // Chapter 12 - After Class Dorm Click
 function C012_AfterClass_Dorm_Click() {
 
-	// Checks if the user clicks on any regular item
-	InventoryClick(GetClickedInventory(), CurrentChapter, CurrentScreen);
-	
-	// Opens the other screens of the dorm
-	if ((MouseX >= 0) && (MouseX < 150) && (MouseY >= 0) && (MouseY <= 600)) SetScene(CurrentChapter, "Wardrobe");
-	if ((MouseX >= 150) && (MouseX < 300) && (MouseY >= 0) && (MouseY <= 600)) SetScene(CurrentChapter, "Bed");
-	if ((MouseX >= 900) && (MouseX < 1050) && (MouseY >= 0) && (MouseY <= 600)) SaveMenu(CurrentChapter, "Dorm");
-	if ((MouseX >= 1050) && (MouseX < 1200) && (MouseY >= 0) && (MouseY <= 600)) SetScene(CurrentChapter, "DormExit");
+	// No clicking if the player is grounded
+	if (!GameLogQuery(CurrentChapter, "", "EventGrounded")) {
 
-	// Loads the player or other actors
-	if ((MouseX >= C012_AfterClass_Dorm_PlayerPos - 100) && (MouseX < C012_AfterClass_Dorm_PlayerPos + 100) && (MouseY >= 0) && (MouseY <= 600)) InventoryClick("Player", CurrentChapter, CurrentScreen);
+		// Checks if the user clicks on any regular item
+		InventoryClick(GetClickedInventory(), CurrentChapter, CurrentScreen);
+		
+		// Opens the other screens of the dorm
+		if ((MouseX >= 0) && (MouseX < 150) && (MouseY >= 0) && (MouseY <= 600)) SetScene(CurrentChapter, "Wardrobe");
+		if ((MouseX >= 150) && (MouseX < 300) && (MouseY >= 0) && (MouseY <= 600)) SetScene(CurrentChapter, "Bed");
+		if ((MouseX >= 900) && (MouseX < 1050) && (MouseY >= 0) && (MouseY <= 600)) SaveMenu(CurrentChapter, "Dorm");
+		if ((MouseX >= 1050) && (MouseX < 1200) && (MouseY >= 0) && (MouseY <= 600)) SetScene(CurrentChapter, "DormExit");
+		if ((MouseX >= C012_AfterClass_Dorm_PlayerPos - 100) && (MouseX < C012_AfterClass_Dorm_PlayerPos + 100) && (MouseY >= 0) && (MouseY <= 600)) InventoryClick("Player", CurrentChapter, CurrentScreen);
+	
+	}
+
+	// Loads the other actors
 	if ((MouseX >= C012_AfterClass_Dorm_PlayerPos + 100) && (MouseX < C012_AfterClass_Dorm_PlayerPos + 300) && (MouseY >= 0) && (MouseY <= 600) && (C012_AfterClass_Dorm_Guest.length >= 1)) SetScene(CurrentChapter, C012_AfterClass_Dorm_Guest[0]);
 	if ((MouseX >= C012_AfterClass_Dorm_PlayerPos + 300) && (MouseX < C012_AfterClass_Dorm_PlayerPos + 500) && (MouseY >= 0) && (MouseY <= 600) && (C012_AfterClass_Dorm_Guest.length >= 2)) SetScene(CurrentChapter, C012_AfterClass_Dorm_Guest[1]);
 	
diff --git a/C012_AfterClass/Sidney/B03E8420 b/C012_AfterClass/Sidney/B03E8420
new file mode 100644
index 0000000000..59f6e933d6
--- /dev/null
+++ b/C012_AfterClass/Sidney/B03E8420
@@ -0,0 +1,262 @@
+Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
+0,0,0,Common_ActorIsOwner,What's on your|mind Mistress?,Not much my little bitch.|(She checks her cell phone.),0,0,0,RandomSidneyDommeEvent()
+0,0,0,Common_ActorIsOwner,"Mistress, it's ok if|I change clothes?",Sure bitch.  Wear what you want.,0,0,0,IsChangingBlocked()
+0,5,0,,Would you like to|make love with me?,"No, I don't feel like it.|Let's do something else.",0,0,0,TestLove()
+0,0,5,!Common_ActorIsOwned,"Girl, you need|my protection.",I don't need protection from anyone.|(You need +20 submission to collar Sidney.),0,0,0,TestDomme()
+0,0,-5,!Common_ActorIsOwner,Miss Sidney.|I admire you.,"Don't talk like that, you sound like a loser.|(You need -20 submission to submit to Sidney.)",0,0,0,TestSub()
+0,0,0,Common_PlayerGagged,@Om nnnuoogn mh!,Oh yeah.  I fucking understood|what you said.  (She laughs.),0,0,0,TestUnbind()
+0,0,0,Common_PlayerGagged,(Hum a sexy song|and dance for fun.),Not now my little bitch.|(She checks her cell phone.),0,0,0,RandomSidneyDommeEvent()
+0,0,0,Common_PlayerRestrained,(Struggle in|your restrains.),"Nope, you're not getting out.|It's great to see you struggle.",0,0,0,TestUnbind()
+0,0,0,ChatAvail,I'd like to know|more about you.,"Ok, what would like to know?",500,0,0,StartChat()
+100,0,0,,TO DO,TO DO,100,0,0,
+200,0,0,,TO DO,TO DO,200,0,0,
+300,0,0,,I know!  I'm sorry.,(She sighs.)  They only way you won't get|killed is if I take you under my wing.,310,0,0,
+300,0,0,,School can be harsh.,(She sighs.)  They only way you won't get|killed is if I take you under my wing.,310,0,0,
+300,0,0,,Can you help me?,(She sighs.)  They only way you won't get|killed is if I take you under my wing.,320,0,0,
+310,0,0,,Under your wing?,"Yeah, if you're willing to submit to me.|I will protect you from now on.",320,0,0,
+310,0,0,,You will protect me?,"Yeah, if you're willing to submit to me.|I will protect you from now on.",320,0,0,
+310,0,0,,"Miss, are you sure?","Yeah, if you're willing to submit to me.|I will protect you from now on.",0,0,0,
+320,0,0,,I need to think first.|(Don't submit now.),"Sure, take your fucking time.",0,0,0,TestSubmit()
+320,0,0,!Common_ActorIsLover,I will submit Miss.|(Submit to Sidney.),"Good, you'll be my bitch then.|So bitch, get naked right now.",0,0,0,TestSubmit()
+320,0,0,Common_ActorIsLover,I will submit Miss.|(Submit to Sidney.),"You'll be my lover and my bitch then.|So my sexy bitch, get naked right now.",340,0,0,PlayerStrip()
+330,0,0,,Yes Miss.|(Strip naked.),(You strip down for Sidney and she smiles.)|Very good little bitch.  Now get on your knees.,330,0,0,
+330,0,0,,Why should I strip?,Cause you're my bitch|and you're going to strip.,0,0,0,
+330,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,350,0,0,"SetPlayerPose(""BackKneel"")"
+340,0,0,,Yes Miss Sidney.|(Get on your knees.),"Just like a bitch, you will|wear a collar for me.",350,0,0,"SetPlayerPose(""BackKneel"")"
+340,0,0,,My pleasure.|(Get on your knees.),"Just like a bitch, you will|wear a collar for me.",0,0,0,
+340,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,360,0,0,
+350,0,0,,I understand.,"This fucking collar will tell everyone|to backup, that you're my property.",360,0,0,
+350,0,0,,Very well.,"This fucking collar will tell everyone|to backup, that you're my property.",0,0,0,
+350,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,370,0,0,
+360,0,0,,Your property Miss?,"Yep, my own personal bitch.  And this|collar will be fucking locked on you.",370,0,0,
+360,0,0,,This will protect me?,I will protect you bitch.  And this|collar will be fucking locked on you.,0,0,0,
+360,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,380,0,0,
+370,0,0,,(Bow your head.),"Now say ""I'm your bitch"" and you'll be mine.|(She shows you a black collar and a padlock.)",380,0,0,
+370,0,0,,That's alright.,"Now say ""I'm your bitch"" and you'll be mine.|(She shows you a black collar and a padlock.)",0,0,0,
+370,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,390,0,-3,PlayerCollared()
+380,0,0,!Common_ActorIsLover,I'm your bitch.,"Damn right!  (She fastens the collar and locks it.)|From now on, you can call me ""Mistress"".",390,0,-3,PlayerCollared()
+380,0,0,Common_ActorIsLover,I'm your bitch.,"Damn right!  (She fastens the collar and locks it.)|From now on my love, you can call me ""Mistress"".",0,0,0,
+380,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,395,1,0,
+390,0,0,,I'm so happy!,That's pretty fucking awesome.|I'll protect you but never betray me.,395,1,0,
+390,0,0,,I know I'm|in good hands.,"You are, and that's fucking awesome.|I'll protect you but never betray me.",395,-1,0,
+390,0,0,,I don't feel|very good.,You'll get used to it.  Now remember.|I'll protect you but never betray me.,395,0,-1,
+390,0,0,,(Stay silent and|look at her feet.),That's pretty fucking awesome.|I'll protect you but never betray me.,395,0,1,
+390,0,0,,Is the collar supposed|to be that tight?,Don't complain or I'll punish you.|I'll protect you but never betray me.,0,0,-1,PlayerStandUp()
+395,0,0,,I will never|betray you Mistress.,Very good my sexy little bitch.|Now stand up and let's do something fun.,0,-1,0,PlayerStandUp()
+395,0,0,,Ok Sidney.,That's MISTRESS for you!  (She slaps you.)|Now stand up and let's do something fun.,0,0,0,PlayerStandUp()
+395,0,0,,Very good.,Now stand up and let's do something fun.,410,0,0,TestReleaseBeforeExit()
+400,0,0,Common_PlayerGagged,@UNGN MH NUUOGH!,(She laughs and leaves your dorm.),410,0,0,TestReleaseBeforeExit()
+400,0,0,Common_PlayerRestrained,Can you help me|before you go?,"Nope, I like you like that.|(She leaves your dorm.)",410,0,0,
+400,0,0,,Have fun!,I will.  (She leaves your dorm.),410,-1,0,
+400,0,0,,That sucks!|Don't go.,Fuck that.  (She leaves your dorm.),410,1,0,
+400,0,0,!Common_ActorIsOwner,Have a great|time Sidney.,Hell yeah!  (She leaves your dorm.),410,1,0,
+400,0,0,Common_ActorIsOwner,Have a great|time Mistress.,Hell yeah!  (She leaves your dorm.),410,0,0,
+400,0,0,,Wait!,I can't.  (She leaves your dorm.),410,0,1,
+400,0,0,!Common_ActorIsOwner,Next time I'll tie|you up so you'll stay.,Oh shit.  (She leaves your dorm.),410,0,-1,
+400,0,0,,(Bow your head.),Good girl.  (She leaves your dorm.),3090,0,0,"ForceChangePlayer(""Naked"")"
+500,0,0,,Do you have|many friends?,I have some friends and some enemies.,510,0,0,
+500,0,0,,You seem to have|lots of enemies.,"Yeah, I have some enemies.",510,0,1,
+500,0,0,,You seem to|be very popular.,I'm more popular than you but that's easy.|I have some friends and some enemies.,510,0,-1,
+510,0,0,,It's hard to believe|that you have enemies.,"Yeah, and my worst enemy is|my fucking roommate, that sucks.",520,1,0,
+510,0,0,,"Yeah, it's tough to|be loved by everyone.",The worst thing is that|my top enemy is my roommate.,520,0,0,
+510,0,0,,If you were kinder you|wouldn't have enemies.,Kinder?  Fuck that.  The worst thing|is that my top enemy is my roommate.,520,-1,0,
+520,0,0,,It's Amanda?,Yes and no.  It's her stupid|friend Sarah.  I hate her so much.,530,0,0,
+520,0,0,,It's Jennifer?,"Jennifer?  Fuck no it's not.|It's Sarah, I hate her so much,",530,-1,0,
+520,0,0,,It's Sarah?,Fuck yeah!  I hate her so much.,530,1,0,
+520,0,0,,Who is it?,"It's Sarah, I hate her so much.",530,0,0,
+530,0,0,,You should make|peace with her.,Peace?  No way!|I will crush her.,540,0,-1,
+530,0,0,,What will you do?,I will crush her.,540,0,0,
+530,0,0,,You need to|make her pay.,Oh fuck yeah!|I will crush her.,540,0,1,
+540,0,0,,How will you|do that?,"I don't know, I need a|good plan to humiliate her.",550,0,0,
+540,0,0,,You need a|plan first.,"Exactly, I need a fucking|good plan to humiliate her.",550,0,1,
+540,0,0,,This will not|end well.,You're not helping!  I need a|fucking good plan to humiliate her.,550,0,-1,
+540,0,0,,Crush her how?,"I don't know, I need a|good plan to humiliate her.",550,0,0,
+550,0,0,,I won't help you.,Fine!  I don't care.,0,-1,0,EndChat()
+550,0,0,,Good luck.,"Yeah, I'll need some fucking luck.",0,0,0,EndChat()
+550,0,0,,I will help you.,That's great!  If you find|a plan you need to tell me.,560,1,0,
+550,0,0,,Can I help|you Miss?,Absolutely!  If you find|a plan you need to tell me.,560,1,-1,
+560,0,0,,I will!  But you'll|need to follow it.,Deal!  This is fucking awesome.,0,0,1,EndChat()
+560,0,0,,Very well.,Revenge will be sweet.,0,0,0,EndChat()
+560,0,0,,"Yes, try not fuck up|in the meantime.",(She frowns and nods.)|Revenge will be sweet.,0,-1,1,EndChat()
+3000,0,0,,Yes Mistress.|(Strip naked.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Naked"")"
+3000,0,0,,(Nod slowly.)|(Strip naked.),Good girl.  (You change for Sidney.),3092,0,0,TestPunish()
+3000,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3000,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3090,0,0,"ForceChangePlayer(""Underwear"")"
+3010,0,0,,Yes Mistress.|(Get in your undies.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Underwear"")"
+3010,0,0,,(Nod slowly.)|(Get in your undies.),Good girl.  (You change for Sidney.),3092,0,0,TestPunish()
+3010,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3010,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3090,0,0,"ForceChangePlayer(""Clothed"")"
+3020,0,0,,Yes Mistress.|(Wear your uniform.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Clothed"")"
+3020,0,0,,(Nod slowly.)|(Wear your uniform.),Good girl.  (You change for Sidney.),3092,0,0,TestPunish()
+3020,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3020,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3090,0,0,"ForceChangePlayer(""RedBikini"")"
+3030,0,0,,Yes Mistress.|(Wear your bikini.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""RedBikini"")"
+3030,0,0,,(Nod slowly.)|(Wear your bikini.),Good girl.  (You change for Sidney.),3092,0,0,TestPunish()
+3030,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3030,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3090,0,0,"ForceChangePlayer(""WhiteLingerie"")"
+3040,0,0,,Yes Mistress.|(Wear your lingerie.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""WhiteLingerie"")"
+3040,0,0,,(Nod slowly.)|(Wear your lingerie.),Good girl.  (You change for Sidney.),3092,0,0,TestPunish()
+3040,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3040,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3092,0,0,TestBlockChanging()
+3090,0,0,,Do I look fine?,You're ok.  Now shut up for a second.|(She gets back on her phone to text.),3092,0,0,TestBlockChanging()
+3090,0,0,,Are you happy?,I can't complain.  Now shut up for a second.|(She gets back on her phone to text.),3092,0,0,TestBlockChanging()
+3090,0,0,,(Bow your head.),It's kind of great to have a bitch.|(She gets back on her phone to text.),3092,0,0,AllowLeave()
+3091,0,0,,I cannot change?|For how long?,Until I say otherwise.  Now shut up.|(She checks her phone and laughs.),3092,0,0,AllowLeave()
+3091,0,0,,(Nod slowly.),Stay like that until I say otherwise.|(She checks her phone and laughs.),3092,0,0,AllowLeave()
+3091,0,0,Common_PlayerGagged,@Eehp oheem!,Stay like that until I say otherwise.|(She checks her phone and laughs.),3092,0,0,AllowLeave()
+3091,0,0,,(Sulk.),"My bitch, my rules.  You stay like that until|I say otherwise.  (She checks her phone again.)",3092,0,0,AllowLeave()
+3091,0,0,,That's unfair!,"My bitch, my rules.  You stay like that until|I say otherwise.  (She checks her phone again.)",3190,0,0,"ForceRandomBondage(""Full"")"
+3100,0,0,,Yes Mistress.|(Show her your items.),(She checks your items|and use them on you.),3191,0,0,TestPunish()
+3100,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3190,0,0,"ForceRandomBondage(""Restrain"")"
+3110,0,0,,Yes Mistress.|(Show her your items.),(She checks your items|and use a restrain on you.),3191,0,0,TestPunish()
+3110,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3190,0,0,"ForceRandomBondage(""Gag"")"
+3120,0,0,,Yes Mistress.|(Show her your items.),(She checks your items|and use a gag on you.),3191,0,0,TestPunish()
+3120,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3191,0,0,AllowLeave()
+3130,0,0,,Thanks Mistress!,My pleasure bitch.|(She checks her phone.),3191,0,0,AllowLeave()
+3130,0,0,,(Nod politely.),Having a bitch rocks.|(She checks her phone.),3191,0,-1,ConfiscateKeys()
+3140,0,0,,Yes Mistress.|(Give your keys.),Good girl.  (She confiscates your|keys and checks on her phone.),3191,0,-1,ConfiscateKeys()
+3140,0,0,,(Bow your head and|give your keys.),Good girl.  (She confiscates your|keys and checks on her phone.),3191,0,1,TestPunish()
+3140,0,0,,No!  These|are my keys.,"Fine, shut up then.|(She checks her phone.)",3191,0,1,TestPunish()
+3140,0,0,,(Shake your head|no and refuse.),"Fine, get lost then.|(She checks her phone.)",3191,1,0,ConfiscateCrop()
+3150,0,0,,Yes Mistress.|(Give your crop.),Good bitch.  I'll use it on you someday.|(She takes your crop and checks on her phone.),3191,1,0,ConfiscateCrop()
+3150,0,0,,(Bow your head and|give your crop.),Good bitch.  I'll use it on you someday.|(She takes your crop and checks on her phone.),3191,-1,0,TestPunish()
+3150,0,0,,No!  It's not yours.,"Fine, shut up then.|(She checks her phone.)",3191,-1,0,TestPunish()
+3150,0,0,,(Shake your head|no and refuse.),"Fine, get lost then.|(She checks her phone.)",3161,0,0,
+3160,0,0,,Yes Mistress.|It's a kinky egg.,Great!  And it's going to|go right in your vagina.,3161,0,0,
+3160,0,0,,(Nod slowly.),Great!  And it's going to|go right in your vagina.,3161,0,0,
+3160,0,0,,(Shrug.),You know it is!  And it's going|to go right into your vagina.,3161,0,0,
+3160,0,0,,I'm not sure what|it's doing there.,Don't lie bitch!  It's going|to go right in your vagina.,3162,0,-1,InsertEgg()
+3161,0,0,,With my great|pleasure Mistress.,(She slides the egg inside of you.)|You're such a good little bitch.,3162,1,0,InsertEgg()
+3161,0,0,,If it pleases|you Mistress.,(She slides the egg inside of you.)|You're such a good little bitch.,3162,0,-1,InsertEgg()
+3161,0,0,,(Nod happily.),(She slides the egg inside of you.)|You're such a good little bitch.,3191,0,1,TestPunish()
+3161,0,0,,Fuck no!,"Fine, shut up then.|(She checks her phone.)",3191,-1,0,TestPunish()
+3161,0,0,,"No, please Mistress.|You cannot do that.","Fine, shut up then.|(She checks her phone.)",3191,0,0,TestPunish()
+3161,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3191,-1,0,AllowLeave()
+3162,0,0,HasEgg,We are now|egg sisters.,That's not fucking funny.|(She checks on her phone.),3191,0,0,AllowLeave()
+3162,0,0,,It tickles!,Enjoy the tickling bitch.|(She checks on her phone.),3191,0,0,AllowLeave()
+3162,0,0,,(Blush red.),Enjoy the egg bitch.|(She checks on her phone.),3191,0,0,AllowLeave()
+3190,0,0,!Common_PlayerRestrained,I'm sorry you didn't|found anything you like.,Find some better stuff next time.|(She gets back on her phone to text.),3191,0,0,AllowLeave()
+3190,0,0,Common_PlayerRestrained,Do you like to|see me restrained?,Fuck yeah.  Now shut up for a second.|(She gets back on her phone to text.),3191,0,0,AllowLeave()
+3190,0,0,Common_PlayerGagged,@Niighn mhim!,It's kind of great to have a bitch.|(She gets back on her phone to text.),3191,0,0,AllowLeave()
+3190,0,0,,(Bow your head.),It's kind of great to have a bitch.|(She gets back on her phone to text.),3201,0,0,"DoActivity(""Tickle"", 1, 0)"
+3200,0,0,,"Oh yes, I love|being tickled.",That's fucking great my little bitch.|(She pounces and starts to tickle you.),3201,0,0,"DoActivity(""Tickle"", -1, 0)"
+3200,0,0,,Not really.,We'll see about that my little bitch.|(She pounces and starts to tickle you.),3201,0,0,"DoActivity(""Tickle"", 0, 0)"
+3200,0,0,,Yes Mistress.|I'm ticklish.,That's fucking alright my little bitch.|(She pounces and starts to tickle you.),3291,0,0,TestPunish()
+3200,0,0,,I don't want|to be tickled.,"Fine, shut up then.|(She checks her phone.)",3201,0,0,"DoActivity(""Tickle"", 1, 0)"
+3200,0,0,,(Nod happily.),That's fucking great my little bitch.|(She pounces and starts to tickle you.),3201,0,0,"DoActivity(""Tickle"", 0, 0)"
+3200,0,0,,(Nod slowly.),That's fucking alright my little bitch.|(She pounces and starts to tickle you.),3201,0,0,"DoActivity(""Tickle"", -1, 0)"
+3200,0,0,,(Shake your head no.),We'll see about that my little bitch.|(She pounces and starts to tickle you.),3201,0,0,"DoActivity(""Tickle"", 1, 0)"
+3201,0,0,,Hheeeaaahhaha!,You're a great victim my bitch.|(She tickles you some more and laughs.),3201,0,0,"DoActivity(""Tickle"", -1, 0)"
+3201,0,0,,You're pretty|bad at this.,(She frowns and tickles you harder.),3201,0,0,"DoActivity(""Tickle"", 1, 0)"
+3201,0,0,,(Laugh out loud.),You're a great victim my bitch.|(She tickles you some more and laughs.),3201,0,0,"DoActivity(""Tickle"", 0, 0)"
+3201,0,0,,(Giggle lightly.),(She laughs and tickles you some.),3201,0,0,"DoActivity(""Tickle"", -1, 0)"
+3201,0,0,,(Pretend you|don't care.),(She frowns and tickles you harder.),3291,0,0,TestPunish()
+3201,0,0,,Stop it now!,Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
+3201,0,0,,(Grumble and|try to resist.),Fuck you then little bitch!|(She lets you go and checks her phone.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
+3210,0,0,,Yes Mistress.|I'm ok with it.,That's good my little bitch.|(She slaps you on the breast.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
+3210,0,0,,Not really.,You'll have to learn to love it my little bitch.|(She slaps you pretty hard on the breast.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
+3210,0,0,,"Oh yes, I'm|a pain slut.",That's fucking great my little bitch.|(She slaps you hard on the breast.),3291,0,0,TestPunish()
+3210,0,0,,I don't want|to be slapped.,"Fine, shut up then.|(She checks her phone.)",3211,0,0,"DoActivity(""Spank"", 1, 0)"
+3210,0,0,,(Nod happily.),That's fucking great my little bitch.|(She slaps you hard on the breast.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
+3210,0,0,,(Nod slowly.),That's good my little bitch.|(She slaps you on the breast.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
+3210,0,0,,(Shake your head no.),You'll have to learn to love it my little bitch.|(She slaps you pretty hard on the breast.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
+3211,0,0,,That's all|you've got?,So you think you're tough?|(She slaps your face harder.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
+3211,0,0,,(Pretend you|don't care.),So you think you're tough?|(She slaps your face harder.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
+3211,0,0,,More Mistress!|I've been bad.,You're a great victim my bitch.|(She slaps your face and laughs.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
+3211,0,0,,(Endure the pain.),This will teach you who's boss.|(She slaps your face and laughs.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
+3211,0,0,,(Take deep breaths.),This will teach you who's boss.|(She slaps your face and laughs.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
+3211,0,0,,(Moan of pleasure.),You're a great victim my bitch.|(She slaps your face and laughs.),3291,0,0,TestPunish()
+3211,0,0,,Stop it now!,Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
+3211,0,0,,(Grumble and|try to resist.),Fuck you then little bitch!|(She lets you go and checks her phone.),3221,0,0,"DoActivity(""Masturbate"", -1, 3222)"
+3220,0,0,,What does that|fucking mean?,It means I'll do what I want with it.|(She grabs your crotch forcefully.),3221,0,0,"DoActivity(""Masturbate"", 1, 3222)"
+3220,0,0,,Yes Mistress.|It's yours.,That's my good little slut.|(She grabs your crotch and smiles.),3221,0,0,"DoActivity(""Masturbate"", 0, 3222)"
+3220,0,0,,(Giggle shyly.),Don't be shy my little bitch.|(She grabs your crotch and smiles.),3291,0,0,TestPunish()
+3220,0,0,,No Mistress.|Don't say that.,"Fine, shut up then.|(She checks her phone.)",3221,0,0,"DoActivity(""Masturbate"", 0, 3222)"
+3220,0,0,,(Nod slowly.),That's good my little bitch.|(She grabs your crotch and smiles.),3221,0,0,"DoActivity(""Masturbate"", 1, 3222)"
+3220,0,0,,(Nod happily.),That's very good my little bitch.|(She grabs your crotch and smiles.),3221,0,0,"DoActivity(""Masturbate"", -1, 3222)"
+3220,0,0,,(Shake your head no.),Fuck yes girl.  It's my pussy.|(She grabs your crotch forcefully.),3221,0,0,"DoActivity(""Masturbate"", 0, 3222)"
+3221,0,0,,Miss Sidney.|Is that proper?,"Fuck yeah, cause this pussy is mine.|(She stares at you and masturbates you.)",3221,0,0,"DoActivity(""Masturbate"", -1, 3222)"
+3221,0,0,,Woah!  Calm down!,So you think you're in control?|(She masturbates you a little harder.),3221,0,0,"DoActivity(""Masturbate"", -1, 3222)"
+3221,0,0,,(Pretend you|don't care.),You really think you can resist me?|(She masturbates you a little harder.),3221,0,0,"DoActivity(""Masturbate"", 1, 3222)"
+3221,0,0,,Oh god Mistress!|I need that!,You're such a fucking slut.|(She masturbates you gently.),3221,0,0,"DoActivity(""Masturbate"", 1, 3222)"
+3221,0,0,,(Moan of pleasure.),You're such a fucking slut.|(She masturbates you gently.),3221,0,0,"DoActivity(""Masturbate"", 0, 3222)"
+3221,0,0,,(Take deep breaths.),"Always remember, this is mine.|(She stares at you and masturbates you.)",3291,0,0,TestPunish()
+3221,0,0,,Stop it now!,Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
+3221,0,0,,(Grumble and|try to resist.),Fuck you then little bitch!|(She lets you go and checks her phone.),3290,0,0,BegForOrgasm(true)
+3222,0,0,,Oh yes Mistress.|I need to cum.,Well you're not going to cum now.|You understand that I'm in control?,3290,0,0,BegForOrgasm(true)
+3222,0,0,,(Nod and beg|for an orgasm.),Well you're not going to cum now.|You understand that I'm in control?,3290,0,0,BegForOrgasm(false)
+3222,0,0,,No!  Please!|I'm ok Mistress.,Alright little bitch.  But you do|understand that this pussy is mine?,3290,0,0,BegForOrgasm(false)
+3222,0,0,,(Shake your head no.),Alright little bitch.  But you do|understand that this pussy is mine?,3291,1,0,AllowLeave()
+3223,0,0,,Oh wow!  That|was awesome.,"You're a great slut, but that's enough.|(She quickly picks her phone to text.)",3291,0,0,AllowLeave()
+3223,0,0,,(Tremble and try|to recuperate.),"That's enough bitch, rest for a while.|(She quickly picks her phone to text.)",3291,-1,1,AllowLeave()
+3223,0,0,,Fuck Sidney.|I needed that.,That's MISTRESS!  (She slaps you on|the face and gets back to her phone.),3291,0,0,AllowLeave()
+3223,0,0,Common_PlayerGagged,@UUUUUMPH!,"That's enough bitch, keep quiet.|(She picks her phone to text.)",3291,1,-1,AllowLeave()
+3223,0,0,,(Cuddle against|your Mistress.),You're a good bitch but give me some air.|(She quickly picks her phone to text.),3291,0,-1,AllowLeave()
+3223,0,0,,(Blush red.),Don't be shy of what you are little slut.|(She quickly picks her phone to text.),3291,-1,0,AllowLeave()
+3223,0,0,,That was rape!,Shut the fuck up!  (She slaps you on|the face and gets back to her phone.),3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3230,0,0,,Is it necessary?,Fuck yeah it's necessary!|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3230,0,0,,Will this hurt?,Only one way to know!|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3230,0,0,,Great!  I'm|a pain slut.,That's fucking great my little bitch.|(She whips you hard on the breast.),3291,0,0,TestPunish()
+3230,0,0,,I don't want|to try that.,"Fine, shut up then.|(She checks her phone.)",3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3230,0,0,,(Shake your head no.),You're not in control bitch!|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3230,0,0,,(Nod happily.),That's fucking great my little bitch.|(She whips you hard on the breast.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3230,0,0,,(Nod slowly.),Very good my little bitch.|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3231,0,0,,(Moan of pleasure.),You're a great victim my bitch.|(She whips your butt and laughs.),3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3231,0,0,,That's all|you've got?,So you think you're tough?|(She whips your leg really hard.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3231,0,0,,(Endure the pain.),This will teach you who's boss.|(She whips your back pretty hard.),3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3231,0,0,,(Pretend you|don't care.),So you think you're tough?|(She whips your leg really hard.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3231,0,0,,More Mistress!|I've been bad.,You're a great victim my bitch.|(She whips your butt and laughs.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3231,0,0,,(Take deep breaths.),This will teach you who's boss.|(She whips your back pretty hard.),3291,0,0,TestPunish()
+3231,0,0,,Stop it now!,Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
+3231,0,0,,(Grumble and|try to resist.),Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,AllowLeave()
+3290,0,0,,Yes Mistress.,I love having my own little bitch.|(She gets back on her phone to text.),3291,0,0,AllowLeave()
+3290,0,0,,(Nod and take|your breath.),It's kind of great to have a bitch.|(She gets back on her phone to text.),3291,0,0,AllowLeave()
+3290,0,0,,I understand.,I love having my own little bitch.|(She gets back on her phone to text.),3801,0,0,
+3800,0,0,,(Look surprised.),Don't act like you don't know.|You're not allowed to change!,3801,0,0,
+3800,0,0,,I was changing.,You're not allowed to change!,3801,0,0,
+3800,0,0,,(Bow your head.),You're not allowed to change!,3801,0,0,
+3800,0,0,,What do you|mean Mistress?,Don't act like you don't know.|You're not allowed to change!,3900,0,0,
+3801,0,0,,I wanted to be|pretty for you.,Fucking bitch!  I'll teach you to|follow the rules!. I'll punish you.,3900,0,0,
+3801,0,0,,I thought you|were kidding.,Fucking bitch!  I'll teach you to|follow the rules!. I'll punish you.,3900,0,0,
+3801,0,0,,I'm sorry Mistress.,Fucking bitch!  I'll teach you to|follow the rules!. I'll punish you.,3900,0,0,
+3801,0,0,,(Stay silent.),Fucking bitch!  I'll teach you to|follow the rules!. I'll punish you.,3900,0,0,
+3801,0,0,,(Look remorseful.),Fucking bitch!  I'll teach you to|follow the rules!. I'll punish you.,3901,-1,0,ReleaseBeforePunish()
+3900,0,0,,Punished?|For real?,That's fucking real.  Get naked!,3901,-1,-1,ReleaseBeforePunish()
+3900,0,0,,Yes Mistress.,I'll teach you.  Get naked!,3901,-1,-1,ReleaseBeforePunish()
+3900,0,0,,Punished?|Alright!,Stupid bitch.  Get naked!,3901,-1,0,ReleaseBeforePunish()
+3900,0,0,,(Nod slowly.),I'll teach you.  Get naked!,3901,-1,1,ReleaseBeforePunish()
+3900,0,0,,You can't do that!,Shut the fuck up and get naked.,3901,-1,1,ReleaseBeforePunish()
+3900,0,0,,(Shake your head no.),Stop resisting and get naked.,3903,0,0,"ForceChangePlayer(""Naked"")"
+3901,0,0,,"Alright, fine.|(Strip naked.)","(You slowly strip while she grins.)|Very good, your punishment can begin.",3903,0,0,"ForceChangePlayer(""Naked"")"
+3901,0,0,,(Nod politely.)|(Strip naked.),"(You slowly strip while she grins.)|Very good, your punishment can begin.",3903,0,-1,"ForceChangePlayer(""Naked"")"
+3901,0,0,,My pleasure.|(Strip naked.),"(You slowly strip while she grins.)|Very good, your punishment can begin.",3902,-1,1,
+3901,0,0,,(Shake your head no.),(She slaps your face pretty hard.)|Bitch!  I said GET NAKED!,3902,-1,1,
+3901,0,0,,I won't strip!,(She slaps your face pretty hard.)|Bitch!  I said GET NAKED!,3903,0,0,"ForceChangePlayer(""Naked"")"
+3902,0,0,,"Alright, fine.|(Strip naked.)","(You slowly strip while she grins.)|Very good, your punishment can begin.",3903,0,0,"ForceChangePlayer(""Naked"")"
+3902,0,0,,(Nod politely.)|(Strip naked.),"(You slowly strip while she grins.)|Very good, your punishment can begin.",3903,0,0,StartPunishment()
+3903,0,0,,Uh oh.,,3903,0,0,StartPunishment()
+3903,0,0,,(Take a deep breath.),,3903,0,0,StartPunishment()
+3903,0,0,,(Make puppy eyes.),,3903,0,0,StartPunishment()
+3903,0,0,,Yes Mistress.,,3911,0,0,
+3910,0,0,,Grounded?  What|does that mean?,I'll show you right now.|Put your arms behind your back.,3911,0,0,
+3910,0,0,,(Give a curious look.),Put your arms behind your back.,3911,0,0,
+3910,0,0,,"No, please.|I'll be good.",I'll force you to be good.|Put your arms behind your back.,3912,0,-1,RopePlayer()
+3911,0,0,,Yes Mistress.|(Put your arms back.),(She grabs your arms and ties them securely.)|Good bitch.  Now open your filthy mouth wide.,3912,0,0,RopePlayer()
+3911,0,0,,(Sigh and put|your arms back.),"(She grabs your arms and ties them securely.)|Alright bitch, open your filthy mouth wide.",3912,0,1,RopePlayer()
+3911,0,0,,Can we negotiate?,(She grabs your arms and ties them securely.)|Fuck no!  Now open your filthy mouth wide.,3913,0,0,GagPlayer()
+3912,0,0,,This is too tight.,Get used to it little bitch.|(She silences you with a gag.),3913,0,0,GagPlayer()
+3912,0,0,,You're very|good at this.,And I'm not finished.|(She silences you with a gag.),3913,-1,0,GagPlayer()
+3912,0,0,,Fuck that!|Don't gag me.,This should shut you up.|(She silences you with a gag.),3913,0,0,GagPlayer()
+3912,0,0,,(Struggle in|the rope.),You won't get out bitch.|(She silences you with a gag.),3913,0,0,GagPlayer()
+3912,0,0,,Please Mistress!|Don't gag me.,Begging won't work bitch.|(She silences you with a gag.),3913,1,0,GagPlayer()
+3912,0,0,,(Open wide.),That's a good little bitch.|(She silences you with a gag.),3914,0,0,"SetPlayerPose(""TwoRopesPunishment"")"
+3913,0,0,,(Stay silent.),(She forces you to kneel and wrap|more rope around your legs.),3914,0,0,"SetPlayerPose(""TwoRopesPunishment"")"
+3913,0,0,,(Bow your head.),(She forces you to kneel and wrap|more rope around your legs.),3914,0,0,"SetPlayerPose(""TwoRopesPunishment"")"
+3913,0,0,,@Mmhm ngggnm!,(She forces you to kneel and wrap|more rope around your legs.),3999,0,0,"EndPunishment(""Grounded"")"
+3914,0,0,,(Make pleading eyes.),You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),3999,0,0,"EndPunishment(""Grounded"")"
+3914,0,0,,(Sulk and grumble.),You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),3999,0,0,"EndPunishment(""Grounded"")"
+3914,0,0,,(Stare at the floor.),You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),3999,0,0,"EndPunishment(""Grounded"")"
+3914,0,0,,@Oouu lmu mpm!,You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),0,0,0,ReleasePlayer()
+3915,0,0,,(Nod yes.),Good bitch.  (She releases you.),3999,0,0,"EndPunishment(""Grounded"")"
+3915,0,0,,(Shake your head no.),Then you will stay grounded.|(She checks on her cell phone.),3915,0,0,
+3915,0,0,,@Aaehm!,That's a yes or a no?|I want a clear answer.,,,,
diff --git a/C012_AfterClass/Sidney/Intro_EN.csv b/C012_AfterClass/Sidney/Intro_EN.csv
index fab757b4f8..9ac36c0884 100644
--- a/C012_AfterClass/Sidney/Intro_EN.csv
+++ b/C012_AfterClass/Sidney/Intro_EN.csv
@@ -29,6 +29,13 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image
 400,0,0,,I need to go.|I'll see ya later.,Door.jpg
 400,0,0,Common_ActorIsOwner,Bitch!  I need to go.|I'll spank ya later.,Door.jpg
 410,0,0,,,Door.jpg
+500,0,0,,,Dorm.jpg
+510,0,0,,,Dorm.jpg
+520,0,0,,,Dorm.jpg
+530,0,0,,,Dorm.jpg
+540,0,0,,,Dorm.jpg
+550,0,0,,,Dorm.jpg
+560,0,0,,,Dorm.jpg
 3000,0,0,,"My bitch, I want you to get naked.",Dorm.jpg
 3000,0,0,Common_ActorIsLover,My sweet little bitch.|I want you to get naked.,Dorm.jpg
 3010,0,0,,"My bitch, I want to see|you in your underwear.",Dorm.jpg
@@ -48,6 +55,11 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image
 3120,0,0,,"My bitch, I want to check your items|so I can gag your fucking face.",Dorm.jpg
 3130,0,0,,"My bitch, I guess I can help you.|(She releases you and laughs.)",Dorm.jpg
 3140,0,0,,A fucking bitch should not|have keys.  I'll take them.,Dorm.jpg
+3150,0,0,,"Why the hell do you carry a crop?|This is not for you, I'll take it.",Dorm.jpg
+3160,0,0,,What the fuck?  Is that a|vibrating egg in your bag?,Dorm.jpg
+3160,0,0,HasEgg,(Sidney notices the vibrating egg in your bag.)|Fuck!  This is the same egg you used on me?,Dorm.jpg
+3161,0,0,,,Dorm.jpg
+3162,0,0,,,Dorm.jpg
 3190,0,0,,,Dorm.jpg
 3191,0,0,,,Dorm.jpg
 3200,0,0,,I have a question for you.|Are you fucking ticklish?,Dorm.jpg
@@ -58,6 +70,8 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image
 3221,0,0,,,Dorm.jpg
 3222,0,0,,(She masturbates and you feel like you're about|to climax.)   Does my little slut wants to cum now?,Dorm.jpg
 3223,0,0,,,DormOrgasm.jpg
+3230,0,0,,I've been itching to use|this crop on your ass.,Dorm.jpg
+3231,0,0,,,Dorm.jpg
 3290,0,0,,,Dorm.jpg
 3291,0,0,,,Dorm.jpg
 3800,0,0,,(Sidney drags you by the collar.)|Bitch!  What the fuck are you doing?,Dorm.jpg
@@ -66,4 +80,10 @@ Stage,LoveReq,SubReq,VarReq,IntroText,Image
 3901,0,0,,,Dorm.jpg
 3902,0,0,,,Dorm.jpg
 3903,0,0,,,Dorm.jpg
+3910,0,0,,COMMON_PLAYERNAME.  You're fucking grounded.,Dorm.jpg
+3911,0,0,,,Dorm.jpg
+3912,0,0,,,Dorm.jpg
+3913,0,0,,,Dorm.jpg
+3914,0,0,,,Dorm.jpg
+3915,0,0,,"So bitch, have you learned your lesson?",Dorm.jpg
 3999,0,0,,,Dorm.jpg
diff --git a/C012_AfterClass/Sidney/Script.js b/C012_AfterClass/Sidney/Script.js
index 6f668595dd..138ecfc39e 100644
--- a/C012_AfterClass/Sidney/Script.js
+++ b/C012_AfterClass/Sidney/Script.js
@@ -1,5 +1,7 @@
 var C012_AfterClass_Sidney_CurrentStage = 0;
 var C012_AfterClass_Sidney_IntroText = "";
+var C012_AfterClass_Sidney_HasEgg = false;
+var C012_AfterClass_Sidney_ChatAvail = false;
 
 // In her shorts, Sidney can have many poses when she talks
 function C012_AfterClass_Sidney_SetPose() {
@@ -20,18 +22,34 @@ function C012_AfterClass_Sidney_Load() {
 	LoadInteractions();
 	ActorLoad("Sidney", "Leave");
 	LeaveScreen = "Dorm";
+	C012_AfterClass_Sidney_HasEgg = ActorHasInventory("VibratingEgg");
 	C012_AfterClass_Sidney_SetPose();
+	C012_AfterClass_Sidney_ChatAvail = !GameLogQuery(CurrentChapter, CurrentActor, "ChatDone");
 	
 	// Loads the previous text if needed
 	if (C012_AfterClass_Sidney_IntroText != "") {
 		OverridenIntroText = C012_AfterClass_Sidney_IntroText;
 		C012_AfterClass_Sidney_IntroText = "";
 	} else {
+		
+		// If the player is grounded
+		if (GameLogQuery(CurrentChapter, CurrentActor, "EventGrounded")) {
+			
+			// Skip to the punishment end phase, no talking while being grounded
+			C012_AfterClass_Sidney_AllowLeave();
+			C012_AfterClass_Sidney_CurrentStage = 3999;
+			OverridenIntroText = GetText("StillGrounded");
 
-		// Makes sure the next random event can be triggered
-		if (!GameLogQuery(CurrentChapter, CurrentActor, "EventGeneric") && Common_ActorIsOwner)
-			if (Math.floor(Math.random() * 10) == 0)
-				C012_AfterClass_Sidney_RandomSidneyDommeEvent();
+		} else {
+
+			// Makes sure the next random event can be triggered
+			if (C012_AfterClass_Sidney_CurrentStage == 0)
+				if (CurrentText != null)
+					if (!GameLogQuery(CurrentChapter, CurrentActor, "EventGeneric") && Common_ActorIsOwner)
+						if (Math.floor(Math.random() * 10) == 0)
+							C012_AfterClass_Sidney_RandomSidneyDommeEvent();
+
+		}
 
 	}
 
@@ -78,6 +96,7 @@ function C012_AfterClass_Sidney_TestLove() {
 		var LoveChance = ActorGetValue(ActorLove) + PlayerGetSkillLevel("Seduction") * 2;
 		if (((LoveChance >= 12) && !GameLogQuery(CurrentChapter, "Sidney", "EnterDormFromPub")) || (LoveChance >= 25) || Common_ActorIsLover || Common_ActorIsOwned) {
 			C012_AfterClass_Sidney_CurrentStage = 100;
+			OverridenIntroText = "";
 		}		
 	} else C012_AfterClass_Sidney_GaggedAnswer();
 }
@@ -87,6 +106,7 @@ function C012_AfterClass_Sidney_TestDomme() {
 	if (!ActorIsGagged()) {
 		if (ActorGetValue(ActorSubmission) >= 20) {
 			C012_AfterClass_Sidney_CurrentStage = 200;
+			OverridenIntroText = "";
 		}
 	} else C012_AfterClass_Sidney_GaggedAnswer();
 }
@@ -140,8 +160,8 @@ function C012_AfterClass_Sidney_PlayerStrip() {
 }
 
 // Chapter 12 After Class - The player can strip for Sidney
-function C012_AfterClass_Sidney_KneelForSidney() {
-	Common_PlayerPose = "BackKneel";
+function C012_AfterClass_Sidney_SetPlayerPose(NewPose) {
+	Common_PlayerPose = NewPose;
 }
 
 // Chapter 12 After Class - When the player gets collared
@@ -251,8 +271,15 @@ function C012_AfterClass_Sidney_TestReleaseBeforeExit() {
 // Chapter 12 After Class - Sidney can confiscate the player keys
 function C012_AfterClass_Sidney_ConfiscateKeys() {
 	PlayerRemoveInventory("CuffsKey", 99);
-	ActorSetPose("CheckCellPhone");
-	LeaveIcon = "Leave";
+	GameLogAdd("HasCuffsKey");
+	C012_AfterClass_Sidney_AllowLeave();
+}
+
+// Chapter 12 After Class - Sidney can confiscate the player crop(s)
+function C012_AfterClass_Sidney_ConfiscateCrop() {
+	PlayerRemoveInventory("Crop", 99);
+	GameLogAdd("HasCrop");
+	C012_AfterClass_Sidney_AllowLeave();
 }
 
 // Chapter 12 After Class - Sidney can confiscate the player keys
@@ -290,9 +317,18 @@ function C012_AfterClass_Sidney_TestBlockChanging() {
 function C012_AfterClass_Sidney_ReleaseBeforePunish() {
 	ActorSetPose("ReadyToPunish");
 	if (Common_PlayerRestrained || Common_PlayerGagged) {
-		OverridenIntroText = GetText("ReleaseBeforePunish");
+		if (Common_PlayerNaked) {
+			C012_AfterClass_Sidney_CurrentStage = 3903;		
+			OverridenIntroText = GetText("ReleaseBeforePunishAlreadyNaked");
+		}
+		else OverridenIntroText = GetText("ReleaseBeforePunishNotNaked");
 		PlayerReleaseBondage();
 		CurrentTime = CurrentTime + 50000;
+	} else {
+		if (Common_PlayerNaked) {
+			C012_AfterClass_Sidney_CurrentStage = 3903;		
+			OverridenIntroText = GetText("PunishSinceNaked");
+		}		
 	}
 }
 
@@ -303,6 +339,58 @@ function C012_AfterClass_Sidney_ActorSetPose(NewPose) {
 
 // Chapter 12 After Class - Starts the punishment
 function C012_AfterClass_Sidney_StartPunishment() {
-	C012_AfterClass_Sidney_CurrentStage = 3999;
+	var PunishmentType = Math.floor(Math.random() * 1);
+	if (PunishmentType == 0) {
+		C012_AfterClass_Sidney_CurrentStage = 3910;
+		OverridenIntroText = "";
+	}
+}
+
+// Chapter 12 After Class - Sidney can tie up the player with her own rope
+function C012_AfterClass_Sidney_RopePlayer() {
+	PlayerLockInventory("Rope");
+	PlayerRemoveInventory("Rope", 1);
+	CurrentTime = CurrentTime + 50000;
+}
+
+// Chapter 12 After Class - Sidney can gag the player with her stuff
+function C012_AfterClass_Sidney_GagPlayer() {
+	PlayerRandomGag();
+	if (!Common_PlayerGagged) PlayerLockInventory("ClothGag");
+	CurrentTime = CurrentTime + 50000;
+}
+
+// Chapter 12 After Class - Sidney can use the egg on the player
+function C012_AfterClass_Sidney_InsertEgg() {
+	PlayerLockInventory("VibratingEgg");
+	PlayerRemoveInventory("VibratingEgg", 1);
+	CurrentTime = CurrentTime + 50000;
+}
+
+// Chapter 12 After Class - Ends the punishment and sets the duration between 30 minutes and 2 hours
+function C012_AfterClass_Sidney_EndPunishment(PunishmentType) {
+	GameLogAddTimer("Event" + PunishmentType, CurrentTime + 1800000 + Math.floor(Math.random() * 5400000));
 	C012_AfterClass_Sidney_AllowLeave();
-}
\ No newline at end of file
+}
+
+// Chapter 12 After Class - Ends any bondage and resets the pose
+function C012_AfterClass_Sidney_ReleasePlayer() {
+	Common_PlayerPose = "";
+	ActorSetPose("");
+	PlayerReleaseBondage();
+	LeaveIcon = "Leave";
+	CurrentTime = CurrentTime + 50000;
+}
+
+// Chapter 12 After Class - Flags the chat as done and doesn't allow the player to leave
+function C012_AfterClass_Sidney_StartChat() {
+	ActorSetPose("");
+	GameLogAdd("ChatDone");
+	LeaveIcon = "";
+	C012_AfterClass_Sidney_ChatAvail = false;
+}
+
+// Chapter 12 After Class - Ends the chat with Sidney
+function C012_AfterClass_Sidney_EndChat() {
+	LeaveIcon = "Leave";
+}
diff --git a/C012_AfterClass/Sidney/Stage_EN.csv b/C012_AfterClass/Sidney/Stage_EN.csv
index bf73d31c97..24d26ea124 100644
--- a/C012_AfterClass/Sidney/Stage_EN.csv
+++ b/C012_AfterClass/Sidney/Stage_EN.csv
@@ -7,8 +7,9 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 0,0,0,Common_PlayerGagged,@Om nnnuoogn mh!,Oh yeah.  I fucking understood|what you said.  (She laughs.),0,0,0,TestUnbind()
 0,0,0,Common_PlayerGagged,(Hum a sexy song|and dance for fun.),Not now my little bitch.|(She checks her cell phone.),0,0,0,RandomSidneyDommeEvent()
 0,0,0,Common_PlayerRestrained,(Struggle in|your restrains.),"Nope, you're not getting out.|It's great to see you struggle.",0,0,0,TestUnbind()
-100,0,0,,TO DO,TO DO,0,0,0,
-200,0,0,,TO DO,TO DO,0,0,0,
+0,0,0,ChatAvail,I'd like to know|more about you.,"Ok, what would like to know?",500,0,0,StartChat()
+100,0,0,,TO DO,TO DO,100,0,0,
+200,0,0,,TO DO,TO DO,200,0,0,
 300,0,0,,I know!  I'm sorry.,(She sighs.)  They only way you won't get|killed is if I take you under my wing.,310,0,0,
 300,0,0,,School can be harsh.,(She sighs.)  They only way you won't get|killed is if I take you under my wing.,310,0,0,
 300,0,0,,Can you help me?,(She sighs.)  They only way you won't get|killed is if I take you under my wing.,310,0,0,
@@ -21,8 +22,8 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 330,0,0,,Yes Miss.|(Strip naked.),(You strip down for Sidney and she smiles.)|Very good little bitch.  Now get on your knees.,340,0,0,PlayerStrip()
 330,0,0,,Why should I strip?,Cause you're my bitch|and you're going to strip.,330,0,0,
 330,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,0,0,0,
-340,0,0,,Yes Miss Sidney.|(Get on your knees.),"Just like a bitch, you will|wear a collar for me.",350,0,0,KneelForSidney()
-340,0,0,,My pleasure.|(Get on your knees.),"Just like a bitch, you will|wear a collar for me.",350,0,0,KneelForSidney()
+340,0,0,,Yes Miss Sidney.|(Get on your knees.),"Just like a bitch, you will|wear a collar for me.",350,0,0,"SetPlayerPose(""BackKneel"")"
+340,0,0,,My pleasure.|(Get on your knees.),"Just like a bitch, you will|wear a collar for me.",350,0,0,"SetPlayerPose(""BackKneel"")"
 340,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,0,0,0,
 350,0,0,,I understand.,"This fucking collar will tell everyone|to backup, that you're my property.",360,0,0,
 350,0,0,,Very well.,"This fucking collar will tell everyone|to backup, that you're my property.",360,0,0,
@@ -33,8 +34,8 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 370,0,0,,(Bow your head.),"Now say ""I'm your bitch"" and you'll be mine.|(She shows you a black collar and a padlock.)",380,0,0,
 370,0,0,,That's alright.,"Now say ""I'm your bitch"" and you'll be mine.|(She shows you a black collar and a padlock.)",380,0,0,
 370,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,0,0,0,
-380,0,0,!Common_ActorIsLover,I'm your bitch.,"Damn right!  (She fastens the collar and locks it.)|From now on, you can call me ""Mistress"".",390,0,-3,PlayerCollared()
-380,0,0,Common_ActorIsLover,I'm your bitch.,"Damn right!  (She fastens the collar and locks it.)|From now on my love, you can call me ""Mistress"".",390,0,-3,PlayerCollared()
+380,0,0,!Common_ActorIsLover,I'm your bitch.,"Damn right!  (She fastens the collar and locks it.)|From now on, you will call me ""Mistress"".",390,0,-3,PlayerCollared()
+380,0,0,Common_ActorIsLover,I'm your bitch.,"Damn right!  (She fastens the collar and locks it.)|From now on my love, you will call me ""Mistress"".",390,0,-3,PlayerCollared()
 380,0,0,,Stop!  This is|going too far.,Fine.  But I won't protect you.,0,0,0,
 390,0,0,,I'm so happy!,That's pretty fucking awesome.|I'll protect you but never betray me.,395,1,0,
 390,0,0,,I know I'm|in good hands.,"You are, and that's fucking awesome.|I'll protect you but never betray me.",395,1,0,
@@ -53,21 +54,50 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 400,0,0,,Wait!,I can't.  (She leaves your dorm.),410,0,0,
 400,0,0,!Common_ActorIsOwner,Next time I'll tie|you up so you'll stay.,Oh shit.  (She leaves your dorm.),410,0,1,
 400,0,0,,(Bow your head.),Good girl.  (She leaves your dorm.),410,0,-1,
+500,0,0,,Do you have|many friends?,I have some friends and some enemies.,510,0,0,
+500,0,0,,You seem to have|lots of enemies.,"Yeah, I have some enemies.",510,0,1,
+500,0,0,,You seem to|be very popular.,I'm more popular than you but that's easy.|I have some friends and some enemies.,510,0,-1,
+510,0,0,,It's hard to believe|that you have enemies.,"Yeah, and my worst enemy is|my fucking roommate, that sucks.",520,1,0,
+510,0,0,,"Yeah, it's tough to|be loved by everyone.",The worst thing is that|my top enemy is my roommate.,520,0,0,
+510,0,0,,If you were kinder you|wouldn't have enemies.,Kinder?  Fuck that.  The worst thing|is that my top enemy is my roommate.,520,-1,0,
+520,0,0,,It's Amanda?,Yes and no.  It's her stupid|friend Sarah.  I hate her so much.,530,0,0,
+520,0,0,,It's Jennifer?,"Jennifer?  Fuck no it's not.|It's Sarah, I hate her so much,",530,-1,0,
+520,0,0,,It's Sarah?,Fuck yeah!  I hate her so much.,530,1,0,
+520,0,0,,Who is it?,"It's Sarah, I hate her so much.",530,0,0,
+530,0,0,,You should make|peace with her.,Peace?  No way!|I will crush her.,540,0,-1,
+530,0,0,,What will you do?,I will crush her.,540,0,0,
+530,0,0,,You need to|make her pay.,Oh fuck yeah!|I will crush her.,540,0,1,
+540,0,0,,How will you|do that?,"I don't know, I need a|good plan to humiliate her.",550,0,0,
+540,0,0,,You need a|plan first.,"Exactly, I need a fucking|good plan to humiliate her.",550,0,1,
+540,0,0,,This will not|end well.,You're not helping!  I need a|fucking good plan to humiliate her.,550,0,-1,
+540,0,0,,Crush her how?,"I don't know, I need a|good plan to humiliate her.",550,0,0,
+550,0,0,,I won't help you.,Fine!  I don't care.,0,-1,0,EndChat()
+550,0,0,,Good luck.,"Yeah, I'll need some fucking luck.",0,0,0,EndChat()
+550,0,0,,I will help you.,That's great!  If you find|a plan you need to tell me.,560,1,0,
+550,0,0,,Can I help|you Miss?,Absolutely!  If you find|a plan you need to tell me.,560,1,-1,
+560,0,0,,I will!  But you'll|need to follow it.,Deal!  This is fucking awesome.,0,0,1,EndChat()
+560,0,0,,Very well.,Revenge will be sweet.,0,0,0,EndChat()
+560,0,0,,"Yes, try not fuck up|in the meantime.",(She frowns and nods.)|Revenge will be sweet.,0,-1,1,EndChat()
 3000,0,0,,Yes Mistress.|(Strip naked.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Naked"")"
 3000,0,0,,(Nod slowly.)|(Strip naked.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Naked"")"
 3000,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3000,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3092,0,0,TestPunish()
 3010,0,0,,Yes Mistress.|(Get in your undies.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Underwear"")"
 3010,0,0,,(Nod slowly.)|(Get in your undies.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Underwear"")"
 3010,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3010,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3092,0,0,TestPunish()
 3020,0,0,,Yes Mistress.|(Wear your uniform.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Clothed"")"
 3020,0,0,,(Nod slowly.)|(Wear your uniform.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""Clothed"")"
 3020,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3020,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3092,0,0,TestPunish()
 3030,0,0,,Yes Mistress.|(Wear your bikini.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""RedBikini"")"
 3030,0,0,,(Nod slowly.)|(Wear your bikini.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""RedBikini"")"
 3030,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3030,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3092,0,0,TestPunish()
 3040,0,0,,Yes Mistress.|(Wear your lingerie.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""WhiteLingerie"")"
 3040,0,0,,(Nod slowly.)|(Wear your lingerie.),Good girl.  (You change for Sidney.),3090,0,0,"ForceChangePlayer(""WhiteLingerie"")"
 3040,0,0,,I don't want|to do that.,"Fine, shut up then.|(She checks her phone.)",3092,0,0,TestPunish()
+3040,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3092,0,0,TestPunish()
 3090,0,0,,Do I look fine?,You're ok.  Now shut up for a second.|(She gets back on her phone to text.),3092,0,0,TestBlockChanging()
 3090,0,0,,Are you happy?,I can't complain.  Now shut up for a second.|(She gets back on her phone to text.),3092,0,0,TestBlockChanging()
 3090,0,0,,(Bow your head.),It's kind of great to have a bitch.|(She gets back on her phone to text.),3092,0,0,TestBlockChanging()
@@ -87,7 +117,24 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 3140,0,0,,Yes Mistress.|(Give your keys.),Good girl.  (She confiscates your|keys and checks on her phone.),3191,0,-1,ConfiscateKeys()
 3140,0,0,,(Bow your head and|give your keys.),Good girl.  (She confiscates your|keys and checks on her phone.),3191,0,-1,ConfiscateKeys()
 3140,0,0,,No!  These|are my keys.,"Fine, shut up then.|(She checks her phone.)",3191,0,1,TestPunish()
-3140,0,0,,(Shake your head|no and refuse.),"Fine, shut up then.|(She checks her phone.)",3191,0,1,TestPunish()
+3140,0,0,,(Shake your head|no and refuse.),"Fine, get lost then.|(She checks her phone.)",3191,0,1,TestPunish()
+3150,0,0,,Yes Mistress.|(Give your crop.),Good bitch.  I'll use it on you someday.|(She takes your crop and checks on her phone.),3191,1,0,ConfiscateCrop()
+3150,0,0,,(Bow your head and|give your crop.),Good bitch.  I'll use it on you someday.|(She takes your crop and checks on her phone.),3191,1,0,ConfiscateCrop()
+3150,0,0,,No!  It's not yours.,"Fine, shut up then.|(She checks her phone.)",3191,-1,0,TestPunish()
+3150,0,0,,(Shake your head|no and refuse.),"Fine, get lost then.|(She checks her phone.)",3191,-1,0,TestPunish()
+3160,0,0,,Yes Mistress.|It's a kinky egg.,Great!  And it's going to|go right in your vagina.,3161,0,0,
+3160,0,0,,(Nod slowly.),Great!  And it's going to|go right in your vagina.,3161,0,0,
+3160,0,0,,(Shrug.),You know it is!  And it's going|to go right into your vagina.,3161,0,0,
+3160,0,0,,I'm not sure what|it's doing there.,Don't lie bitch!  It's going|to go right in your vagina.,3161,0,0,
+3161,0,0,,With my great|pleasure Mistress.,(She slides the egg inside of you.)|You're such a good little bitch.,3162,0,-1,InsertEgg()
+3161,0,0,,If it pleases|you Mistress.,(She slides the egg inside of you.)|You're such a good little bitch.,3162,1,0,InsertEgg()
+3161,0,0,,(Nod happily.),(She slides the egg inside of you.)|You're such a good little bitch.,3162,0,-1,InsertEgg()
+3161,0,0,,Fuck no!,"Fine, shut up then.|(She checks her phone.)",3191,0,1,TestPunish()
+3161,0,0,,"No, please Mistress.|You cannot do that.","Fine, shut up then.|(She checks her phone.)",3191,-1,0,TestPunish()
+3161,0,0,,(Shake your head no.),"Fine, get lost then.|(She checks her phone.)",3191,0,0,TestPunish()
+3162,0,0,HasEgg,We are now|egg sisters.,That's not fucking funny.|(She checks on her phone.),3191,-1,0,AllowLeave()
+3162,0,0,,It tickles!,Enjoy the tickling bitch.|(She checks on her phone.),3191,0,0,AllowLeave()
+3162,0,0,,(Blush red.),Enjoy the egg bitch.|(She checks on her phone.),3191,0,0,AllowLeave()
 3190,0,0,!Common_PlayerRestrained,I'm sorry you didn't|found anything you like.,Find some better stuff next time.|(She gets back on her phone to text.),3191,0,0,AllowLeave()
 3190,0,0,Common_PlayerRestrained,Do you like to|see me restrained?,Fuck yeah.  Now shut up for a second.|(She gets back on her phone to text.),3191,0,0,AllowLeave()
 3190,0,0,Common_PlayerGagged,@Niighn mhim!,It's kind of great to have a bitch.|(She gets back on her phone to text.),3191,0,0,AllowLeave()
@@ -106,13 +153,13 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 3201,0,0,,(Pretend you|don't care.),(She frowns and tickles you harder.),3201,0,0,"DoActivity(""Tickle"", -1, 0)"
 3201,0,0,,Stop it now!,Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
 3201,0,0,,(Grumble and|try to resist.),Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
-3210,0,0,,Yes Mistress.|I'm ok with it.,That's good my little bitch.|(She slaps you on your breast.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
-3210,0,0,,Not really.,You'll have to learn to love it my little bitch.|(She slaps you pretty hard on your breast.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
-3210,0,0,,"Oh yes, I'm|a pain slut.",That's fucking great my little bitch.|(She slaps you hard on your breast.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
+3210,0,0,,Yes Mistress.|I'm ok with it.,That's good my little bitch.|(She slaps you on the breast.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
+3210,0,0,,Not really.,You'll have to learn to love it my little bitch.|(She slaps you pretty hard on the breast.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
+3210,0,0,,"Oh yes, I'm|a pain slut.",That's fucking great my little bitch.|(She slaps you hard on the breast.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
 3210,0,0,,I don't want|to be slapped.,"Fine, shut up then.|(She checks her phone.)",3291,0,0,TestPunish()
-3210,0,0,,(Nod happily.),That's fucking great my little bitch.|(She slaps you hard on your breast.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
-3210,0,0,,(Nod slowly.),That's good my little bitch.|(She slaps you on your breast.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
-3210,0,0,,(Shake your head no.),You'll have to learn to love it my little bitch.|(She slaps you pretty hard on your breast.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
+3210,0,0,,(Nod happily.),That's fucking great my little bitch.|(She slaps you hard on the breast.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
+3210,0,0,,(Nod slowly.),That's good my little bitch.|(She slaps you on the breast.),3211,0,0,"DoActivity(""Spank"", 0, 0)"
+3210,0,0,,(Shake your head no.),You'll have to learn to love it my little bitch.|(She slaps you pretty hard on the breast.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
 3211,0,0,,That's all|you've got?,So you think you're tough?|(She slaps your face harder.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
 3211,0,0,,(Pretend you|don't care.),So you think you're tough?|(She slaps your face harder.),3211,0,0,"DoActivity(""Spank"", -1, 0)"
 3211,0,0,,More Mistress!|I've been bad.,You're a great victim my bitch.|(She slaps your face and laughs.),3211,0,0,"DoActivity(""Spank"", 1, 0)"
@@ -147,6 +194,21 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 3223,0,0,,(Cuddle against|your Mistress.),You're a good bitch but give me some air.|(She quickly picks her phone to text.),3291,1,-1,AllowLeave()
 3223,0,0,,(Blush red.),Don't be shy of what you are little slut.|(She quickly picks her phone to text.),3291,0,-1,AllowLeave()
 3223,0,0,,That was rape!,Shut the fuck up!  (She slaps you on|the face and gets back to her phone.),3291,-1,0,AllowLeave()
+3230,0,0,,Is it necessary?,Fuck yeah it's necessary!|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3230,0,0,,Will this hurt?,Only one way to know!|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3230,0,0,,Great!  I'm|a pain slut.,That's fucking great my little bitch.|(She whips you hard on the breast.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3230,0,0,,I don't want|to try that.,"Fine, shut up then.|(She checks her phone.)",3291,0,0,TestPunish()
+3230,0,0,,(Shake your head no.),You're not in control bitch!|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3230,0,0,,(Nod happily.),That's fucking great my little bitch.|(She whips you hard on the breast.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3230,0,0,,(Nod slowly.),Very good my little bitch.|(She whips you on the breast.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3231,0,0,,(Moan of pleasure.),You're a great victim my bitch.|(She whips your butt and laughs.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3231,0,0,,That's all|you've got?,So you think you're tough?|(She whips your leg really hard.),3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3231,0,0,,(Endure the pain.),This will teach you who's boss.|(She whips your back pretty hard.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3231,0,0,,(Pretend you|don't care.),So you think you're tough?|(She whips your leg really hard.),3231,0,0,"DoActivity(""Crop"", -1, 0)"
+3231,0,0,,More Mistress!|I've been bad.,You're a great victim my bitch.|(She whips your butt and laughs.),3231,0,0,"DoActivity(""Crop"", 1, 0)"
+3231,0,0,,(Take deep breaths.),This will teach you who's boss.|(She whips your back pretty hard.),3231,0,0,"DoActivity(""Crop"", 0, 0)"
+3231,0,0,,Stop it now!,Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
+3231,0,0,,(Grumble and|try to resist.),Fuck you then little bitch!|(She lets you go and checks her phone.),3291,0,0,TestPunish()
 3290,0,0,,Yes Mistress.,I love having my own little bitch.|(She gets back on her phone to text.),3291,0,0,AllowLeave()
 3290,0,0,,(Nod and take|your breath.),It's kind of great to have a bitch.|(She gets back on her phone to text.),3291,0,0,AllowLeave()
 3290,0,0,,I understand.,I love having my own little bitch.|(She gets back on her phone to text.),3291,0,0,AllowLeave()
@@ -173,6 +235,28 @@ Stage,LoveReq,SubReq,VarReq,Interaction,Result,NextStage,LoveMod,SubMod,Function
 3902,0,0,,"Alright, fine.|(Strip naked.)","(You slowly strip while she grins.)|Very good, your punishment can begin.",3903,0,0,"ForceChangePlayer(""Naked"")"
 3902,0,0,,(Nod politely.)|(Strip naked.),"(You slowly strip while she grins.)|Very good, your punishment can begin.",3903,0,0,"ForceChangePlayer(""Naked"")"
 3903,0,0,,Uh oh.,,3903,0,0,StartPunishment()
-3903,0,0,,(Take deep breaths.),,3903,0,0,StartPunishment()
+3903,0,0,,(Take a deep breath.),,3903,0,0,StartPunishment()
 3903,0,0,,(Make puppy eyes.),,3903,0,0,StartPunishment()
 3903,0,0,,Yes Mistress.,,3903,0,0,StartPunishment()
+3910,0,0,,Grounded?  What|does that mean?,I'll show you right now.|Put your arms behind your back.,3911,0,0,
+3910,0,0,,(Give a curious look.),Put your arms behind your back.,3911,0,0,
+3910,0,0,,"No, please.|I'll be good.",I'll force you to be good.|Put your arms behind your back.,3911,0,0,
+3911,0,0,,Yes Mistress.|(Put your arms back.),(She grabs your arms and ties them securely.)|Good bitch.  Now open your filthy mouth wide.,3912,0,-1,RopePlayer()
+3911,0,0,,(Sigh and put|your arms back.),"(She grabs your arms and ties them securely.)|Alright bitch, open your filthy mouth wide.",3912,0,0,RopePlayer()
+3911,0,0,,Can we negotiate?,(She grabs your arms and ties them securely.)|Fuck no!  Now open your filthy mouth wide.,3912,0,1,RopePlayer()
+3912,0,0,,This is too tight.,Get used to it little bitch.|(She silences you with a gag.),3913,0,0,GagPlayer()
+3912,0,0,,You're very|good at this.,And I'm not finished.|(She silences you with a gag.),3913,0,0,GagPlayer()
+3912,0,0,,Fuck that!|Don't gag me.,This should shut you up.|(She silences you with a gag.),3913,-1,0,GagPlayer()
+3912,0,0,,(Struggle in|the rope.),You won't get out bitch.|(She silences you with a gag.),3913,0,0,GagPlayer()
+3912,0,0,,Please Mistress!|Don't gag me.,Begging won't work bitch.|(She silences you with a gag.),3913,0,0,GagPlayer()
+3912,0,0,,(Open wide.),That's a good little bitch.|(She silences you with a gag.),3913,1,0,GagPlayer()
+3913,0,0,,(Stay silent.),(She forces you to kneel and wrap|more rope around your legs.),3914,0,0,"SetPlayerPose(""TwoRopesPunishment"")"
+3913,0,0,,(Bow your head.),(She forces you to kneel and wrap|more rope around your legs.),3914,0,0,"SetPlayerPose(""TwoRopesPunishment"")"
+3913,0,0,,@Mmhm ngggnm!,(She forces you to kneel and wrap|more rope around your legs.),3914,0,0,"SetPlayerPose(""TwoRopesPunishment"")"
+3914,0,0,,(Make pleading eyes.),You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),3999,0,0,"EndPunishment(""Grounded"")"
+3914,0,0,,(Sulk and grumble.),You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),3999,0,0,"EndPunishment(""Grounded"")"
+3914,0,0,,(Stare at the floor.),You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),3999,0,0,"EndPunishment(""Grounded"")"
+3914,0,0,,@Oouu lmu mpm!,You will stay grounded until I say otherwise.|(She gets her cell phone and starts to text.),3999,0,0,"EndPunishment(""Grounded"")"
+3915,0,0,,(Nod yes.),Good bitch.  (She releases you.),0,0,0,ReleasePlayer()
+3915,0,0,,(Shake your head no.),Then you will stay grounded.|(She checks on her cell phone.),3999,0,0,"EndPunishment(""Grounded"")"
+3915,0,0,,@Aaehm!,That's a yes or a no?|I want a clear answer.,3915,0,0,
diff --git a/C012_AfterClass/Sidney/Text_EN.csv b/C012_AfterClass/Sidney/Text_EN.csv
index 439eebafc3..ab45b10aa4 100644
--- a/C012_AfterClass/Sidney/Text_EN.csv
+++ b/C012_AfterClass/Sidney/Text_EN.csv
@@ -9,9 +9,12 @@ EventRestrain,3110
 EventGag,3120
 EventRelease,3130
 EventConfiscateKeys,3140
+EventConfiscateCrop,3150
+EventVibratingEgg,3160
 EventTickle,3200
 EventSpank,3210
 EventMasturbate,3220
+EventCrop,3230
 GaggedAnswer1,Ummgh ngh!
 GaggedAnswer2,(She mumbles something in the gag.)
 GaggedAnswer3,Ooooomp ohm mohmm!
@@ -31,4 +34,8 @@ ReleaseBeforeExit,Let me help you before I run.|(She releases you and leaves.)
 MasturbatePlayerOrgasm,"Your wish is granted fucking bitch!  Cum slut.|(She masturbate you fiercly, making you climax.)"
 MasturbatePlayerOrgasmForced,"You will cum anyway bitch!  Cum for me slut.|(She masturbate you fiercly, making you climax.)"
 ChangingIsBlocked,"No bitch, you're not|allowed to change."
-ReleaseBeforePunish,(She releases you and stares at you.)|Alright little bitch!  Get naked.
+ReleaseBeforePunishNotNaked,(She releases you and stares at you.)|Alright little bitch!  Get naked.
+ReleaseBeforePunishAlreadyNaked,(She releases you and stares at you.)|Alright bitch!  Your punishment can begin.
+PunishSinceNaked,"Since you're already naked,|your punishment can begin."
+StillGrounded,"(Sidney ignores you and checks her phone.|You need to wait, you're still grounded.)"
+GroundingEndForLeaving,I need to go bitch.  I'll spank ya later.|You're not grounded anymore.
diff --git a/Event.js b/Event.js
index 71082791e2..019147c30f 100644
--- a/Event.js
+++ b/Event.js
@@ -2,7 +2,7 @@ var EventLastRandomType = "";
 var EventActivityCurrent = "";
 var EventActivityCount = 0;
 var EventActivityMaxCount = 0;
-var EventList = ["Naked", "Underwear", "SchoolUniform", "RedBikini", "WhiteLingerie", "FullBondage", "Restrain", "Gag", "Release", "ConfiscateKeys", "Tickle", "Spank", "Masturbate"];
+var EventList = ["Naked", "Underwear", "SchoolUniform", "RedBikini", "WhiteLingerie", "FullBondage", "Restrain", "Gag", "Release", "ConfiscateKeys", "ConfiscateCrop", "VibratingEgg", "Tickle", "Spank", "Masturbate", "Crop"];
 
 // Returns TRUE if the event is accepted
 function EventRandomChance(EventChanceModifier) {
@@ -50,11 +50,14 @@ function EventRandomPlayerSubmissive() {
 			if ((EventType == "Restrain") && !Common_PlayerRestrained) Result = EventPlayerSubmissive(EventStage);
 			if ((EventType == "Gag") && !Common_PlayerGagged) Result = EventPlayerSubmissive(EventStage);
 			if ((EventType == "Release") && Common_PlayerRestrained) { Result = EventPlayerSubmissive(EventStage); PlayerReleaseBondage(); }
+			if ((EventType == "VibratingEgg") && PlayerHasInventory("VibratingEgg") && !PlayerHasLockedInventory("VibratingEgg") && !Common_PlayerChaste) Result = EventPlayerSubmissive(EventStage);
 			if ((EventType == "ConfiscateKeys") && PlayerHasInventory("CuffsKey")) Result = EventPlayerSubmissive(EventStage);
+			if ((EventType == "ConfiscateCrop") && PlayerHasInventory("Crop")) Result = EventPlayerSubmissive(EventStage);
 			if (EventType == "Tickle") Result = EventPlayerSubmissive(EventStage);
 			if (EventType == "Spank") Result = EventPlayerSubmissive(EventStage);
 			if ((EventType == "Masturbate") && !Common_PlayerChaste) Result = EventPlayerSubmissive(EventStage);
-		
+			if ((EventType == "Crop") && (PlayerHasInventory("Crop") || GameLogQuery("", Common_PlayerOwner, "HasCrop"))) Result = EventPlayerSubmissive(EventStage);
+
 		}
 
 	}