diff --git a/src/gui/Encyclopedia/encyclopediaWidgets.tw b/src/gui/Encyclopedia/encyclopediaWidgets.tw
index a59e376de21da354878be62a127337297202d425..58cdac80cf006b5134c45bb4eda45c6ff0b04ffc 100644
--- a/src/gui/Encyclopedia/encyclopediaWidgets.tw
+++ b/src/gui/Encyclopedia/encyclopediaWidgets.tw
@@ -15,7 +15,7 @@
 
 
 <<widget "encyclopediaEntryGloryHole">>
-''Occupying a glory hole'' is an assignment which makes money off slaves regardless of their beauty, skills, or feelings; not fun or [[Healthy|Encyclopedia][$encyclopedia = "Health"]]. Very powerful for extracting ¤ out of otherwise useless slaves.
+''Occupying a glory hole'' is an assignment which makes money off slaves regardless of their beauty, skills, or feelings; not fun or [[healthy|Encyclopedia][$encyclopedia = "Health"]]. Very powerful for extracting ¤ out of otherwise useless slaves.
 <</widget>>
 
 
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index c2d95f246a308beeebf7ed3a059467c0ad6bf212..9c4a73f9216d782775c3d8667f8c1afb6bc093d4 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -4610,7 +4610,7 @@ She does her very best to get through the inspection without disgrace, hugging h
 <br><<link "Just enjoy the sunshine with her">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	Wordlessly, you fetch a towel of your own. She raises her head a little to see if she's needed, but as soon as she <<if cnSee($activeSlave)>>sees<<else>>realizes<</if>> what you're doing, she smiles with simple satisfaction and closes her eyes again. You strip and lie down next to her. She made a good decision <<if $activeSlave.assignment == "rest">>about how to spend her rest<<else>>about what to do with her rest period<</if>>. The sun is warm and gentle, and the interminable demands of leadership and your harem suddenly seem very far away. You drop off for a short while, only waking when your apologetic personal assistant breaks in with notice of an upcoming meeting. As you get your senses back, you notice that $activeSlave.slaveName's hand is right next to yours, flattened out against the decking. Her eyes remain closed, and her breath is steady; she's fast asleep. It seems she did not want to wake you, but @@.hotpink;wanted very much to be a little closer to you.@@ You consider cancelling the meeting and waking the sun-warmed
+	Wordlessly, you fetch a towel of your own. She raises her head a little to see if she's needed, but as soon as she <<if canSee($activeSlave)>>sees<<else>>realizes<</if>> what you're doing, she smiles with simple satisfaction and closes her eyes again. You strip and lie down next to her. She made a good decision <<if $activeSlave.assignment == "rest">>about how to spend her rest<<else>>about what to do with her rest period<</if>>. The sun is warm and gentle, and the interminable demands of leadership and your harem suddenly seem very far away. You drop off for a short while, only waking when your apologetic personal assistant breaks in with notice of an upcoming meeting. As you get your senses back, you notice that $activeSlave.slaveName's hand is right next to yours, flattened out against the decking. Her eyes remain closed, and her breath is steady; she's fast asleep. It seems she did not want to wake you, but @@.hotpink;wanted very much to be a little closer to you.@@ You consider cancelling the meeting and waking the sun-warmed
 	<<if $activeSlave.physicalAge > 30>>
 		woman,
 	<<elseif $activeSlave.physicalAge > 17>>
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index 94ed6b751456d679e1f0d08567bc9b59e13f188d..69a589264d04404857b3eb90d6cb09265b8e27f8 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -44,6 +44,7 @@
 
 <<case "taste test">>
 
+<<if Array.isArray($RETasteTestSubIDs)>>
 <<set $RETasteTestSubIDs = $RETasteTestSubIDs.shuffle()>>
 <<for $i = 0; $i < $RETasteTestSubIDs.length; $i++>>
 	<<if $eventSlave.ID != $RETasteTestSubIDs[$i]>>
@@ -56,6 +57,7 @@
 	<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "date please">>
 
@@ -68,6 +70,7 @@
 
 <<case "anal cowgirl">>
 
