diff --git a/game/04-Variables/canvasmodel-main.js b/game/04-Variables/canvasmodel-main.js
index b7b488a0be76ba0152ecb3a91b20e39c7cf090f7..6d8d0558505a6a4a0f83ac05f813f0bedfaf22be 100644
--- a/game/04-Variables/canvasmodel-main.js
+++ b/game/04-Variables/canvasmodel-main.js
@@ -1337,7 +1337,7 @@ Renderer.CanvasModels["main"] = {
 				if (options.mannequin) {
 					return "img/body/mannequin/penis.png";
 				} else if (options.genitals_chastity) {
-					if (["flat chastity cage", "chastity parasite"].includes(options.worn_genitals_setup.name)) return;
+					if (["chastity belt", "flat chastity cage", "chastity parasite"].includes(options.worn_genitals_setup.name)) return;
 					if (options.worn_genitals_setup.name === "small chastity cage") return "img/body/penis/penis_chastitysmall.png";
 					return "img/body/penis/penis_chastity.png"
 				} else if (!playerHasStrapon()) {
@@ -1349,7 +1349,7 @@ Renderer.CanvasModels["main"] = {
 				}
 			},
 			showfn(options) {
-				return options.crotch_visible && !!options.penis && options.worn_genitals_setup.variable !== "slimechastitycage";
+				return options.crotch_visible && !!options.penis;
 			},
 			filters: ["penis"],
 			zfn(options) {
@@ -1430,8 +1430,12 @@ Renderer.CanvasModels["main"] = {
 				return options.crotch_visible && !!options.clit_parasite && !options.chastity;
 			},
 			zfn(options) {
-				if (options.crotch_visible && !!options.penis && options.clit_parasite === "parasite") {
-					return ZIndices.penis - 0.1;
+				if (["parasite", "parasitem"].includes(options.clit_parasite)) {
+					if (options.crotch_exposed) {
+						return ZIndices.penis_chastity - 0.1;
+					}else {
+						return ZIndices.penisunderclothes - 0.1;
+					}
 				} else if (options.crotch_exposed) {
 					return ZIndices.parasite;
 				} else {
diff --git a/game/04-Variables/variables-static.twee b/game/04-Variables/variables-static.twee
index b2fa7e356175e09a0adc52464f27835761bb1ee1..e07afa83c4e586548d139c78ab0d61a47da0e834 100644
--- a/game/04-Variables/variables-static.twee
+++ b/game/04-Variables/variables-static.twee
@@ -517,7 +517,7 @@
 					"anus":"img/sex/close/missionary/anus.png",
 					"anuspenetrate":"img/sex/close/missionary/anuspenetrate.png",
 					"penis":"img/sex/close/missionary/penis.png",
-					"penisparasite":"img/sex/close/missionary/penis.png",
+					"penisparasite":"img/sex/close/missionary/penisparasite.png",
 					"penisentrance":"img/sex/close/missionary/penisentrance.png",
 					"penispenetrated":"img/sex/close/missionary/penispenetrated.png",
 					"chastitypenis":"img/sex/close/missionary/chastitypenis.png",
@@ -539,11 +539,11 @@
 					"vaginapenetrate":"img/sex/close/missionary/vaginapenetrate.png",
 					"vaginapenetratebig":"img/sex/close/missionary/vaginapenetratebig.png",
 					"penis1":"img/sex/close/missionary/beast/penis1.png",
-					"penisparasite1":"img/sex/close/missionary/beast/penis1.png",
+					"penisparasite1":"img/sex/close/missionary/beast/penisparasite1.png",
 					"penisentrance1":"img/sex/close/missionary/beast/penisentrance1.png",
-					"penisparasiteentrance1":"img/sex/close/missionary/beast/penisentrance1.png",
+					"penisparasiteentrance1":"img/sex/close/missionary/beast/penisparasiteentrance1.png",
 					"penisimminent1":"img/sex/close/missionary/beast/penisimminent1.png",
-					"penisparasiteimminent1":"img/sex/close/missionary/beast/penisimminent1.png",
+					"penisparasiteimminent1":"img/sex/close/missionary/beast/penisparasiteimminent1.png",
 					"penisnoballs":"img/sex/close/missionary/beast/penisnoballs.png",
 					"penisentrancenoballs":"img/sex/close/missionary/beast/penisentrancenoballs.png",
 					"penisimminentnoballs":"img/sex/close/missionary/beast/penisimminentnoballs.png",
@@ -592,7 +592,7 @@
 					"anus":"img/sex/close/doggy/anus.png",
 					"anuspenetrate":"img/sex/close/doggy/anuspenetrate.png",
 					"penis":"img/sex/close/doggy/penis.png",
-					"penisparasite":"img/sex/close/doggy/penis.png",
+					"penisparasite":"img/sex/close/doggy/penisparasite.png",
 					"penisentrance":"img/sex/close/doggy/penisentrance.png",
 					"penispenetrated":"img/sex/close/doggy/penispenetrated.png",
 					"chastitypenis":"img/sex/close/doggy/chastitypenis.png",
@@ -607,18 +607,18 @@
 					"vagina":"img/sex/close/doggy/vagina.png",
 					"vaginaaroused":"img/sex/close/doggy/vaginaaroused.png",
 					"futavagina":"img/sex/close/doggy/futavagina.png",
-					"futavaginaparasite":"img/sex/close/doggy/futavagina.png",
+					"futavaginaparasite":"img/sex/close/doggy/futavaginaparasite.png",
 					"futavaginanoballs":"img/sex/close/doggy/futavaginanoballs.png",
 					"vaginaChastityBase":"img/sex/close/doggy/chastityBelt/vaginaBase.png",
 					"vaginaChastityMan":"img/sex/close/doggy/chastityBelt/man.png",
 					"vaginapenetrate":"img/sex/close/doggy/vaginapenetrate.png",
 					"vaginapenetratebig":"img/sex/close/doggy/vaginapenetratebig.png",
 					"penis1":"img/sex/close/doggy/beast/penis1.png",
-					"penisparasite1":"img/sex/close/doggy/beast/penis1.png",
+					"penisparasite1":"img/sex/close/doggy/beast/penisparasite1.png",
 					"penisentrance1":"img/sex/close/doggy/beast/penisentrance1.png",
-					"penisparasiteentrance1":"img/sex/close/doggy/beast/penisentrance1.png",
+					"penisparasiteentrance1":"img/sex/close/doggy/beast/penisparasiteentrance1.png",
 					"penisimminent1":"img/sex/close/doggy/beast/penisimminent1.png",
-					"penisparasiteimminent1":"img/sex/close/doggy/beast/penisimminent1.png",
+					"penisparasiteimminent1":"img/sex/close/doggy/beast/penisparasiteimminent1.png",
 					"penisnoballs":"img/sex/close/doggy/beast/penisnoballs.png",
 					"penisentrancenoballs":"img/sex/close/doggy/beast/penisentrancenoballs.png",
 					"penisimminentnoballs":"img/sex/close/doggy/beast/penisimminentnoballs.png",
diff --git a/game/base-clothing/clothing-sets.twee b/game/base-clothing/clothing-sets.twee
index baa09738fdd95545e2ab047b9cdeaaa22b3287e5..77564a6d35ef98b2279365e8870ff9bfa1b78e01 100644
--- a/game/base-clothing/clothing-sets.twee
+++ b/game/base-clothing/clothing-sets.twee
@@ -100,12 +100,12 @@
 				<br>
 			<</if>>
 		<</for>>
-	<<else>>
+	<<elseif $outfit.find(outfitSet => outfitSet.type.includes("sleep"))>>
 		<<if $possessed>>
-			<span class="red">The slime in your head is silent.</span>
+			<<ind>><span class="purple">The slime in your head is silent.</span>
 			<br>
 		<<else>>
-			<span class="red">The slime is not allowing you to sleep with anything on.</span>
+			<<ind>><span class="purple">The slime is not allowing you to sleep with anything on.</span>
 			<br>
 		<</if>>
 	<</if>>
diff --git a/game/base-combat/actions-penis.twee b/game/base-combat/actions-penis.twee
index 58e8280ac1520d88f7267d2a16db9616fcbb5738..936164bc271c38b7d25416c8d128a81c42957318 100644
--- a/game/base-combat/actions-penis.twee
+++ b/game/base-combat/actions-penis.twee
@@ -33,7 +33,7 @@
 			<<if playerHasStrapon()>>
 				<<set _penisaction["Push your strap-on against " + $_target.pronouns.his + " " + _pp] to "penistopenisfuck">>
 			<<elseif playerChastity("penis")>>
-				<<set _penisaction["Push your chastity against " + $_target.pronouns.his + " " + _pp] to "penistopenisfuck">>
+				<<set _penisaction["Push your " + $worn.genitals.name +" against " + $_target.pronouns.his + " " + _pp] to "penistopenisfuck">>
 			<<else>>
 				<<set _penisaction["Push your penis against " + $_target.pronouns.his + " " + _pp] to "penistopenisfuck">>
 			<</if>>
diff --git a/game/base-combat/close-images.twee b/game/base-combat/close-images.twee
index 6b560f736e9233edac753a9a0412df869c6cea33..b50ebbdd50d1a1966c076cce1adadbed2b860939 100644
--- a/game/base-combat/close-images.twee
+++ b/game/base-combat/close-images.twee
@@ -778,4 +778,4 @@
         <</if>>
         </div>
     <</if>>
-<</widget>>
\ No newline at end of file
+<</widget>>
diff --git a/game/base-system/overlays/traits.twee b/game/base-system/overlays/traits.twee
index b2ea70b9b9f04dbdabea98a2a6eaa3e1aae4aa4f..447624fcd72210b2e3f6ffea8652eb3429062db1 100644
--- a/game/base-system/overlays/traits.twee
+++ b/game/base-system/overlays/traits.twee
@@ -107,14 +107,29 @@
 					colour: "lewd",
 					has: $earSlime.focus and $earSlime.focus isnot "none",
 					text: () => {
+						let result;
 						switch ($earSlime.focus) {
 							case "pregnancy":
-								return "You chose the path of pregnancy, causing the ear slime to amplify traits related to becoming pregnant, while weakening other traits.";
+								result = "You chose the path of pregnancy, causing the ear slime to amplify traits related to becoming pregnant, while weakening other traits.";
+								break;
 							case "mixed":
-								return "You chose to walk the path between pregnancy and impregnation, causing the ear slime to amplify traits related to both, to a lesser degree.";
+								result = "You chose to walk the path between pregnancy and impregnation, causing the ear slime to amplify traits related to both, to a lesser degree.";
+								break;
 							case "impregnation":
-								return "You chose the path of impregnation, causing the ear slime to amplify traits related to impregnating others, while weakening other traits.";
+								result = "You chose the path of impregnation, causing the ear slime to amplify traits related to impregnating others, while weakening other traits.";
+								break;
 						}
+						let parasites = [];
+						if ($parasite.breasts and $parasite.breasts.name is "parasite") {
+							if ($player.breastsize gte 1) {
+								parasites.push("breasts");
+							} else {
+								parasites.push("chest");
+							}
+						}
+						if (($parasite.clit and $parasite.clit.name is "parasite") or ($parasite.penis and $parasite.penis.name is "parasite")) parasites.push("genitals");
+						if (parasites.length) result += ` Its parasites cover your ${formatList(parasites, "and", true)} like clothing.`;
+						return result;
 					}
 				},
                 {
diff --git a/game/base-system/parasites.twee b/game/base-system/parasites.twee
index ddd28d5cb08be96346830f1cf614cf32f57e9906..941a1151725b2084ede30d309bae27c590d25fae 100644
--- a/game/base-system/parasites.twee
+++ b/game/base-system/parasites.twee
@@ -106,7 +106,7 @@
 		<<for _type range $parasite.types>>
 			<<set $parasite[_type].delete(_temp0)>>
 		<</for>>
-		<<if $parasite.left_ear.name isnot "slime" and $parasite.right_ear.name isnot "slime">>
+		<<if $parasite.left_ear.name isnot "slime" and $parasite.right_ear.name isnot "slime" and ($earSlime.days or $earSlime.corruption or $earSlime.growth)>>
 			<<resetEarSlime true>>
 		<</if>>
 	<</if>>
diff --git a/game/base-system/physicalAdjustments.twee b/game/base-system/physicalAdjustments.twee
index 250d848b4b9b0962f49a10ac49b49a8c946087c5..b03dd37dfce6ac372f61e30e8d3fecca22902209 100644
--- a/game/base-system/physicalAdjustments.twee
+++ b/game/base-system/physicalAdjustments.twee
@@ -423,8 +423,10 @@
 		<</if>>
 		<<set _overdose to $sexStats.pills["pills"]["penis growth"].overdose - $sexStats.pills["pills"]["penis reduction"].overdose>>
 
-		<<if $worn.genitals.type.includes("shrinking")>>
-			<<set _overdose -= 20>>
+		<<if $earSlime.focus is "impregnation" and $earSlime.growth gte 100 and _overdose lt 20>>
+			<<set _overdose to 20>>
+		<<elseif $worn.genitals.type.includes("shrinking")>>
+			<<set _overdose to -20>>
 			<<if $penisgrowthtimer lte 100>>
 				<<set $penisgrowthtimer to 100>>
 			<</if>>
diff --git a/game/base-system/pregnancy/pregnancy.twee b/game/base-system/pregnancy/pregnancy.twee
index 58d18c24d205a80916f14f647c90106f2e498b75..58b0b6c164df32c2d90ec04ea458ba504a2e9c60 100644
--- a/game/base-system/pregnancy/pregnancy.twee
+++ b/game/base-system/pregnancy/pregnancy.twee
@@ -142,7 +142,7 @@
 						<<if _pills.pills["fertility booster"].doseTaken gte 2>>
 							<<set _menstruation.currentDay += 0.5>>
 						<</if>>
-						<<if $skin.pubic.type is "magic" and $skin.pubic.special is "pregnancy">>
+						<<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">>
 							<<set _menstruation.currentDay += 0.5>>
 						<</if>>
 						<<if (_pills.pills["contraceptive"].doseTaken gte 1 and random(0,100) gte 50) or _pills.pills["contraceptive"].doseTaken gte 2>>
@@ -151,10 +151,10 @@
 						<</if>>
 					<<elseif _menstruation.currentDay lt _menstruation.stages[2]>>
 						/*Follicular phase*/
-						<<if _pills.pills["fertility booster"].doseTakenn gte 2 and _menstruation.currentDay lt _menstruation.stages[2]>>
+						<<if _pills.pills["fertility booster"].doseTaken gte 2 and _menstruation.currentDay lt _menstruation.stages[2]>>
 							<<set _menstruation.currentDay += 0.5>>
 						<</if>>
-						<<if $skin.pubic.type is "magic" and $skin.pubic.special is "pregnancy" and _menstruation.currentDay lt _menstruation.stages[2]>>
+						<<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy" and _menstruation.currentDay lt _menstruation.stages[2]>>
 							<<set _menstruation.currentDay += 0.5>>
 						<</if>>
 						<<if _menstruation.currentDay lt _menstruation.stages[2]>>
@@ -182,7 +182,7 @@
 						<<if _pills.pills["fertility booster"].doseTaken gte 2>>
 							<<set _menstruation.currentDay += 0.5>>
 						<</if>>
-						<<if $skin.pubic.type is "magic" and $skin.pubic.special is "pregnancy">>
+						<<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">>
 							<<set _menstruation.currentDay += 0.5>>
 						<</if>>
 						<<if (_pills.pills["contraceptive"].doseTaken gte 1 and random(0,100) gte 50) or _pills.pills["contraceptive"].doseTaken gte 2>>
@@ -203,7 +203,7 @@
 						<<set _menstruation.currentDay += 0.5>>
 					<</if>>
 					<<if _menstruation.currentDay lt _menstruation.currentDaysMax>>
-						<<if $skin.pubic.type is "magic" and $skin.pubic.special is "pregnancy">>
+						<<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">>
 							<<set _menstruation.currentDay += 0.5>>
 						<</if>>
 						<<if _pills.pills["fertility booster"].doseTaken gte 2>>
@@ -228,7 +228,7 @@
 					<<case 1>><<set _menstruation.recoveryTime -= 0.5>>
 					<<case 2 3 4>><<set _menstruation.recoveryTime -= 1>>
 				<</switch>>
-				<<if $skin.pubic.type is "magic" and $skin.pubic.special is "pregnancy">>
+				<<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">>
 					<<set _menstruation.recoveryTime -= 0.5>>
 				<</if>>
 				<<if $_pregnancy.totalBirthEvents gt 2>>
diff --git a/game/base-system/settings.twee b/game/base-system/settings.twee
index db5b610dfdfc96654c517f5e522214483f19141d..94822a4a366e082c2a250cbb996c03badf33ffec 100644
--- a/game/base-system/settings.twee
+++ b/game/base-system/settings.twee
@@ -973,7 +973,7 @@
 
 	<div class="settingsGrid">
 		<div class="settingsHeader">
-			Skin Colour <mouse class="tooltip linkBlue">(?)<span  style="font-size:16px;">Visual representation of the player's and NPC's skin colour and tanning changes must be enabled through the Performance tab of the Options menu before they will function. They are disabled by default due to performance issues on some devices.</span></mouse>
+			Skin Colour
 		</div>
 		<div class="settingsToggleItem">
 			<span class="gold">Reddish:</span><br>
diff --git a/game/base-system/sleep.twee b/game/base-system/sleep.twee
index e9e70d626b11582256bcb64b9beb784e2c386b02..7ef7de50e60fede4d1fdec488e067388501820dc 100644
--- a/game/base-system/sleep.twee
+++ b/game/base-system/sleep.twee
@@ -6,7 +6,7 @@
 		<<earSlimeFocusChoice>>
 	<</if>>
 	<<sleephour>>
-	<<if _wakeEvent>>
+	<<if _wakeEvent and !$args[0]>>
 		<<sleep_clamp>>
 		<<switch _wakeEvent>>
 			<<case "slimeWakeAlleyway">><<slimeWakeAlleyway>>
@@ -434,7 +434,7 @@
 				<</if>>
 			<</if>>
 		<</if>>
-		<<if ["impregnation", "mixed"].includes($earSlime.focus)>>
+		<<if $player.penisExist and ["impregnation", "mixed"].includes($earSlime.focus)>>
 			<<if maleChance() lt 100 or beastMaleChance() lt 100>>
 				<<run _eventsList.push("ejaculate into someones vagina")>>
 				<<run _eventsList.push("ejaculate into someones vagina")>>
diff --git a/game/overworld-plains/loc-farm/cottage.twee b/game/overworld-plains/loc-farm/cottage.twee
index 38046e6294d2c3c87f2e039f3bbd4fcaf8bfc277..9c478c60c39073426512d7df52fbf5fbaec1a390 100644
--- a/game/overworld-plains/loc-farm/cottage.twee
+++ b/game/overworld-plains/loc-farm/cottage.twee
@@ -288,7 +288,7 @@ You are in your room at Alex's cottage. It's cramped, but larger than your room
 		<<if $possessed>>
 			<span class="red">The slime in your head is silent.</span>
 		<<else>>
-			<span class="red">The slime wants you to <<print $earSlime.event>> before you can go to bed.</span>
+			<<ind>><span class="red">The slime wants you to <<print $earSlime.event>> before you can go to bed.</span>
 		<</if>>
 		<br>
 	<</if>>
@@ -1058,9 +1058,9 @@ You are in Alex's bedroom. It's similar to yours. Clothes tumble from the wardro
 	<</if>>
 	<<if $earSlime.event and $earSlime.noSleep>>
 		<<if $possessed>>
-			<span class="red">The slime in your head is silent.</span>
+			<<ind>><span class="purple">The slime in your head is silent.</span>
 		<<else>>
-			<span class="red">The slime wants you to <<print $earSlime.event>> before you can go to bed.</span>
+			<<ind>><span class="red">The slime wants you to <<print $earSlime.event>> before you can go to bed.</span>
 		<</if>>
 		<br>
 	<<elseif $alex_bed_spurned isnot 1>>
@@ -1070,9 +1070,9 @@ You are in Alex's bedroom. It's similar to yours. Clothes tumble from the wardro
 			<<bedicon "yellow">><<link [[Climb in Alex's bed|Farm Alex Bed]]>><</link>>
 		<<else>>
 			<<if $possessed>>
-				<span class="red">The slime is silent.</span>
+				<<ind>><span class="purple">The slime is silent.</span>
 			<<else>>
-				<span class="red">The slime is not allowing you to sleep with anything on.</span>
+				<<ind>><span class="purple">The slime is not allowing you to sleep with anything on.</span>
 			<</if>>
 		<</if>>
 		<br>
@@ -4552,4 +4552,4 @@ Alex holds you for a while, and you both enjoy the moment together. <<He>> gives
 
 <<else>>
 	<<link [[Next|Farm Work]]>><<pass 5>><<endevent>><</link>>
-<</if>>
\ No newline at end of file
+<</if>>
diff --git a/game/overworld-plains/loc-moor/events.twee b/game/overworld-plains/loc-moor/events.twee
index 3fc9910d26af0eaba755b00416a88ccf36585c9d..f6a09446219f639bb3bd9489a72222fd28a5710d 100644
--- a/game/overworld-plains/loc-moor/events.twee
+++ b/game/overworld-plains/loc-moor/events.twee
@@ -1953,7 +1953,7 @@ The roots return to the earth. The sweet scent lingers in the air.
 :: Moor Luck
 <<effects>>
 
-You recite the words you learned. Maybe it did nothing, but you feel a little better regardless.
+You recite the words you learned. Maybe it did nothing, <span class="green">but you feel a little better regardless.</span>
 <br><br>
 <<if $moorLuck is undefined>>
 	<<set $moorLuck to 5>>
diff --git a/game/overworld-town/loc-home/main.twee b/game/overworld-town/loc-home/main.twee
index 37f4871b1b156a64aa98636ce7fb70a262ed6140..c02cef28bbe9eecc4bf12966add478a2345d2726 100644
--- a/game/overworld-town/loc-home/main.twee
+++ b/game/overworld-town/loc-home/main.twee
@@ -194,9 +194,9 @@ Your bed takes up most of the room.
 <<else>>
 	<br>
 	<<if $possessed>>
-		<span class="red">The slime in your head is silent.</span>
+		<<ind>><span class="purple">The slime in your head is silent.</span>
 	<<else>>
-		<span class="red">The slime wants you to <<print $earSlime.event>> before you can go to bed.</span>
+		<<ind>><span class="red">The slime wants you to <<print $earSlime.event>> before you can go to bed.</span>
 	<</if>>
 	<br>
 <</if>>
diff --git a/game/overworld-town/loc-hospital/parasite-removal.twee b/game/overworld-town/loc-hospital/parasite-removal.twee
index a7bd09daa4a2c27ac7f533eee5cfdc429e953f99..777cb3839c36a305bec60eac1e9bbb55be157d5e 100644
--- a/game/overworld-town/loc-hospital/parasite-removal.twee
+++ b/game/overworld-town/loc-hospital/parasite-removal.twee
@@ -260,7 +260,7 @@ The pulses increase in intensity, it's certainly not the "tingle" that was adver
 		<br><br>
 	<<elseif $parasite.clit.name isnot undefined>><<set _parasite_procedure to 1>>
 		<<if $parasite.clit.name is "parasite">>
-			Finally, the parasite penis clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
+			Finally, the parasite<<if ["mixed", "impregnation"].includes($earSlime.focus)>> penis<</if>> clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
 		<<else>>
 			Finally, the creature clinging to your clitoris begins to respond. It massages you with increasing fervour, before releasing its hold and dropping off. Harper wastes no time in picking it up with a gloved hand and placing it in a tiny container.
 		<</if>>
@@ -298,7 +298,7 @@ The pulses increase in intensity, it's certainly not the "tingle" that was adver
 	<<removeparasite breasts>>
 <<elseif $parasite_procedure.includes("clit")>>
 	<<if $parasite.clit.name is "parasite">>
-		Finally, the parasite penis clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
+		Finally, the parasite<<if ["mixed", "impregnation"].includes($earSlime.focus)>> penis<</if>> clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
 	<<else>>
 		Finally, the creature clinging to your clitoris begins to respond. It massages you with increasing fervour, before releasing its hold and dropping off. Harper wastes no time in picking it up with a gloved hand and placing it in a tiny container.
 	<</if>>
@@ -418,7 +418,7 @@ The pulses increase in intensity, it's certainly not the "tingle" that was adver
 		Finally, the creatures clinging to your <<nipples>> and penis begin to respond. They massage you with increasing fervour, before releasing their hold and dropping off. Harper wastes no time in picking them up with a gloved hand and placing them in a tiny container.
 	<<elseif $parasite.clit.name isnot undefined>><<set _parasite_procedure to 1>>
 		<<if $parasite.clit.name is "parasite">>
-			Finally, the parasite penis clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
+			Finally, the parasite<<if ["mixed", "impregnation"].includes($earSlime.focus)>> penis<</if>> clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
 		<<else>>
 			Finally, the creature clinging to your clitoris begins to respond. It massages you with increasing fervour, before releasing its hold and dropping off. Harper wastes no time in picking it up with a gloved hand and placing it in a tiny container.
 		<</if>>
@@ -455,7 +455,7 @@ The pulses increase in intensity, it's certainly not the "tingle" that was adver
 	<<removeparasite breasts>>
 <<elseif $parasite_procedure.includes("clit")>>
 	<<if $parasite.clit.name is "parasite">>
-		Finally, the parasite penis clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
+		Finally, the parasite<<if ["mixed", "impregnation"].includes($earSlime.focus)>> penis<</if>> clinging to your clitoris begins to respond. It starts losing its colour before seemly disintegrating. Harper wastes no time in trying to take a sample with a gloved hand and placing it in a tiny container.
 	<<else>>
 		Finally, the creature clinging to your clitoris begins to respond. It massages you with increasing fervour, before releasing its hold and dropping off. Harper wastes no time in picking it up with a gloved hand and placing it in a tiny container.
 	<</if>>
diff --git a/game/overworld-town/loc-school/classes/english-events.twee b/game/overworld-town/loc-school/classes/english-events.twee
index 60bed8c7cd004dd43f4a37e3919a26b12da62088..55bce209852b1f5078e7376d918671ca1d84ea44 100644
--- a/game/overworld-town/loc-school/classes/english-events.twee
+++ b/game/overworld-town/loc-school/classes/english-events.twee
@@ -133,7 +133,11 @@ Doren makes you sit alone on the other side of the room. You got away at least.
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 <<He>> runs <<his>> hand further up your thigh, with no regard for how you feel about it.
 <<if playerChastity() and $worn.under_lower.type.includes("naked")>>
-	<<He>> stops when <<he>> feels the metal of your $worn.genitals.name. "What's this? I heard slaves are sometimes forced to wear these things, are you someone's property?" <<He>> smirks. "I'd best be careful, I don't want to offend anyone." <<He>> doesn't bother you for the rest of the lesson.
+	<<if $worn.gentials.name is "chastity parasite">>
+		<<He>> stops when <<he>> feels the flesh of your $worn.genitals.name. "Ew, What's this? What is this thing thats attached to you?" <<He>> smirks. "I'd best be careful, I don't want to catch anything from you." <<He>> doesn't bother you for the rest of the lesson.
+	<<else>>
+		<<He>> stops when <<he>> feels the metal of your $worn.genitals.name. "What's this? I heard slaves are sometimes forced to wear these things, are you someone's property?" <<He>> smirks. "I'd best be careful, I don't want to offend anyone." <<He>> doesn't bother you for the rest of the lesson.
+	<</if>>
 <<elseif $worn.under_lower.type.includes("naked")>>
 	<<fameexhibitionism 1>>
 	<<He>> suddenly recoils, blushing. "You aren't wearing any underwear?! You really are a pervert." <<He>> doesn't bother you for the rest of the lesson.
@@ -141,6 +145,9 @@ Doren makes you sit alone on the other side of the room. You got away at least.
 	<<He>> traces the outline of your $worn.under_lower.name with a finger, from your waist to your groin. <<He>> moves slowly, clearly enjoying the moment. <<He>> takes things no further though, withdrawing <<his>> hand and acting like nothing happened.
 <</if>>
 <<garousal>><<arousal 200>>
+<<if $worn.gentials.name is "chastity parasite">>
+	<<gstress>><<stress 6>>
+<</if>>
 <br><br>
 <<link [[Next|English Lesson]]>><<endevent>><</link>>
 
diff --git a/game/overworld-town/loc-school/classes/science-events.twee b/game/overworld-town/loc-school/classes/science-events.twee
index 90871827ab20ce2e32cedf75b7e20424bc564c88..f8948f387b1ef2cd20552d7c0b58a39b26e5f6f1 100644
--- a/game/overworld-town/loc-school/classes/science-events.twee
+++ b/game/overworld-town/loc-school/classes/science-events.twee
@@ -247,7 +247,11 @@
 	<<arousal 2000>>
 
 	<<if playerChastity()>>
-		"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
+		<<if $worn.genitals.name is "chastity parasite">>
+			"As you can see, <<pshe>> is wearing a... parasite of some kind. It looks rather secure, but I'll attempt to move it for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the parasite, and stammers. "We'll... just talk about another area of the body. OK class, listen closely."
+		<<else>>
+			"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
+		<</if>>
 		<br><br>
 
 	<<elseif $player.vaginaExist>>
@@ -311,7 +315,11 @@
 	You do as instructed, and spread your legs, exposing yourself to the room. Sirris looks increasingly flustered, but continues regardless.
 	<<arousal 2000>>
 	<<if playerChastity()>>
-		"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
+		<<if $worn.genitals.name is "chastity parasite">>
+			"As you can see, <<pshe>> is wearing a... parasite of some kind. It looks rather secure, but I'll attempt to move it for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the parasite, and stammers. "We'll... just talk about another area of the body. OK class, listen closely."
+		<<else>>
+			"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
+		<</if>>
 		<br><br>
 	<<elseif $player.vaginaExist>>
 		<<if $player.penisExist>>
@@ -1018,4 +1026,4 @@ You decide to give the <<person>> a closer view, and kick <<him>> in the face. <
 
 <<endevent>>
 
-<<link [[Next|Science Lesson]]>><</link>>
\ No newline at end of file
+<<link [[Next|Science Lesson]]>><</link>>
diff --git a/game/overworld-town/loc-temple/bunk.twee b/game/overworld-town/loc-temple/bunk.twee
index d2bcee8922c6d7f07cffd5af016c4ea4d738a12e..1a33117110befe05f9e386f61dced73a35eb3f3d 100644
--- a/game/overworld-town/loc-temple/bunk.twee
+++ b/game/overworld-town/loc-temple/bunk.twee
@@ -15,12 +15,20 @@ You are beside your bunk in the temple quarters. There's a cupboard for your clo
 	Some of the monks and nuns are preparing for bed.
 <</if>>
 <br><br>		
-
-<<bedicon>><<link [[Strip and get in bed|Temple Bunk Bed]]>><<undressSleep "Temple Bunk Bed">><</link>>
-<br>
-<<listsleepoutfits "Temple Bunk Bed">>
+<<if $earSlime.event and $earSlime.noSleep>>
+	<<if $possessed>>
+		<<ind>><span class="purple">The slime in your head is silent.</span>
+	<<else>>
+		<<ind>><span class="red">The slime wants you to <<print $earSlime.event>> before you can go to bed.</span>
+	<</if>>
+	<br>
+<<else>>
+	<<bedicon>><<link [[Strip and get in bed|Temple Bunk Bed]]>><<undressSleep "Temple Bunk Bed">><</link>>
+	<br>
+	<<listsleepoutfits "Temple Bunk Bed">>
+	<br>
+<</if>>
 <<roomoptions>>
-<br>
 <<wardrobeicon>><<link [[Wardrobe|Temple Wardrobe]]>><</link>>
 <br>
 <<mirroricon>><<link [[Mirror|Temple Mirror]]>><<preMirror>><<endevent>><</link>>
diff --git a/game/overworld-town/loc-temple/main.twee b/game/overworld-town/loc-temple/main.twee
index 8ce5d732098b85529c55b8e05936dcd4b755bbf0..d61bbd27bb3bde93de8bd9e24dd9fe3786847926 100644
--- a/game/overworld-town/loc-temple/main.twee
+++ b/game/overworld-town/loc-temple/main.twee
@@ -1151,11 +1151,19 @@ You tell Jordan you were attacked. <<He>> listens without a word, only speaking
 <<else>>
 	<<if playerBellyVisible()>>
 		<<setKnowsAboutPregnancy("pc", "Jordan")>>
-		"We should remove yours immediately. It's unsafe to wear one whilst pregnant."
+		<<if playerChastity("vagina") and $worn.genitals.name is "chastity belt">>
+			"We should remove yours immediately. It's unsafe to wear one whilst pregnant."
+		<<elseif playerChastity("vagina")>>
+			"You should get yours removed immediately. However, we can only remove temple-provided devices. You'll need to speak to the keyholder or find another method of removal."
+		<<else>>
+			"You should be safe to keep yours on, it won't hinder the pregnancy."
+		<</if>>
 	<<elseif $player.virginity.penile is true and $player.virginity.vaginal is true>>
 		"It is written that we should never remove the chastity belt from a virgin. However, if you really want it removed, we will overlook that rule in return for an £80 donation."
+	<<elseif ["chastity belt", "chastity cage"].includes($worn.genitals.name)>>
+		"We can remove your device if you like. Once it's off however, you'll need to pay again to have another put on."
 	<<else>>
-		"We can remove your belt if you like. Once it's off however, you'll need to pay again to have another put on."
+		"We can only remove temple-provided devices. You'll need to speak to the keyholder or find another method of removal."
 	<</if>>
 	<br><br>
 
@@ -1231,29 +1239,38 @@ You remove your clothing, wishing it wasn't quite so cold in here. Jordan rubs w
 	<</if>>
 <</if>>
 <<if $player.penisExist>>
-	<<He>> holds your penis between both forefingers, and stares at it intently, gently manipulating the length. You try to distract yourself, but you soon feel it hardening under <<his>> scrutiny.
+	<<if playerChastity("penis") and $worn.genitals.origin isnot "temple">>
+		<<He>> holds your $worn.genitals.name between both forefingers, gently manipulating it while <<he>> inspects it. You try to distract yourself, but soon feel your <<penis>> attempt to harden under <<his>> scrutiny.
+	<<else>>
+		<<He>> holds your penis between both forefingers, and stares at it intently, gently manipulating the length. You try to distract yourself, but you soon feel it hardening under <<his>> scrutiny.
+	<</if>>
 <</if>>
 <<if $player.vaginaExist>>
-	<<He>> places <<his>> thumbs against your pussy and gently opens your
-	<<if setup.bodyliquid.combined("vagina") gte 2>>
-		<<if setup.bodyliquid.combined("vagina") gte 6>>
-			lips. Cum bursts out, spraying across Jordan's face and running in streams down both <<his>> arms.
-			<<He>> falls back in shock, hurriedly wiping cum from <<his>> eyes and mouth.
-			<br>
-			<<He>> looks at you.
-		<<elseif setup.bodyliquid.combined("vagina") gte 4>>
-			lips. A thick stream of lewd fluids gushes out. Some runs down Jordan's arm and quickly disappears up <<his>> sleeve.
-			<<He>> jumps back with a yelp, shaking <<his>> arms in alarm.
-			<br>
+	<<if playerChastity("vagina") and $worn.genitals.origin isnot "temple">>
+		<<He>> places <<his>> thumbs against the side of your $worn.genitals.name and attempts to inspect your pussy.
+		<br>
+	<<else>>
+		<<He>> places <<his>> thumbs against your pussy and gently opens your
+		<<if setup.bodyliquid.combined("vagina") gte 2>>
+			<<if setup.bodyliquid.combined("vagina") gte 6>>
+				lips. Cum bursts out, spraying across Jordan's face and running in streams down both <<his>> arms.
+				<<He>> falls back in shock, hurriedly wiping cum from <<his>> eyes and mouth.
+				<br>
+				<<He>> looks at you.
+			<<elseif setup.bodyliquid.combined("vagina") gte 4>>
+				lips. A thick stream of lewd fluids gushes out. Some runs down Jordan's arm and quickly disappears up <<his>> sleeve.
+				<<He>> jumps back with a yelp, shaking <<his>> arms in alarm.
+				<br>
+			<<else>>
+				lips. Cum runs out in a thin stream down your legs. Jordan withdraws <<his>> hands in surprise.
+				<br>
+			<</if>>
+			"That's a bad sign," <<he>> mutters.
+			<br><br>
 		<<else>>
-			lips. Cum runs out in a thin stream down your legs. Jordan withdraws <<his>> hands in surprise.
+			lips, giving <<him>> a clear view inside.
 			<br>
 		<</if>>
-		"That's a bad sign," <<he>> mutters.
-		<br><br>
-	<<else>>
-		lips, giving <<him>> a clear view inside.
-		<br>
 	<</if>>
 	You don't want to admit it, but your body responds lewdly to being examined like this.
 <</if>>
@@ -3505,4 +3522,4 @@ Sydney hugs you again before leaving.
 <</if>>
 <br><br>
 <<link [[Leave|Temple]]>><<set $temple_spear_mission to 1>><<unset $spearQuestion>><<unset $spearQuestions>><</link>>
-<br>
\ No newline at end of file
+<br>
diff --git a/game/overworld-town/special-nightmares/widgets.twee b/game/overworld-town/special-nightmares/widgets.twee
index dc420b35ab53220a050ebd045f14a267f249e179..514b16513eb5841877f7885a16205d05140942fe 100644
--- a/game/overworld-town/special-nightmares/widgets.twee
+++ b/game/overworld-town/special-nightmares/widgets.twee
@@ -70,30 +70,33 @@
 <</widget>>
 
 <<widget "nightmareEnd">>
+	<<if !$activeNightmare>>
+		<<exit>>
+	<</if>>
 	<<set $nightmaresSeen.pushUnique($activeNightmare)>>
 
-	<<set $weather to $real_weather>><<unset $real_weather>>
-	<<set $moonstate to $real_moonstate>>
-	<<set $timeStamp to $real_timeStamp>>
+	<<if $real_weather>><<set $weather to $real_weather>><<unset $real_weather>><</if>>
+	<<if $real_moonstate>><<set $moonstate to $real_moonstate>><</if>>
+	<<if $real_timeStamp>><<set $timeStamp to $real_timeStamp>><</if>>
 	<<run Time.set()>>
 	<<unset $real_moonstate>>
 	<<unset $real_timeStamp>>
-	<<set $location to $real_location>><<unset $real_location>>
+	<<if $real_location>><<set $location to $real_location>><<unset $real_location>><</if>>
 	<<unset $statFreeze>>
 
-	<<set $player.bodyliquid to clone($real_bodyliquid)>><<goocount>><<unset $real_bodyliquid>>
-	<<set $parasite to clone($real_parasite)>><<unset $real_parasite>>
-	<<set $pain to $real_pain>><<unset $real_pain>>
-	<<set $tiredness to $real_tiredness>><<unset $real_tiredness>>
-	<<set $trauma to $real_trauma>><<unset $real_trauma>>
-	<<set $control to $real_control>><<unset $real_control>>
+	<<if $real_bodyliquid>><<set $player.bodyliquid to clone($real_bodyliquid)>><<goocount>><<unset $real_bodyliquid>><</if>>
+	<<if $real_parasite>><<set $parasite to clone($real_parasite)>><<unset $real_parasite>><</if>>
+	<<if $real_pain isnot undefined>><<set $pain to $real_pain>><<unset $real_pain>><</if>>
+	<<if $real_tiredness isnot undefined>><<set $tiredness to $real_tiredness>><<unset $real_tiredness>><</if>>
+	<<if $real_trauma isnot undefined>><<set $trauma to $real_trauma>><<unset $real_trauma>><</if>>
+	<<if $real_control isnot undefined>><<set $control to $real_control>><<unset $real_control>><</if>>
 
-	<<set $player.virginity to clone($real_virginity)>><<unset $real_virginity>>
-	<<set $angel to $real_angel>><<unset $real_angel>>
-	<<set $angelbuild to $real_angelbuild>><<unset $real_angelbuild>>
-	<<set $fallenangel to $real_fallenangel>><<unset $real_fallenangel>>
-	<<set $transformationParts to clone($real_transformationParts)>><<unset $real_transformationParts>>
-	<<set $purity to $real_purity>><<unset $real_purity>>
+	<<if $real_virginity>><<set $player.virginity to clone($real_virginity)>><<unset $real_virginity>><</if>>
+	<<if $real_angel isnot undefined>><<set $angel to $real_angel>><<unset $real_angel>><</if>>
+	<<if $real_angelbuild isnot undefined>><<set $angelbuild to $real_angelbuild>><<unset $real_angelbuild>><</if>>
+	<<if $real_fallenangel isnot undefined>><<set $fallenangel to $real_fallenangel>><<unset $real_fallenangel>><</if>>
+	<<if $real_transformationParts>><<set $transformationParts to clone($real_transformationParts)>><<unset $real_transformationParts>><</if>>
+	<<if $real_purity isnot undefined>><<set $purity to $real_purity>><<unset $real_purity>><</if>>
 
 	<<unset $nightmareNext>>
 	<<unset $nightmareWake>>
@@ -102,12 +105,12 @@
 
 	<<set $worn.genitals.type.push("broken")>>
 	<<silently>><<genitalsruined>><<ruined>><</silently>>
-	<<set $worn to clone($real_worn)>><<unset $real_worn>>
-	<<set $skin to clone($real_skin)>><<unset $real_skin>>
+	<<if $real_worn>><<set $worn to clone($real_worn)>><<unset $real_worn>><</if>>
+	<<if $real_skin>><<set $skin to clone($real_skin)>><<unset $real_skin>><</if>>
 
 	/*Note: Normal Pregnancy is diabled by directly checking for $activeNightmare*/
-	<<set $clothingrebuy to $real_rebuy>><<unset $real_rebuy>>
-	<<set $parasitepregdisable to $real_parasitepregdisable>><<unset $real_parasitepregdisable>>
+	<<if $real_rebuy isnot undefined>><<set $clothingrebuy to $real_rebuy>><<unset $real_rebuy>><</if>>
+	<<if $real_parasitepregdisable isnot undefined>><<set $parasitepregdisable to $real_parasitepregdisable>><<unset $real_parasitepregdisable>><</if>>
 
 	<<set $sleephour to random(1, $sleephour)>>
 	<<sleep true>>
diff --git a/game/overworld-town/special-sydney/temple.twee b/game/overworld-town/special-sydney/temple.twee
index 721c5a2182227678a3e525190e954b5509f9d650..de5dc9db198b8318fd97039a4e4fe8f9657498e0 100644
--- a/game/overworld-town/special-sydney/temple.twee
+++ b/game/overworld-town/special-sydney/temple.twee
@@ -1937,29 +1937,38 @@ You remove your clothing, wishing it wasn't quite so cold in here. Jordan rubs w
 	<<He>> holds a strange rod against your $worn.genitals.name, and the device clatters to the floor.
 <</if>>
 <<if $player.penisExist>>
-	<<He>> holds your penis between both forefingers and stares at it, gently manipulating the length. You try to distract yourself, but soon feel it hardening under <<his>> scrutiny.
+	<<if playerChastity("penis") and $worn.genitals.origin isnot "temple">>
+		<<He>> holds your $worn.genitals.name between both forefingers, gently manipulating it while <<he>> inspects it. You try to distract yourself, but soon feel your <<penis>> attempt to harden under <<his>> scrutiny.
+	<<else>>
+		<<He>> holds your penis between both forefingers and stares at it, gently manipulating the length. You try to distract yourself, but soon feel it hardening under <<his>> scrutiny.
+	<</if>>
 <</if>>
 <<if $player.vaginaExist>>
-	<<He>> places <<his>> thumbs against your pussy and gently opens your
-	<<if setup.bodyliquid.combined("vagina") gte 2>>
-		<<if setup.bodyliquid.combined("vagina") gte 6>>
-			lips. Cum bursts out, spraying across Jordan's face and running in streams down both <<his>> arms.
-			<<He>> falls back in shock, hurriedly wiping cum from <<his>> eyes and mouth.
-			<br>
-			<<He>> looks at you.
-		<<elseif setup.bodyliquid.combined("vagina") gte 4>>
-			lips. A thick stream of lewd fluids gushes out. Some runs down Jordan's arm and disappears up <<his>> sleeve.
-			<<He>> jumps back with a yelp, shaking <<his>> arms in alarm.
-			<br>
+	<<if playerChastity("vagina") and $worn.genitals.origin isnot "temple">>
+		<<He>> places <<his>> thumbs against the side of your $worn.genitals.name and attempts to inspect your pussy.
+		<br>
+	<<else>>
+		<<He>> places <<his>> thumbs against your pussy and gently opens your
+		<<if setup.bodyliquid.combined("vagina") gte 2>>
+			<<if setup.bodyliquid.combined("vagina") gte 6>>
+				lips. Cum bursts out, spraying across Jordan's face and running in streams down both <<his>> arms.
+				<<He>> falls back in shock, hurriedly wiping cum from <<his>> eyes and mouth.
+				<br>
+				<<He>> looks at you.
+			<<elseif setup.bodyliquid.combined("vagina") gte 4>>
+				lips. A thick stream of lewd fluids gushes out. Some runs down Jordan's arm and disappears up <<his>> sleeve.
+				<<He>> jumps back with a yelp, shaking <<his>> arms in alarm.
+				<br>
+			<<else>>
+				lips. Cum runs out in a thin stream down your legs. Jordan withdraws <<his>> hands in surprise.
+				<br>
+			<</if>>
+			"That's a bad sign," <<he>> mutters.
+			<br><br>
 		<<else>>
-			lips. Cum runs out in a thin stream down your legs. Jordan withdraws <<his>> hands in surprise.
+			lips, giving <<him>> a clear view inside.
 			<br>
 		<</if>>
-		"That's a bad sign," <<he>> mutters.
-		<br><br>
-	<<else>>
-		lips, giving <<him>> a clear view inside.
-		<br>
 	<</if>>
 	You don't want to admit it, but your body responds lewdly to being examined like this.
 <</if>>
@@ -2229,34 +2238,43 @@ You both remove your clothing, wishing it wasn't quite so cold in here. Jordan r
 <<He>> holds a strange rod against your $worn.genitals.name, and the device clatters to the floor.
 <</if>>
 <<if $player.penisExist>>
-	<<He>> holds your penis between both forefingers, and stares at it intently, gently manipulating the length and rubbing the grey powder along it. You try to distract yourself, but you soon feel it hardening under <<his>> scrutiny.
+	<<if playerChastity("penis") and $worn.genitals.origin isnot "temple">>
+		<<He>> holds your $worn.genitals.name between both forefingers, gently manipulating it. <<He>> scatters grey powder over it as <<he>> inspects it. You try to distract yourself, but soon feel your <<penis>> attempt to harden under <<his>> scrutiny.
+	<<else>>
+		<<He>> holds your penis between both forefingers, and stares at it intently, gently manipulating the length and rubbing the grey powder along it. You try to distract yourself, but you soon feel it hardening under <<his>> scrutiny.
+	<</if>>
 <</if>>
 <<if $player.vaginaExist>>
-	<<He>> places <<his>> thumbs against your pussy and gently opens your
-	<<if setup.bodyliquid.combined("vagina") gte 2>>
-		<<if setup.bodyliquid.combined("vagina") gte 6>>
-			lips. Cum bursts out, spraying across Jordan's face and running in streams down both <<his>> arms.
-			<<He>> falls back in shock, hurriedly wiping cum from <<his>> eyes and mouth.
-			<br>
-			<<He>> looks at you.
-		<<elseif setup.bodyliquid.combined("vagina") gte 4>>
-			lips. A thick stream of lewd fluids gushes out. Some runs down Jordan's arm and quickly disappears up <<his>> sleeve.
-			<<He>> jumps back with a yelp, shaking <<his>> arms in alarm.
-			<br>
+	<<if playerChastity("vagina") and $worn.genitals.origin isnot "temple">>
+		<<He>> places <<his>> thumbs against the side of your $worn.genitals.name and attempts to inspect your pussy. With some difficulty, <<he>> attempts to rub the grey powder over it.
+		<br>
+	<<else>>
+		<<He>> places <<his>> thumbs against your pussy and gently opens your
+		<<if setup.bodyliquid.combined("vagina") gte 2>>
+			<<if setup.bodyliquid.combined("vagina") gte 6>>
+				lips. Cum bursts out, spraying across Jordan's face and running in streams down both <<his>> arms.
+				<<He>> falls back in shock, hurriedly wiping cum from <<his>> eyes and mouth.
+				<br>
+				<<He>> looks at you.
+			<<elseif setup.bodyliquid.combined("vagina") gte 4>>
+				lips. A thick stream of lewd fluids gushes out. Some runs down Jordan's arm and quickly disappears up <<his>> sleeve.
+				<<He>> jumps back with a yelp, shaking <<his>> arms in alarm.
+				<br>
+			<<else>>
+				lips. Cum runs out in a thin stream down your legs. Jordan withdraws <<his>> hands in surprise.
+				<br>
+			<</if>>
+			"That's a bad sign," <<he>> mutters.
+			<br><br>
+			<<if $daily.sydney.cum>>
+				Sydney looks away and blushes. "That... that was my fault..."
+			<<else>>
+				Sydney's eyes widen in horror. <<npcincr Sydney love -5>><<lllove>>
+			<</if>>
 		<<else>>
-			lips. Cum runs out in a thin stream down your legs. Jordan withdraws <<his>> hands in surprise.
+			lips, giving <<him>> a clear view inside. <<He>> rubs the grey powder around the entrance.
 			<br>
 		<</if>>
-		"That's a bad sign," <<he>> mutters.
-		<br><br>
-		<<if $daily.sydney.cum>>
-			Sydney looks away and blushes. "That... that was my fault..."
-		<<else>>
-			Sydney's eyes widen in horror. <<npcincr Sydney love -5>><<lllove>>
-		<</if>>
-	<<else>>
-		lips, giving <<him>> a clear view inside. <<He>> rubs the grey powder around the entrance.
-		<br>
 	<</if>>
 	You don't want to admit it, but your body responds lewdly to being examined like this.
 <</if>>
diff --git a/game/overworld-town/special-whitney/main.twee b/game/overworld-town/special-whitney/main.twee
index 05e3cafb0dcdbe1c8f0457636d2890fabaecd7af..7af543ea72dd599cac3e3bab91c18accc8919732 100644
--- a/game/overworld-town/special-whitney/main.twee
+++ b/game/overworld-town/special-whitney/main.twee
@@ -2306,7 +2306,7 @@ Laughter bursts from the group. It echoes down the street as they depart.
 
 	The audience applauds. Whitney gasps and climbs off you.
 
-	<<if $orgasmcurrent is 0 and (($player.penisExist and !playerChastity("penis")) or ($player.vaginaExist and !playerChastity("hidden")))>>
+	<<if $orgasmcurrent is 0 and (($player.penisExist and (!playerChastity("penis") or $worn.genitals.name is "chastity parasite")) or ($player.vaginaExist and !playerChastity("hidden")))>>
 		<<whitneyFinish>>
 	<</if>>
 
@@ -4624,7 +4624,7 @@ The two of you walk back to the bench under the tree. <<He>> lights another ciga
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>><<npcincr Whitney lust -20>>
 
-	<<if $NPCName[$NPCNameList.indexOf("Whitney")].dom gte 10 and $orgasmcurrent is 0  and (($player.penisExist and !playerChastity("penis")) or ($player.vaginaExist and !playerChastity("hidden")))>>
+	<<if $NPCName[$NPCNameList.indexOf("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")))>>
 		<<whitneyFinish>>
 	<</if>>
 
@@ -6742,7 +6742,7 @@ You cling to <<him>>, lest you topple over in your drunken state. <<His>> arm sn
 	<br><br>
 
 	<<if $consensual is 1>><<set _walk to true>>
-		<<if $orgasmcurrent is 0 and (($player.penisExist and !playerChastity("penis")) or ($player.vaginaExist and !playerChastity("hidden")))>>
+		<<if $orgasmcurrent is 0 and (($player.penisExist and (!playerChastity("penis") or $worn.genitals.name is "chastity parasite")) or ($player.vaginaExist and !playerChastity("hidden")))>>
 			<<whitneyFinish>>
 		<</if>>
 
diff --git a/game/overworld-town/special-whitney/widgets.twee b/game/overworld-town/special-whitney/widgets.twee
index 5f451e4377dd4a3d26af6c9348cf827cf69785d6..e20898ed1297a70689aceef48ebf1238f32992c0 100644
--- a/game/overworld-town/special-whitney/widgets.twee
+++ b/game/overworld-town/special-whitney/widgets.twee
@@ -275,11 +275,13 @@
 		<br><br>
 	<</if>>
 	<<He>> quickly grabs your <<genitals>> and
-	<<if $player.penisExist and $player.vaginaExist and (playerChastity("penis") or playerChastity("vagina"))>>
+	<<if $player.penisExist and $worn.genitals.name is "chastity parasite">>
+		starts to roughly squeeze your chastity parasite<<if $player.vaginaExist>> with one hand, plunging a finger from <<his>> other hand into your <<pussy>><</if>>.
+	<<elseif $player.penisExist and $player.vaginaExist and !playerChastity("penis") and !playerChastity("vagina")>>
 		starts to jerk you off with one hand, plunging a finger from <<his>> other hand into your <<pussy>>.
-	<<elseif $player.penisExist and playerChastity("penis")>>
+	<<elseif $player.penisExist and !playerChastity("penis")>>
 		starts to jerk you off, paying extra attention to the tip of your <<penis>>.
-	<<elseif $player.vaginaExist and playerChastity("vagina")>>
+	<<elseif $player.vaginaExist and !playerChastity("vagina")>>
 		plunges a finger into your <<pussy>>, swirling it around.
 	<</if>>
 	<<arousal 5000 "genitals">>
diff --git a/game/special-masturbation/slimeControl.js b/game/special-masturbation/slimeControl.js
index 0ad71fb315c09f96912e43d02daeed3795b24e0a..1cd9f5c6d45d2e72f9cfd96746863745ea6c4797 100644
--- a/game/special-masturbation/slimeControl.js
+++ b/game/special-masturbation/slimeControl.js
@@ -139,7 +139,7 @@ function masturbationSlimeControl() {
 				case 0:
 					if (V.worn.genitals.name === "chastity parasite" && V.earSlime.defyCooldown) {
 						// Tries to punish the player
-						V[armAction] = V.worn.genitals.name === "chastity parasite";
+						V[armAction] = "mchastityparasiteentrance";
 					} else if (random(0, 100) >= 80 && toysId.length > 0 && (["home", "brothel", "cafe"].includes(V.location) || T.enableSexToys)) {
 						V[armAction] = "mpickupdildo";
 						V["selectedToy" + armCap] = toysId[random(0, toysId.length - 1)];
diff --git a/img/sex/close/doggy/beast/penisparasite1.png b/img/sex/close/doggy/beast/penisparasite1.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fe41c7d35a04026bc3648e6283fa3d4bdafe805
Binary files /dev/null and b/img/sex/close/doggy/beast/penisparasite1.png differ
diff --git a/img/sex/close/doggy/beast/penisparasiteentrance1.png b/img/sex/close/doggy/beast/penisparasiteentrance1.png
new file mode 100644
index 0000000000000000000000000000000000000000..257634e8151bc6c25ffc9c24fc40a4be3d96f4b9
Binary files /dev/null and b/img/sex/close/doggy/beast/penisparasiteentrance1.png differ
diff --git a/img/sex/close/doggy/beast/penisparasiteimminent1.png b/img/sex/close/doggy/beast/penisparasiteimminent1.png
new file mode 100644
index 0000000000000000000000000000000000000000..997f9543d328c41bc72d2e84726ae99ff5c3c0d6
Binary files /dev/null and b/img/sex/close/doggy/beast/penisparasiteimminent1.png differ
diff --git a/img/sex/close/doggy/futavaginaparasite.png b/img/sex/close/doggy/futavaginaparasite.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae09b5bca4bc58811aa118111022d37b6766d63b
Binary files /dev/null and b/img/sex/close/doggy/futavaginaparasite.png differ
diff --git a/img/sex/close/doggy/penisparasite.png b/img/sex/close/doggy/penisparasite.png
new file mode 100644
index 0000000000000000000000000000000000000000..13cd6f2a36e69d7cb42d178c6d843072d7548633
Binary files /dev/null and b/img/sex/close/doggy/penisparasite.png differ
diff --git a/img/sex/close/missionary/beast/penisparasite1.png b/img/sex/close/missionary/beast/penisparasite1.png
new file mode 100644
index 0000000000000000000000000000000000000000..36c6cfd83bb927f6fed2d857eae4b24491077d8b
Binary files /dev/null and b/img/sex/close/missionary/beast/penisparasite1.png differ
diff --git a/img/sex/close/missionary/beast/penisparasiteentrance1.png b/img/sex/close/missionary/beast/penisparasiteentrance1.png
new file mode 100644
index 0000000000000000000000000000000000000000..63e80ab8d4a0fdf5872d34e1a08ec630e9eb63f0
Binary files /dev/null and b/img/sex/close/missionary/beast/penisparasiteentrance1.png differ
diff --git a/img/sex/close/missionary/beast/penisparasiteimminent1.png b/img/sex/close/missionary/beast/penisparasiteimminent1.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3a1f6f466dc90ba20c4cee46b946abb28c98783
Binary files /dev/null and b/img/sex/close/missionary/beast/penisparasiteimminent1.png differ
diff --git a/img/sex/close/missionary/futavaginaparasite.png b/img/sex/close/missionary/futavaginaparasite.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0d925f19efeb9353b2edf5e0547509046a73b08
Binary files /dev/null and b/img/sex/close/missionary/futavaginaparasite.png differ
diff --git a/img/sex/close/missionary/penisparasite.png b/img/sex/close/missionary/penisparasite.png
new file mode 100644
index 0000000000000000000000000000000000000000..86ddb269c338e7d2cfee23bc7b03d3e543b48e79
Binary files /dev/null and b/img/sex/close/missionary/penisparasite.png differ
diff --git a/img/sex/closeRed/doggy/beast/penisparasiteentrance1.png b/img/sex/closeRed/doggy/beast/penisparasiteentrance1.png
index 78e3349512a8ba186488c04a09bb8309f3c4faec..09abaf90672235e76dd1eda8051066cb605563f1 100644
Binary files a/img/sex/closeRed/doggy/beast/penisparasiteentrance1.png and b/img/sex/closeRed/doggy/beast/penisparasiteentrance1.png differ
diff --git a/img/sex/closeRed/doggy/beast/penisparasiteimminent1.png b/img/sex/closeRed/doggy/beast/penisparasiteimminent1.png
index 52e9781067d3dcd6b4ba8bd226f9f2f3084a1d59..ee513566a99c1239b2e1000250f9755b87faa6ce 100644
Binary files a/img/sex/closeRed/doggy/beast/penisparasiteimminent1.png and b/img/sex/closeRed/doggy/beast/penisparasiteimminent1.png differ