+<<if Array.isArray($REAnalCowgirlSubIDs)>>
 <<set $REAnalCowgirlSubIDs = $REAnalCowgirlSubIDs.shuffle()>>
 <<for $i = 0; $i < $REAnalCowgirlSubIDs.length; $i++>>
 	<<if $eventSlave.ID != $REAnalCowgirlSubIDs[$i]>>
@@ -80,9 +83,11 @@
 	<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "boob collision">>
 
+<<if Array.isArray($REBoobCollisionSubIDs)>>
 <<set $REBoobCollisionSubIDs = $REBoobCollisionSubIDs.shuffle()>>
 <<for $i = 0; $i < $REBoobCollisionSubIDs.length; $i++>>
 	<<if $eventSlave.ID != $REBoobCollisionSubIDs[$i]>>
@@ -95,9 +100,11 @@
 	<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "if you enjoy it">>
 
+<<if Array.isArray($REIfYouEnjoyItSubIDs)>>
 <<set $REIfYouEnjoyItSubIDs = $REIfYouEnjoyItSubIDs.random()>>
 <<for _s = 0; _s < $slaves.length; _s++>>
 	<<if $REIfYouEnjoyItSubIDs == $slaves[_s].ID>>
@@ -105,9 +112,11 @@
 		<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "sadistic description">>
 
+<<if Array.isArray($RESadisticDescriptionSubIDs)>>
 <<set $RESadisticDescriptionSubIDs = $RESadisticDescriptionSubIDs.random()>>
 <<for _s = 0; _s < $slaves.length; _s++>>
 	<<if $RESadisticDescriptionSubIDs == $slaves[_s].ID>>
@@ -115,9 +124,11 @@
 		<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "shower force">>
 
+<<if Array.isArray($REShowerForceSubIDs)>>
 <<set $REShowerForceSubIDs = $REShowerForceSubIDs.random()>>
 <<for _s = 0; _s < $slaves.length; _s++>>
 	<<if $REShowerForceSubIDs == $slaves[_s].ID>>
@@ -125,9 +136,11 @@
 		<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "repressed anal virgin">>
 
+<<if Array.isArray($RERepressedAnalVirginSubIDs)>>
 <<set $RERepressedAnalVirginSubIDs = $RERepressedAnalVirginSubIDs.random()>>
 <<for _s = 0; _s < $slaves.length; _s++>>
 	<<if $RERepressedAnalVirginSubIDs == $slaves[_s].ID>>
@@ -137,11 +150,13 @@
 		<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "top exhaustion">>
 
 <<case "simple assault">>
 
+<<if Array.isArray($RESimpleAssaultIDs)>>
 <<set $RESimpleAssaultIDs = $RESimpleAssaultIDs.random()>>
 <<for _s = 0; _s < $slaves.length; _s++>>
 	<<if $RESimpleAssaultIDs == $slaves[_s].ID>>
@@ -149,9 +164,11 @@
 		<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "cockmilk interception">>
 
+<<if Array.isArray($RECockmilkInterceptionIDs)>>
 <<set $RECockmilkInterceptionIDs = $RECockmilkInterceptionIDs.shuffle()>>
 <<for _i = 0; _i < $RECockmilkInterceptionIDs.length; _i++>>
 	<<if $eventSlave.ID != $RECockmilkInterceptionIDs[_i]>>
@@ -164,9 +181,11 @@
 	<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "interslave begging">>
 
+<<if Array.isArray($REInterslaveBeggingIDs)>>
 <<set $REInterslaveBeggingIDs = $REInterslaveBeggingIDs.shuffle()>>
 <<for _i = 0; _i < $REInterslaveBeggingIDs.length; _i++>>
 	<<if $eventSlave.ID != $REInterslaveBeggingIDs[_i]>>
@@ -179,6 +198,7 @@
 	<<break>>
 	<</if>>
 <</for>>
+<</if>>
 
 <<case "incestuous nursing">>
 
diff --git a/src/uncategorized/cosmeticRulesAssistantSettings.tw b/src/uncategorized/cosmeticRulesAssistantSettings.tw
index 546bd7e9434bc16bf6e38c9668906502a7a01afd..5e6984cd3ee84dd4ed5fa3fe5b259ed412a1a06b 100644
--- a/src/uncategorized/cosmeticRulesAssistantSettings.tw
+++ b/src/uncategorized/cosmeticRulesAssistantSettings.tw
@@ -99,8 +99,6 @@ Cosmetic contact lenses: ''$currentRule.eyeColor.''
 	<<set $artificialEyeShape = "">>
 	<</link>>
 	rule to $artificialEyeShape $artificialEyeColor eyes? //This will be applied in addition to eyewear choices.//
-<<else>>
-	error $artificialEyeShape $artificialEyeColor eyes
 <</if>>
 
 <br><br>
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 8c6f73eb478e065c3b3703a481dbb324a1c096c8..a3b768ccedaa156011283d52e0987e72c87eed26 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -112,7 +112,6 @@
 	| //<<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)">><<for _i = 0;_i < _SL;_i++>><<if $slaves[_i].assignmentVisible == 1 && $slaves[_i].useRulesAssistant == 1>><<CheckAutoRulesActivate $slaves[_i]>><<DefaultRules $slaves[_i]>><</if>><</for>><<goto "Main">><</link>>//
 <</if>>
 
-
 <<if $useTabs == 0>>
 //<<OptionsSortAsAppearsOnMain>>//
 	<<include "Slave Summary">>
@@ -439,6 +438,9 @@
 	</script>
 
 	</body>
+	<<if $positionMainLinks <= 0>>
+		<br><<MainLinks>>
+	<</if>>
 <</if>>
 
 <<else>>
@@ -571,7 +573,7 @@ Filter by assignment: |
 
 <</if>> /* closes lowercase_donkey's fuckery */
 
-<<set $activeSlave = Array.random($slaves)>>
-<<if $activeSlave &&  ($activeSlave.assignment != "please you") && ($activeSlave.assignment != "guard you")>>
+<<set $activeSlave = $slaves.random()>>
+<<if $activeSlave && ($activeSlave.assignment != "please you") && ($activeSlave.assignment != "guard you")>>
 	<br><<include "Walk Past">>
 <</if>>
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index aedca590ec3f29dfafe14f7a4a950ae591e14d82..b4652570f020f4016b95e0fe799394db7ab9430b 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -1902,11 +1902,13 @@
 <</if>>
 <<if def $eventSlave.kindness && $eventSlave.kindness >= 100>>
 <<if isSlaveAvailable($eventSlave) && (canWalk($eventSlave) || (["please you", "serve in the master suite", "be your Concubine"].includes($eventSlave.assignment)))>>
+<<if $eventSlave.relationship == -3>>
 <<if random(1,200) < $eventSlave.kindness>>
 	<<set $RESSevent.push("surprising wakeup")>>
 <</if>>
 <</if>>
 <</if>>
+<</if>>
 <<if $eventSlave.career == "a breeding bull" && $eventSlave.assignment == "serve in the master suite" && canPenetrate($eventSlave) && $eventSlave.amp != 1 && $PC.vagina == 1 && $PC.preg == 0>>
 	<<set $RESSevent.push("breeding bull")>>
 <</if>>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 5ca5d50f179731fc113074efa9cae6ff6fd2a237..e3af0c63a33b95caec7ca38e9e402565019026bc 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -258,6 +258,7 @@ She
 								<<if $slaves[_j].trust < -20>>
 									Craving a rush, she repeatedly forces a reluctant <<SlaveFullName $slaves[_j]>> to have sex with her in public. $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse @@.lightsalmon;starts a rivalry@@ between them.
 									<<set $slaves[$i].rivalry = 1, $slaves[_j].rivalry = 1, $slaves[$i].rivalryTarget = $slaves[_j].ID, $slaves[_j].rivalryTarget = $slaves[$i].ID>>
+									<<break>>
 								<</if>>
 								<</if>>
 								<</if>>
@@ -291,7 +292,7 @@ She
 									She focuses on <<SlaveFullName $slaves[_j]>>, who has a sexual flaw $slaves[$i].slaveName can exploit. She sadistically
 									<<if $slaves[_j].sexualFlaw == "hates oral">>
 										rapes the poor slave's face<<if !canAchieveErection($slaves[$i])>> with her fingers<</if>>. $slaves[_j].slaveName hates oral
-									<<elseif $slaves[_j].sexualFlaw == "hates oral" && canDoVaginal($slaves[_j])>>
+									<<elseif $slaves[_j].sexualFlaw == "hates penetration" && canDoVaginal($slaves[_j])>>
 										rapes the poor slave's pussy<<if !canAchieveErection($slaves[$i])>> with her fingers<</if>>. $slaves[_j].slaveName hates penetration
 									<<elseif ($slaves[_j].sexualFlaw == "hates anal" || $slaves[_j].sexualFlaw == "hates penetration") && canDoAnal($slaves[_j])>>
 										rapes the poor slave's ass<<if !canAchieveErection($slaves[$i])>> with her fingers<</if>>. $slaves[_j].slaveName hates anal
@@ -304,6 +305,7 @@ She
 									<</if>>
 									and the sexual abuse @@.lightsalmon;starts a rivalry@@ between them.
 									<<set $slaves[$i].rivalry = 1, $slaves[_j].rivalry = 1, $slaves[$i].rivalryTarget = $slaves[_j].ID, $slaves[_j].rivalryTarget = $slaves[$i].ID>>
+									<<break>>
 								<</if>>
 								<</if>>
 								<</if>>
@@ -342,6 +344,7 @@ She
 								<<if $slaves[_j].trust < -20>>
 									She repeatedly rapes a reluctant <<SlaveFullName $slaves[_j]>>; she can't seem to keep her hands off the poor slave, who can't avoid her. Not surprisingly, $slaves[_j].slaveName resents this, and $slaves[$i].slaveName's ongoing sexual abuse @@.lightsalmon;starts a rivalry@@ between them.
 									<<set $slaves[$i].rivalry = 1, $slaves[_j].rivalry = 1, $slaves[$i].rivalryTarget = $slaves[_j].ID, $slaves[_j].rivalryTarget = $slaves[$i].ID>>
+									<<break>>
 								<</if>>
 								<</if>>
 								<</if>>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 887f14e161989849c540a706bfea5af78bff5836..83bb0a24d54a2786c20d44ff26ecedeb00ee245d 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -306,7 +306,7 @@
 <<if !$slaves[$i].rivalry>>
 <<if !$slaves[$i].fuckdoll>>
 <<if $slaves[$i].fetish != "mindbroken">>
-	<<set $RapeableIDs.push($i)>>
+	<<set $RapeableIDs.push($slaves[$i].ID)>>
 <</if>>
 <</if>>
 <</if>>
diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw
index 6a58a5b511881a1b1d61e862437d9946ec4db9bc..37f2b92c77ad69edd2746ec99cc0dc7d6094c4b4 100644
--- a/src/utility/descriptionWidgets.tw
+++ b/src/utility/descriptionWidgets.tw
@@ -1,6 +1,7 @@
 :: description widgets [widget nobr]
 
 <<widget "MainLinks">>
+
 <center>
 <<switch $personalAttention>>
 <<case "business">>You plan to focus on business this week.
@@ -25,45 +26,45 @@
 <span id="managePA"><strong><<link "Change plans">><<goto "Personal Attention Select">><</link>></strong></span> @@.cyan;[A]@@
 
 <<if $useTabs == 0>>
-		<br>
-		<<if _HG > -1>>
-			''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is <<if ndef $headGirlFocus>>serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.<<else>>your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort,<</if>> and is focusing on your slaves' $headGirlFocus.<</if>>
-			<span id="manageHG"><strong><<link "Manage Head Girl">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@
-			<<set $showOneSlave = "Head Girl">>
-		<<elseif (_HG == -1) && ($slaves.length > 1)>>
-			You have @@.red;not@@ selected a Head Girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>. <span id="manageHG"><strong><<link "Select one">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@
-		<<elseif (_HG == -1)>>
-			//You do not have enough slaves to keep a Head Girl//
-		<</if>>
-		<br>
-		<<if _RC > -1>>
-			''__@@.pink;<<SlaveFullName $Recruiter>>@@__'' is working
-			<<if $recruiterTarget != "other arcologies">>
-				to recruit girls.
-			<<else>>
-				as a Sexual
-				<<if $arcologies[0].influenceTarget == -1>>
-					Ambassador,  but @@.red;she has no target to influence.@@
-				<<else>>
-					Ambassador to <<for $i = 0; $i < $arcologies.length; $i++>><<if $arcologies[$i].direction == $arcologies[0].influenceTarget>>$arcologies[$i].name<<break>><</if>><</for>>.
-				<</if>>
-			<</if>>
-			<span id="manageRecruiter"><strong><<link "Manage Recruiter">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@
-			<<set $showOneSlave = "recruit girls">>
+	<br>
+	<<if _HG > -1>>
+		''__@@.pink;<<SlaveFullName $HeadGirl>>@@__'' is <<if ndef $headGirlFocus>>serving as your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>.<<else>>your head girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort,<</if>> and is focusing on your slaves' $headGirlFocus.<</if>>
+		<span id="manageHG"><strong><<link "Manage Head Girl">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@
+		<<set $showOneSlave = "Head Girl">>
+	<<elseif (_HG == -1) && ($slaves.length > 1)>>
+		You have @@.red;not@@ selected a Head Girl<<if $arcologies[0].FSEgyptianRevivalistLaw == 1>> and Consort<</if>>. <span id="manageHG"><strong><<link "Select one">><<goto "HG Select">><</link>></strong></span> @@.cyan;[H]@@
+	<<elseif (_HG == -1)>>
+		//You do not have enough slaves to keep a Head Girl//
+	<</if>>
+	<br>
+	<<if _RC > -1>>
+		''__@@.pink;<<SlaveFullName $Recruiter>>@@__'' is working
+		<<if $recruiterTarget != "other arcologies">>
+			to recruit girls.
 		<<else>>
-			You have @@.red;not@@ selected a Recruiter.
-			<span id="manageRecruiter"><strong><<link "Select one">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@
-		<</if>>
-		<<if ($dojo != 0)>>
-			<br>
-			<<if _BG > -1>>
-				''__@@.pink;<<SlaveFullName $Bodyguard>>@@__'' is serving as your bodyguard. <span id="manageBG"><strong><<link "Manage Bodyguard">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@
-				<<set $showOneSlave = "guard you">>
+			as a Sexual
+			<<if $arcologies[0].influenceTarget == -1>>
+				Ambassador,  but @@.red;she has no target to influence.@@
 			<<else>>
-				You have @@.red;not@@ selected a Bodyguard. <span id="manageBG"><strong><<link "Select one">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@
+				Ambassador to <<for $i = 0; $i < $arcologies.length; $i++>><<if $arcologies[$i].direction == $arcologies[0].influenceTarget>>$arcologies[$i].name<<break>><</if>><</for>>.
 			<</if>>
 		<</if>>
+		<span id="manageRecruiter"><strong><<link "Manage Recruiter">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@
+		<<set $showOneSlave = "recruit girls">>
+	<<else>>
+		You have @@.red;not@@ selected a Recruiter.
+		<span id="manageRecruiter"><strong><<link "Select one">><<goto "Recruiter Select">><</link>></strong></span> @@.cyan;[U]@@
+	<</if>>
+	<<if ($dojo != 0)>>
+		<br>
+		<<if _BG > -1>>
+			''__@@.pink;<<SlaveFullName $Bodyguard>>@@__'' is serving as your bodyguard. <span id="manageBG"><strong><<link "Manage Bodyguard">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@
+			<<set $showOneSlave = "guard you">>
+		<<else>>
+			You have @@.red;not@@ selected a Bodyguard. <span id="manageBG"><strong><<link "Select one">><<goto "BG Select">><</link>></strong></span> @@.cyan;[B]@@
+		<</if>>
 	<</if>>
+<</if>>
 
 <<else>>
 
@@ -200,6 +201,7 @@
 		<</if>>
 	<</if>>
 </center>
+
 <</widget>>
 
 
@@ -230,6 +232,7 @@
 
 <</widget>>
 
+
 <<widget "ImageDesc">>
 
 <<if $activeSlave.dick > 0 && $activeSlave.balls == 0>>
@@ -248,6 +251,7 @@
 
 <</widget>>
 
+
 <<widget "InscripDesc">>
 
 "I <3
@@ -284,6 +288,7 @@
 
 <</widget>>
 
+
 <<widget "SlavePronouns">>
 
 <<if $args[0].fuckdoll > 0>>
@@ -296,6 +301,7 @@
 
 <</widget>>
 
+
 <<widget "brandDescription">>
 
 <<if ($activeSlave.brand != 0)>>