From a820e96cdf64b955b96f3f312aef8e0db2f88caa Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sat, 9 Dec 2017 23:24:47 -0500
Subject: [PATCH] fixes and heavy widgetization of saRules.tw

---
 devNotes/VersionChangeLog-Premod+LoliMod.txt |    8 +-
 devNotes/twine JS                            |    9 +-
 src/js/economyJS.tw                          |    9 +-
 src/npc/fFeelings.tw                         |    2 +-
 src/uncategorized/arcadeReport.tw            |    2 +
 src/uncategorized/costs.tw                   |   24 +-
 src/uncategorized/costsReport.tw             |   35 +-
 src/uncategorized/saPleaseYou.tw             |    2 +-
 src/uncategorized/saRules.tw                 | 1032 +++---------------
 src/utility/assignWidgets.tw                 |    1 +
 src/utility/saRulesWidgets.tw                |  920 ++++++++++++++++
 11 files changed, 1122 insertions(+), 922 deletions(-)
 create mode 100644 src/utility/saRulesWidgets.tw

diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index 2f438643ed3..8fb36de056b 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -4855,6 +4855,12 @@ Pregmod 0.10.3.0
 	-fixes
 	
 	12/09/17
+	
+	194
 	-SFanon's passive PC skill gaining
 	-anon's various additions and corrections
-	-fixes
\ No newline at end of file
+	-fixes
+	
+	195
+	-fixes
+	-saRules tinkering
\ No newline at end of file
diff --git a/devNotes/twine JS b/devNotes/twine JS
index ede91649265..745409b6403 100644
--- a/devNotes/twine JS	
+++ b/devNotes/twine JS	
@@ -2134,7 +2134,9 @@ window.getSlaveCost = function(s) {
 	var drugsCost = State.variables.drugsCost;
 	
 	// Living expenses
-	if((s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
+	if((s.assignment === Job.DAIRY && State.variables.dairyRestraintsSetting >= 2) || (s.assignment === Job.ARCADE)) {
+		cost += rulesCost * .75;
+	} else {	
 		if(s.livingRules === LivingRule.LUXURIOUS) {
 			cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
 		} else if(s.livingRules == LivingRule.NORMAL) {
@@ -2142,11 +2144,8 @@ window.getSlaveCost = function(s) {
 		} else {
 			cost += rulesCost;
 		}
-	} else {
-		cost += rulesCost * .75;
 	}
-		
-	
+
 	// Food
 	cost += foodCost * 4;
 	switch(s.diet) {
diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw
index 500bef2fd69..3bad3b9deec 100644
--- a/src/js/economyJS.tw
+++ b/src/js/economyJS.tw
@@ -320,7 +320,9 @@ window.getSlaveCost = function(s) {
 	var drugsCost = State.variables.drugsCost;
 	
 	// Living expenses
-	if((s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
+	if((s.assignment === Job.DAIRY && State.variables.dairyRestraintsSetting >= 2) || (s.assignment === Job.ARCADE)) {
+		cost += rulesCost * .75;
+	} else {	
 		if(s.livingRules === LivingRule.LUXURIOUS) {
 			cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
 		} else if(s.livingRules == LivingRule.NORMAL) {
@@ -328,11 +330,8 @@ window.getSlaveCost = function(s) {
 		} else {
 			cost += rulesCost;
 		}
-	} else {
-		cost += rulesCost * .75;
 	}
-		
-	
+
 	// Food
 	cost += foodCost * 4;
 	switch(s.diet) {
diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw
index 951cef68911..a28539ae688 100644
--- a/src/npc/fFeelings.tw
+++ b/src/npc/fFeelings.tw
@@ -405,7 +405,7 @@ My favorite part of my body i<<s>>
 			<<if $PC.vagina == 1>>
 				body, <<Master>>," she <<say>>s eagerly. "I love your cock in my hole<<s>>, and your pu<<ss>>y i<<s>> <<s>>o deliciou<<s>>.
 			<<else>>
-				cock, <<Master>>," she <<say>>s eagerly. "I love it in<<side>> my hole<<s>>.
+				cock, <<Master>>," she <<say>>s eagerly. "I love it in<<s>>ide my hole<<s>>.
 			<</if>>
 		<<else>>
 			pu<<ss>>y, <<Master>>," she <<say>>s eagerly. "I can ju<<s>>t imagine your clit again<<s>>t my tongue.
diff --git a/src/uncategorized/arcadeReport.tw b/src/uncategorized/arcadeReport.tw
index 06bc063d60c..7d69b8ff915 100644
--- a/src/uncategorized/arcadeReport.tw
+++ b/src/uncategorized/arcadeReport.tw
@@ -125,6 +125,7 @@
 	<<if $showEWD != 0>>
 		<br>&nbsp;&nbsp;&nbsp;
 		<<include "SA drugs">>
+		<<include "SA rules">>
 		<<include "SA diet">>
 		<<include "SA long term effects">>
 		<<include "SA relationships">>
@@ -133,6 +134,7 @@
 	<<else>>
 		<<silently>>
 		<<include "SA drugs">>
+		<<include "SA rules">>
 		<<include "SA diet">>
 		<<include "SA long term effects">>
 		<<include "SA relationships">>
diff --git a/src/uncategorized/costs.tw b/src/uncategorized/costs.tw
index 0c331b88bad..4a983bdca57 100644
--- a/src/uncategorized/costs.tw
+++ b/src/uncategorized/costs.tw
@@ -94,20 +94,20 @@
 
 <<for $i = 0; $i < $slaves.length; $i++>>
 
-<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
-<<if $slaves[$i].livingRules == "luxurious">>
-	<<if $slaves[$i].relationship >= 4>>
-	<<set $costs += ($rulesCost*3)>>
+<<if ($slaves[$i].assignment == "work in the dairy" && $dairyRestraintsSetting >= 2) || ($slaves[$i].assignment == "be confined in the arcade")>>
+	<<set $costs += ($rulesCost*.75)>>
+<<else>>
+	<<if $slaves[$i].livingRules == "luxurious">>
+		<<if $slaves[$i].relationship >= 4>>
+		<<set $costs += ($rulesCost*3)>>
+		<<else>>
+		<<set $costs += ($rulesCost*4)>>
+		<</if>>
+	<<elseif $slaves[$i].livingRules == "normal">>
+		<<set $costs += ($rulesCost*2)>>
 	<<else>>
-	<<set $costs += ($rulesCost*4)>>
+		<<set $costs += $rulesCost>>
 	<</if>>
-<<elseif $slaves[$i].livingRules == "normal">>
-	<<set $costs += ($rulesCost*2)>>
-<<else>>
-	<<set $costs += $rulesCost>>
-<</if>>
-<<else>>
-	<<set $costs += ($rulesCost*.75)>>
 <</if>>
 
 <<set $costs += $foodCost*4>>
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index 180864ef1f1..583700d0067 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -223,26 +223,27 @@
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<set $individualCosts = 0>>
 	''$slaves[$i].slaveName'':
-	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
-	<<if $slaves[$i].livingRules == "luxurious">>
-	<<if $slaves[$i].relationship >= 4>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*3)>>
-		<<set $individualCosts += ($rulesCost*3)>>
-	<<else>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*4)>>
-		<<set $individualCosts += ($rulesCost*4)>>
-	<</if>>
-	<<elseif $slaves[$i].livingRules == "normal">>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*2)>>
-		<<set $individualCosts += ($rulesCost*2)>>
-	<<else>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost)>>
-		<<set $individualCosts += $rulesCost>>
-	<</if>>
-	<<else>>
+	<<if ($slaves[$i].assignment == "work in the dairy" && $dairyRestraintsSetting >= 2) || ($slaves[$i].assignment == "be confined in the arcade")>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*.75)>>
 		<<set $individualCosts += ($rulesCost*.75)>>
+	<<else>>
+		<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].relationship >= 4>>
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*3)>>
+				<<set $individualCosts += ($rulesCost*3)>>
+			<<else>>
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*4)>>
+				<<set $individualCosts += ($rulesCost*4)>>
+			<</if>>
+		<<elseif $slaves[$i].livingRules == "normal">>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost*2)>>
+			<<set $individualCosts += ($rulesCost*2)>>
+		<<else>>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;Living expenses: ¤<<print ($rulesCost)>>
+			<<set $individualCosts += $rulesCost>>
+		<</if>>
 	<</if>>
+	
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;Basic slave food cost: ¤<<print $foodCost*4>>
 	<<set $individualCosts += $foodCost*4>>
 	<<switch $slaves[$i].diet>>
diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw
index ac977c87b3e..be679bd8655 100644
--- a/src/uncategorized/saPleaseYou.tw
+++ b/src/uncategorized/saPleaseYou.tw
@@ -191,7 +191,7 @@ serves you this week.
 		<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetish == "cumslut")>>
 			$pronounCap spends the week as your adoring oral slave, orgasming when you leave $possessive with a <<if $PC.dick == 1>>mouth full of cum<<if $PC.vagina == 1>> or a <</if>><</if>><<if $PC.vagina == 1>>face covered in your pussyjuice<</if>>.
 			<<if $PC.dick == 1 && ($fuckSlaves <= ($PC.sexualEnergy/2 + $PC.balls * $PC.balls))>>
-				Your balls produce so much cum for $object that $possessive has replaced half $possessive diet with your cum, and you often leave $object dizzy with a face and chest covered in your sticky pearly semen.
+				Your balls produce so much cum for $object that $pronoun has replaced half $possessive diet with your cum, and you often leave $object dizzy with a face and chest covered in your sticky pearly semen.
 			<<elseif if $PC.dick == 1 && ($fuckSlaves <= ($PC.sexualEnergy + $PC.balls * $PC.balls))>>
 				Your balls produce enough cum that $pronoun usually gets facials after a mouthful of semen, and $object loves you for it.
 			<<else>>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 4117260172e..a015bec176a 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -1,13 +1,140 @@
 :: SA rules [nobr]
 
-<<switch $slaves[$i].assignment>>
+<<if $slaves[$i].fuckdoll == 0>>
+	She
+	<<if $slaves[$i].fetish == "mindbroken">>
+		is mentally broken so none of the rules have any impact.
+	<<else>>
+		<<switch $slaves[$i].assignment>>
+		<<case "be confined in the arcade">>
+			<<if $slaves[$i].devotion < -50>>
+				is so unhappy that she has little interest in getting off, not that she gets a choice.
+				<<set $slaves[$i].need = 0>>
+			<<elseif $slaves[$i].energy <= 20>>
+				is frigid and has little interest in getting off, not that she gets a choice.
+				<<set $slaves[$i].need = 0>>
+			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
+				<<if ($slaves[$i].devotion <= 20)>>
+					gets off at work despite her reluctance, @@.hotpink;habituating her to being a fuckhole.@@
+					<<set $slaves[$i].devotion += 1>>
+					<<if ($slaves[$i].trust > -20) && ($slaves[$i].devotion <= 20)>>
+						She hates herself for climaxing, and knows the mild aphrodisiacs in the food are forcing her arousal, @@.gold;frightening her.@@
+						<<set $slaves[$i].trust -= 1>>
+					<</if>>
+					<<set $slaves[$i].need -= 20>>
+				<<elseif ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation")>>
+					gets off at work, so being unable to sate her urges doesn't affect her seriously.
+					<<set $slaves[$i].need -= 20>>
+				<<else>>
+					gets off at work, so being unable to touch herself doesn't bother her.
+					<<set $slaves[$i].need -= 20>>
+				<</if>>
+			<</if>>
+			<<if ($slaves[$i].attrKnown == 0)>>
+				<<if ($week-$slaves[$i].weekAcquired > 4) && $slaves[$i].energy > 20>>
+					<<set $slaves[$i].attrKnown = 1>>
+					<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> has been monitoring her as her body gets used. It seems she is
+					<<saRulesAttractionDiscovery>>
+				<</if>>
+			<</if>>
+		<<case "be the Madam">>
+			<<if $slaves[$i].energy <= 20>>
+				is frigid and has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting her sexual outlets superfluous<</if>>.	
+				<<set $slaves[$i].need = 0>>
+			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
+				<<if ($slaves[$i].releaseRules != "permissive") && ($slaves[$i].releaseRules != "masturbation")>>
+					gets off at work, so being forbidden from masturbation doesn't really bother her.
+					<<set $slaves[$i].need -= 20>>
+				<<else>>
+					gets off at work, so she doesn't feel the need for release that often.
+					<<set $slaves[$i].need -= 20>>
+				<</if>>
+			<<else>>
+				<<if ($slaves[$i].releaseRules == "restrictive")>>
+					willingly begs you to
+					<<saRulesPlayerFetishPlay>>
+					whenever she crosses paths with you.
+					<<saRulesPlayerEnergy>>
+					<<saRulesPlayerDiscoversFetish>>
+					<<saRulesPlayerDrugEffects>>
+				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
+					<<if ($slaves[$i].devotion < 80)>>
+						is a little disapointed that she's limited to her hands and toys, but @@.mediumaquamarine;trusts you know what's best for her.@@ 
+						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
+					<<else>>
+						@@.mediumaquamarine;trusts your judgement@@ that only she really knows how to pleasure herself, though she @@.mediumorchid;often wonders why you don't use her.@@
+						<<set $slaves[$i].trust += 1, $slaves[$i].devotion -= 2, $slaves[$i].need = 0>>
+					<</if>>
+					<<if $slaves[$i].devotion > 20>>
+						When she does play with herself, she
+						<<saRulesMasturbationFetishPlay>>
+						<<saRulesMasturbationDiscoversFetish>>
+					<</if>>
+					<<saRulesMasturbationDrugEffects>>
+				<<else>> /* releaseRules not restrictive */
+					<<if ($universalRulesConsent == 0)>>
+						happily @@.mediumaquamarine;avails herself@@ of your permission to demand that other slaves have sex with her.
+						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
+						<<saRulesRapeFetish>>
+						<<saRulesRapeDiscoversFetish>>
+					<<else>> /* universalRulesConsent is not zero */
+						@@.mediumaquamarine;relies@@ on your other slaves for mutual satisfaction,
+						<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
+						<<saRulesConsentFetish>>
+						<<saRulesConsentDiscoversFetish>>
+					<</if>> /* closes universalRulesConsent */
+					<<saRulesPermissiveDrugEffects>>
+				<</if>> /* closes releaseRules not restrictive */
+			<</if>>
+
+			<<if ($slaves[$i].livingRules == "luxurious")>>
+				She is @@.hotpink;very happy@@ with her private room in $brothelName and @@.mediumaquamarine;trusts@@ you a bit more for placing her in charge of it.
+				<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
+			<</if>>
+
+			<<if ($universalRulesConsent == 0)>>
+				<<if ($slaves[$i].releaseRules != "restrictive")>>
+					<<if ($slaves[$i].energy > 95)>>
+						<<if $brothel.length > 2>>
+							Under the rules, she's allowed to demand that other slaves to get her off, and she @@.hotpink;adores@@ you for leaving plentiful outlets for her nymphomania under her care.
+						<<else>>
+							Under the rules, she's allowed to demand that other slaves to get her off, and she @@.hotpink;eagerly awaits@@ the day you assign more girls to $brothelName.
+						<</if>>
+						<<set $slaves[$i].devotion += 1>>
+					<<elseif ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
+						<<if ($slaves[$i].fetish == "sadist")>>
+							<<if $brothel.length > 2>>
+								Under the rules, she's allowed to sexually abuse other slaves, and she @@.hotpink;adores@@ you for providing a whole brothel of girls for her to rape.
+							<<else>>
+								Under the rules, she's allowed to sexually abuse other slaves, and she @@.hotpink;eagerly awaits@@ the day you assign more girls to $brothelName for her to rape.
+							<</if>>
+							<<set $slaves[$i].devotion += 1>>
+						<<elseif ($slaves[$i].fetish == "dom")>>
+							<<if $brothel.length > 2>>
+								Under the rules, she's allowed to force other slaves to have sex with her, and she @@.hotpink;adores@@ you for allowing her a brothel of girls to dominate.
+							<<else>>
+								Under the rules, she's allowed to force other slaves to have sex with her, and she @@.hotpink;eagerly awaits@@ the day you assign more girls to her domain.
+							<</if>>
+							<<set $slaves[$i].devotion += 1>>
+						<</if>>
+					<</if>>
+				<</if>>
+			<</if>>
+
+			<<if ($slaves[$i].attrKnown == 0)>>
+				<<if ($week-$slaves[$i].weekAcquired > 4) && $slaves[$i].energy > 20>>
+					<<set $slaves[$i].attrKnown = 1>>
+					<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> has been monitoring her as she manages clients, analyzing her tastes. It seems she is
+					<<saRulesAttractionDiscovery>>
+				<</if>>
+			<</if>>
 
-<<default>>
-	<<if $slaves[$i].fuckdoll == 0>>
-		She
-		<<if $slaves[$i].fetish == "mindbroken">>
-			is mentally broken so none of the rules have any impact.
-		<<else>>
+			<<if $slaves[$i].devotion > 50>>
+				She does her best for you, so she frequently deserves a reward and never needs to be punished.
+				<<set _punishments = 0>>
+				<<set _rewards = 3>>
+			<</if>>
+		<<default>>
 			<<if $slaves[$i].devotion < -50>>
 				is so unhappy that she has little interest in getting off<<if ($slaves[$i].releaseRules != "permissive")>>, making the rule restricting her sexual outlets superfluous<</if>>.
 				<<set $slaves[$i].need = 0>>
@@ -41,198 +168,15 @@
 						<<else>>
 							doesn't mind having to come to you to beg for sexual release.
 						<</if>>
-						<<if $freeSexualEnergy > 0>>
-							<<if $freeSexualEnergy == 3>>
-								You have surplus sexual energy to burn, even when she doesn't ask, and she
-								<<if $slaves[$i].devotion <= 20>>
-									@@.hotpink;hates herself@@ for how often she gets off on you relieving your needs with her body.
-								<<else>>
-									@@.hotpink;gets used to being a sex slave@@ every time she climaxes as you use her.
-								<</if>>
-								<<set $slaves[$i].devotion += 2, $slaves[$i].need = 0>>
-								<<SimpleSexAct $slaves[$i] 10>>
-							<<elseif $freeSexualEnergy == 2>>
-								You have surplus sexual energy to fuck her whenever she forces herself to ask, and she is @@.hotpink;sexually dependent@@ on you.
-								<<set $slaves[$i].devotion += 1, $slaves[$i].need -= 40>>
-								<<SimpleSexAct $slaves[$i] 5>>
-							<<else>>
-								You have little surplus sexual energy, and occasionally, she asks in vain.
-								<<set $slaves[$i].need -= 20>>
-								<<SimpleSexAct $slaves[$i] 2>>
-							<</if>>
-						<<else>>
-							You have no surplus sexual energy, and she asks in vain, @@.gold;reducing her trust@@ in you.
-							<<set $slaves[$i].trust -= 1>>
-						<</if>>
+						<<saRulesPlayerEnergy>>
 					<<else>> /* $slaves[$i].devotion >= 50 */
 						willingly begs you to
-						<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
-							<<switch $slaves[$i].fetish>>
-							<<case "submissive">>
-								hold her down and fuck her
-							<<case "cumslut">>
-								<<if $PC.dick == 1>>
-									cum in her mouth
-								<<else>>
-									use your strap-on on her mouth
-								<</if>>
-							<<case "humiliation">>
-								use her in public
-							<<case "buttslut">>
-								fuck her butt
-							<<case "boobs">>
-								fondle her breasts
-							<<case "sadist">>
-								let her help you abuse other slaves
-							<<case "masochist">>
-								hurt her
-							<<case "dom">>
-								let her help you use other slaves
-							<<case "pregnancy">>
-								<<if isFertile($slaves[$i]) && $PC.dick == 1>>
-									put a baby in her
-								<<elseif $slaves[$i].bellyPreg >= 1500 || $slaves[$i].bellyImplant >= 1500>>
-									enjoy her fecund curves
-								<<else>>
-									breed her
-								<</if>>
-							<<default>>
-								fuck her
-							<</switch>>
-						<<else>>
-							fuck her
-						<</if>>
+						<<saRulesPlayerFetishPlay>>
 						every chance she gets.
-						<<if $freeSexualEnergy > 0>>
-							<<if $freeSexualEnergy == 3>>
-								You have surplus sexual energy to burn, even when she doesn't ask, and she finds @@.mediumaquamarine;complete sexual satisfaction@@ from you.
-								<<set $slaves[$i].trust += 2, $slaves[$i].need = 0>>
-								<<SimpleSexAct $slaves[$i] 10>>
-							<<elseif $freeSexualEnergy == 2>>
-								You have surplus sexual energy to fuck her whenever she asks, and she is @@.mediumaquamarine;sexually reliant@@ on you.
-								<<set $slaves[$i].trust += 1, $slaves[$i].need -= 40>>
-								<<SimpleSexAct $slaves[$i] 5>>
-							<<else>>
-								You have little surplus sexual energy, and sometimes she asks in vain.
-								<<set $slaves[$i].need -= 20>>
-								<<SimpleSexAct $slaves[$i] 2>>
-							<</if>>
-						<<else>>
-							You have no surplus sexual energy, and she asks in vain, @@.gold;reducing her trust@@ in you.
-							<<set $slaves[$i].trust -= 1>>
-						<</if>>
+						<<saRulesPlayerEnergy>>
 					<</if>> /* closes $slaves[$i].devotion >= 50 */
-					<<if $slaves[$i].fetishKnown == 0>>
-						<<if $slaves[$i].devotion > 20 || $slaves[$i].trust <= -20>>
-							<<if $freeSexualEnergy > 0>>
-								<<if $freeSexualEnergy > random(0,5)>>
-									<<set $slaves[$i].fetishKnown = 1>>
-									You discover that she really likes it when you
-									<<switch $slaves[$i].fetish>>
-									<<case "submissive">>
-										hold her down and fuck her; @@.lightcoral;she's a submissive!@@
-									<<case "cumslut">>
-										<<if $PC.dick == 1>>
-											cum in her mouth; @@.lightcoral;she's a cumslut!@@
-										<<else>>
-											use your strap-on in her mouth; @@.lightcoral;she's a cumslut!@@
-										<</if>>
-									<<case "humiliation">>
-										use her in public; @@.lightcoral;she's a humiliation fetishist!@@
-									<<case "buttslut">>
-										<<if canDoAnal($slaves[$i])>>fuck her butt<<else>>tease her anus<</if>>; @@.lightcoral;she's an anal slut!@@
-									<<case "boobs">>
-										fondle her breasts; @@.lightcoral;she's a boob fetishist!@@
-									<<case "sadist">>
-										let her help you abuse other slaves; @@.lightcoral;she's a sadist!@@
-									<<case "masochist">>
-										hurt her; @@.lightcoral;she's a masochist!@@
-									<<case "dom">>
-										let her help you use other slaves; @@.lightcoral;she's dominant!@@
-									<<case "pregnancy">>
-										<<if $PC.dick == 1>>
-											<<if $slaves[$i].mpreg == 0>>
-												come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
-											<<else>>
-												come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
-											<</if>>
-										<<else>>
-											talk dirty and call her a mother; @@.lightcoral;she's a pregnancy fetishist!@@
-										<</if>>
-									<<default>>
-										fuck her; @@.lightcoral;she's got a normal sexuality.@@
-									<</switch>>
-								<</if>>
-							<</if>>
-						<</if>>
-					<</if>> /* closes fetish discovery */
-					<<if $slaves[$i].balls > 0>>
-						<<if ($slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement")>>
-							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
-								<<if $slaves[$i].hormoneBalance >= 100>>
-									She can't seem to get enough cum out of her terribly swollen balls in one orgasm to relieve the pressure:
-									<<if $slaves[$i].dick>>
-										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
-									<<else>>
-										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
-									<</if>>
-									This forces her to come to you for release many times a day, and she @@.mediumaquamarine;is desperately reliant@@
-									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
-										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
-									<<else>>
-										on you for relief.
-									<</if>>
-									<<set $slaves[$i].trust += 2>>
-								<<else>>
-									Her terribly swollen balls force her to come to you for release several times a day, and she @@.mediumaquamarine;learns to rely@@
-									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
-										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
-									<<else>>
-										on you for relief.
-									<</if>>
-									<<set $slaves[$i].trust += 1>>
-								<</if>>
-							<<else>>
-								She refuses to come to you for help with her terribly swollen balls, no matter how backed up she becomes. The intense blueballing only @@.mediumorchid;makes her dislike you more.@@
-								<<set $slaves[$i].devotion -= 1>>
-							<</if>>
-						<<elseif $slaves[$i].drugs == "hyper testicle enhancement">>
-							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
-								<<if $slaves[$i].hormonebalance >= 100>>
-									She can't seem to get enough cum out of her grotesquely swollen balls in one orgasm to get relieve the pressure:
-									<<if $slaves[$i].dick>>
-										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
-									<<else>>
-										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
-									<</if>>
-									This forces her to come to you for release many times a day, and she @@.mediumaquamarine;is desperately reliant@@
-									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
-										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
-									<<else>>
-										on you for relief.
-									<</if>>
-									<<set $slaves[$i].trust += 2>>
-								<<else>>
-									Her grotesquely swollen balls force her to come to you for release dozens of times a day, and she @@.mediumaquamarine;is desperately reliant@@
-									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
-										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
-									<<else>>
-										on you for relief.
-									<</if>>
-									<<set $slaves[$i].trust += 1>>
-								<</if>>
-							<<else>>
-								She refuses to come to you for help with her grotesquely swollen balls, no matter how backed up and sore she becomes. The intense blueballing only @@.mediumorchid;makes her hate you more.@@
-								<<set $slaves[$i].devotion -= 3>>
-							<</if>>
-						<</if>>
-					<</if>> /* close overactive balls block */
-					<<if $slaves[$i].drugs == "super fertility drugs" && canGetPregnant($slaves[$i]) && $slaves[$i].eggType == "human" && $PC.dick == 1>> 
-						<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
-							Her reproductive system is in overdrive leading her to come to you for insemination several times a day; she @@.mediumaquamarine;desperately hopes@@ for the day your seed takes root in her womb.
-							<<set $slaves[$i].trust += 1>>
-						<</if>>
-					<</if>>
+					<<saRulesPlayerDiscoversFetish>>
+					<<saRulesPlayerDrugEffects>>
 				<<elseif ($slaves[$i].releaseRules == "masturbation")>>
 					<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust > -20)>>
 						takes solace in her permission to masturbate rather than being forced to beg for sex, @@.mediumaquamarine;reducing her fear@@ of you.
@@ -252,151 +196,10 @@
 					<</if>>
 					<<if $slaves[$i].devotion > 20>>
 						When she does play with herself, she
-						<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
-							<<if ($slaves[$i].fetish == "submissive")>>
-								frequently pretends to be getting held down and dominated.
-							<<elseif ($slaves[$i].fetish == "cumslut")>>
-								<<if $slaves[$i].dick > 5>>
-									enjoys giving herself head.
-								<<elseif $slaves[$i].dick > 0>>
-									enjoys licking up her own cum.
-								<<else>>
-									always has a dildo in her mouth.
-								<</if>>
-							<<elseif ($slaves[$i].fetish == "humiliation")>>
-								usually does it out in the open for all to see.
-							<<elseif ($slaves[$i].fetish == "buttslut")>>
-								<<if ($slaves[$i].anus > 0)>>
-									usually pounds her ass with the largest dildo she can find.
-								<<else>>
-									enjoys fiddling with her virgin asshole.
-								<</if>>
-							<<elseif ($slaves[$i].fetish == "boobs")>>
-								pays extra attention to her breasts and nipples.
-							<<elseif ($slaves[$i].fetish == "sadist")>>
-								frequently poses threats at herself.
-							<<elseif ($slaves[$i].fetish == "masochist")>>
-								frequently pretends to be getting held down and forcibly raped.
-							<<elseif ($slaves[$i].fetish == "dom")>>
-								usually pretends to dominate herself.
-							<<elseif ($slaves[$i].fetish == "pregnancy")>>
-								<<if $slaves[$i].belly > 1500>>
-									<<set _belly = bellyAdjective($activeSlave)>>
-									always rubs and teases her _belly belly while doing so.
-								<<elseif isItemAccessible("a small empathy belly")>>
-									frequently straps on a fake belly to enhance her fun.
-								<<else>>
-									frequently pretends to be
-									<<if $activeSlave.balls > 0>>
-										getting a girl pregnant.
-									<<else>>
-										getting knocked up.
-									<</if>>
-								<</if>>
-							<<elseif ($slaves[$i].energy > 95)>>
-								strives to achieve as many orgasms as she can in one session.
-							<<else>>
-								quickly gets off and moves on.
-							<</if>>
-						<<elseif ($slaves[$i].energy > 95)>>
-							strives to achieve as many orgasms as she can in one session.
-						<<else>>
-							quickly gets off and moves on.
-						<</if>> /* closes ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60) */
-						<<if ($slaves[$i].fetishKnown == 0) && (random(1,20) == 1)>>
-							<<set $slaves[$i].fetishKnown = 1>>
-							However, you start to notice a trend in her fantasies,
-							<<if ($slaves[$i].fetish == "submissive")>>
-								she likes to tie herself up and boss herself around; @@.lightcoral;she's a submissive!@@
-							<<elseif ($slaves[$i].fetish == "cumslut")>>
-								<<if $slaves[$i].dick > 0>>
-									she often eats her own cum when she's finished; @@.lightcoral;she's a cumslut!@@
-								<<else>>
-									she likes to have something, anything, in her mouth while she masturbates; @@.lightcoral;she's a cumslut!@@
-								<</if>>
-							<<elseif ($slaves[$i].fetish == "humiliation")>>
-								she tends to masturbate in places where others can walk in on her; @@.lightcoral;she's a humiliation fetishist!@@
-							<<elseif ($slaves[$i].fetish == "buttslut")>>
-								she always pays special attention to her butthole; @@.lightcoral;she's an anal slut!@@
-							<<elseif ($slaves[$i].fetish == "boobs")>>
-								she always has a hand to her nipples; @@.lightcoral;she's a boob fetishist!@@
-							<<elseif ($slaves[$i].fetish == "sadist")>>
-								she tends to threaten her toys; @@.lightcoral;she's a sadist!@@
-							<<elseif ($slaves[$i].fetish == "masochist")>>
-								she often to abuses herself; @@.lightcoral;she's a masochist!@@
-							<<elseif ($slaves[$i].fetish == "dom")>>
-								she sometimes bosses her toys around; @@.lightcoral;she's dominant!@@
-							<<elseif ($slaves[$i].fetish == "pregnancy")>>
-								she frequently pretends to either get pregnant, be pregnant, or get someone else pregnant; @@.lightcoral;she's a pregnancy fetishist!@@
-							<<elseif ($slaves[$i].energy > 95)>>
-								she's always horny; @@.lightcoral;she's a nympho!@@
-							<<else>>
-								@@.lightcoral;they are incredibly mundane.@@
-							<</if>>
-						<</if>>
-					<</if>>
-					<<if $slaves[$i].balls > 0>>
-						<<if $slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement">>
-							<<if $slaves[$i].hormonebalance >= 100>>
-								She can't seem to get enough cum out of her terribly swollen balls in one orgasm to get relieve the pressure:
-								<<if $slaves[$i].dick>>
-										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
-									<<else>>
-										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
-									<</if>>
-								She masturbates as often as she can, but @@.mediumorchid;can't find relief.@@
-								<<set $slaves[$i].devotion-->>
-							<<else>>
-								Her terribly swollen balls force her to masturbate several times a day, cultivating a need for sex that @@.mediumorchid;she can't fulfill.@@
-								<<set $slaves[$i].devotion -= 1>>
-							<</if>>
-						<<elseif $slaves[$i].drugs == "hyper testicle enhancement">>
-							<<if $slaves[$i].hormonebalance >= 100>>
-								She can't seem to get enough cum out of her grotesquely swollen balls in one orgasm to get relieve the pressure:
-								<<if $slaves[$i].dick>>
-										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
-									<<else>>
-										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
-									<</if>>
-								She masturbates non-stop, but @@.mediumorchid;can't find relief.@@
-								<<set $slaves[$i].devotion -= 3>>
-							<<else>>
-								Her grotesquely swollen balls force her to masturbate constantly, cultivating a need for sex that @@.mediumorchid;she can't fulfill.@@
-								<<set $slaves[$i].devotion -= 1>>
-							<</if>>
-							<<if $slaves[$i].energy > 40>>
-								The constant orgasms steadily lose their impact, @@.red;weakening her sex drive.@@
-								<<set $slaves[$i].energy -= 2>>
-							<</if>>
-						<</if>>
-					<</if>>
-					<<if $slaves[$i].drugs == "super fertility drugs" && canGetPregnant($slaves[$i])>>
-						Her reproductive system is in overdrive,
-						<<if $slaves[$i].dick > 9>>
-							leaving her @@.mediumorchid;desperatly fucking herself@@ in an effort to get pregnant since @@.gold;you won't <<if $PC.dick == 1>>give her<<else>>let her find<</if>> the dick she needs.@@
-							<<if canImpregnate($slaves[$i], $slaves[$i])>>
-								<<KnockMeUp $slaves[$i] 5 2 $slaves[$i].ID 1>>
-							<</if>>
-							<<if $slaves[$i].mpreg == 1 && $slaves[$i].anus == 0>>
-								@@.lime;She is so baby crazed she takes her own anal virginity.@@
-								<<set $slaves[$i].anus++>>
-							<<elseif $slaves[$i].vagina == 0>>
-								@@.lime;She is so baby crazed she takes her own virginity.@@
-								<<set $slaves[$i].vagina++>>
-							<</if>>
-							<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 2>>
-						<<elseif ($slaves[$i].devotion > -20)>>
-							leaving her @@.mediumorchid;completely unfulfilled@@ since @@.gold;you won't <<if $PC.dick == 1>>give her<<else>>let her find<</if>> the dick she needs.@@
-							<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 2>>
-						<<else>>
-							leaving her desperate for a thorough seeding @@.mediumorchid;that you've forbidden her from having.@@
-							<<set $slaves[$i].devotion -= 3>>
-						<</if>>
-					<</if>>
-					<<if $slaves[$i].energy > 60>>
-						Her chronic masturbation @@.red;steadily dulls@@ her sexual pleasure.
-						<<set $slaves[$i].energy-->>
+						<<saRulesMasturbationFetishPlay>>
+						<<saRulesMasturbationDiscoversFetish>>
 					<</if>>
+					<<saRulesMasturbationDrugEffects>>
 				<<else>> /* releaseRules not restrictive */
 					<<if ($universalRulesConsent == 0)>>
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust > -20)>>
@@ -423,276 +226,8 @@
 							<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 						<</if>>
 						<<if $slaves[$i].devotion > 20>>
-							<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
-								<<if ($slaves[$i].fetish == "submissive")>>
-									plead that other slaves fuck her.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
-												@@.lime;Her asshole is loosened@@ during sex with other slaves, since most of the cocks she enticed a dominating buttfuck from are very large.
-												<<set $slaves[$i].anus++>>
-												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
-											<</if>>
-										<</if>>
-											<<if $averageDick > 5>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-												<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
-													Since most of the slaves she enticed a pounding from are extremely hung, @@.lime;her cunt gets stretched out.@@
-													<<set $slaves[$i].vagina++>>
-													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
-												<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-								<<elseif ($slaves[$i].fetish == "cumslut")>>
-									suck or be sucked by any slave she fancies.
-									<<set _fuckCount = random(5,15)>>
-									<<set $slaves[$i].oralCount += _fuckCount, $oralTotal += _fuckCount>>
-								<<elseif ($slaves[$i].fetish == "humiliation")>>
-									demand that other slaves let her fuck them in public.
-									<<if $slaves[$i].assignmentVisible>>
-									<<if !$slaves[$i].rivalry>>
-										<<SlaveSort $RapeableIDs>>
-										<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
-											<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
-											<<if !$slaves[_j].rivalry>>
-											<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
-											<<if $slaves[_j].devotion < 20>>
-											<<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>>
-												<<SimpleSlaveFucking $slaves[_j] 4>>
-												<<if canPenetrate($slaves[_j])>>
-													<<set _fuckCount = random(1,3)>>
-													<<set $slaves[_j].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-												<</if>>
-												<<break>>
-											<</if>>
-											<</if>>
-											<</if>>
-											<</if>>
-										<</for>>
-									<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 4>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(1,3)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<elseif ($slaves[$i].fetish == "buttslut") && canDoAnal($slaves[$i])>>
-									demand that other slaves penetrate her anus.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
-												Since most of the slaves she demands anal sex from are extremely hung, @@.lime;her asshole gets stretched out.@@
-												<<set $slaves[$i].anus += 1>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<set _fuckCount = random(5,12)>>
-									<<set $slaves[$i].analCount += _fuckCount, $analTotal += _fuckCount>>
-								<<elseif ($slaves[$i].fetish == "boobs")>>
-									demand that other slaves massage her breasts.
-									<<set _fuckCount = random(10,25)>>
-									<<set $slaves[$i].mammaryCount += _fuckCount, $mammaryTotal += _fuckCount>>
-								<<elseif ($slaves[$i].fetish == "sadist")>>
-									force the most reluctant slaves to let her fuck them.
-									<<if $slaves[$i].assignmentVisible>>
-									<<if !$slaves[$i].rivalry>>
-										<<SlaveSort $RapeableIDs>>
-										<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
-											<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
-											<<if !$slaves[_j].rivalry>>
-											<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
-											<<if $slaves[_j].devotion <= 50>>
-											<<if $slaves[_j].sexualFlaw != "none">>
-												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 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
-												<<elseif $slaves[_j].sexualFlaw == "shamefast">>
-													rapes the poor slave in public. $slaves[_j].slaveName is terribly shamefast
-												<<elseif $slaves[_j].sexualFlaw == "idealistic">>
-													rapes the poor slave every time she catches her being romantic. $slaves[_j].slaveName is still idealistic
-												<<else>>
-													rapes the poor slave every chance she gets,
-												<</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>>
-												<<SimpleSlaveFucking $slaves[_j] 4>>
-												<<if canPenetrate($slaves[_j])>>
-													<<set _fuckCount = random(1,3)>>
-													<<set $slaves[_j].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-												<</if>>
-											<</if>>
-											<</if>>
-											<</if>>
-											<</if>>
-										<</for>>
-									<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 4>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(1,3)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<elseif ($slaves[$i].fetish == "masochist")>>
-									demand that other slaves hurt her.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
-												@@.lime;Her asshole is loosened@@ during sex with hung slaves, since she often relies on painal to address her needs.
-												<<set $slaves[$i].anus += 1>>
-												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
-											<</if>>
-										<</if>>
-										<<if $averageDick > 5>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
-													Since she usually demands that hung slaves fuck her hard enough to make her pussy hurt, @@.lime;her cunt gets stretched out.@@
-													<<set $slaves[$i].vagina += 1>>
-													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
-												<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 12>>
-								<<elseif ($slaves[$i].fetish == "dom")>>
-									force other slaves to submit to her.
-									<<if $slaves[$i].assignmentVisible>>
-									<<if !$slaves[$i].rivalry>>
-										<<SlaveSort $RapeableIDs>>
-										<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
-											<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
-											<<if !$slaves[_j].rivalry>>
-											<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
-											<<if $slaves[_j].devotion < 20>>
-											<<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>>
-												<<SimpleSlaveFucking $slaves[_j] 4>>
-											<</if>>
-											<</if>>
-											<</if>>
-											<</if>>
-										<</for>>
-									<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(6,9)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<elseif ($slaves[$i].fetish == "pregnancy")>>
-									demand that other slaves indulge her pregnancy fetish.
-									<<if $averageDick > 5>>
-										<<if $slaves[$i].mpreg == 0>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-											<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
-												Since she constantly demands to be fucked deeply to get her womb filled with cum, @@.lime;her cunt gets stretched out.@@
-												<<set $slaves[$i].vagina += 1>>
-												<<set _fuckCount = random(7,14)>>
-												<<set $slaves[$i].vaginalCount += _fuckCount, $vaginalTotal += _fuckCount>>
-											<</if>>
-											<</if>>
-										<<else>>
-											<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
-												Since she constantly demands to be fucked deeply to get her womb filled with cum, @@.lime;her ass gets stretched out.@@
-												<<set $slaves[$i].anus += 1>>
-												<<set _fuckCount = random(7,14)>>
-												<<set $slaves[$i].analCount += _fuckCount, $analTotal += _fuckCount>>
-											<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(6,9)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<elseif ($slaves[$i].energy > 95)>>
-									demand that your other slaves satisfy her formidable appetites.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
-												@@.lime;Her asshole is loosened@@ during sex with well endowed slaves, since she's so addicted to sex all her holes see heavy traffic.
-												<<set $slaves[$i].anus += 1>>
-												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
-											<</if>>
-										<</if>>
-										<<if $averageDick > 5>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
-													She indulges in non-stop sex with your well endowed slaves, so much so that @@.lime;her cunt gets stretched out.@@
-													<<set $slaves[$i].vagina += 1>>
-													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
-												<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(3,6)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<else>>
-									demand that other slaves have sex with her.
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(3,6)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<</if>>
-							<<else>>
-								demand that other slaves have sex with her.
-								<<SimpleSlaveFucking $slaves[$i] 7>>
-								<<if canPenetrate($slaves[$i])>>
-									<<set _fuckCount = random(3,6)>>
-									<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-								<</if>>
-							<</if>> /* closes ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60) */
-							<<if ($slaves[$i].fetishKnown == 0)>>
-								<<if (random(1,2) == 1)>>
-								<<set $slaves[$i].fetishKnown = 1>>
-								You discover that she really likes it when other girls
-								<<if ($slaves[$i].fetish == "submissive")>>
-									hold her down and fuck her; @@.lightcoral;she's a submissive!@@
-								<<elseif ($slaves[$i].fetish == "cumslut")>>
-									cum in her mouth; @@.lightcoral;she's a cumslut!@@
-								<<elseif ($slaves[$i].fetish == "humiliation")>>
-									use her in public; @@.lightcoral;she's a humiliation fetishist!@@
-								<<elseif ($slaves[$i].fetish == "buttslut")>>
-									<<if ($slaves[$i].anus > 0)>>
-										<<if canDoAnal($slaves[$i])>>fuck her butt<<else>>tease her anus<</if>>;
-									<<else>>
-									tease her virgin anus;
-									<</if>>
-									@@.lightcoral;she's an anal slut!@@
-								<<elseif ($slaves[$i].fetish == "boobs")>>
-									fondle her breasts; @@.lightcoral;she's a boob fetishist!@@
-								<<elseif ($slaves[$i].fetish == "sadist")>>
-									let her help you abuse other slaves; @@.lightcoral;she's a sadist!@@
-								<<elseif ($slaves[$i].fetish == "masochist")>>
-									hurt her; @@.lightcoral;she's a masochist!@@
-								<<elseif ($slaves[$i].fetish == "dom")>>
-									let her help you use other slaves; @@.lightcoral;she's dominant!@@
-								<<elseif ($slaves[$i].fetish == "pregnancy")>>
-									<<if $slaves[$i].mpreg == 0>>
-										come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
-									<<else>>
-										come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
-									<</if>>
-								<<else>>
-									fuck her; @@.lightcoral;she's got a normal sexuality.@@
-								<</if>>
-								<</if>>
-							<</if>>
+							<<saRulesRapeFetish>>
+							<<saRulesRapeDiscoversFetish>>
 						<</if>>
 					<<else>> /* universalRulesConsent is not zero */
 						<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust > -20)>>
@@ -719,244 +254,11 @@
 							<<set $slaves[$i].trust += 1, $slaves[$i].need = 0>>
 						<</if>>
 						<<if $slaves[$i].devotion > 20>>
-							<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
-								<<if ($slaves[$i].fetish == "submissive")>>
-									usually pairing off with a more dominant slave.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
-												@@.lime;Her asshole is loosened@@ during sex with other slaves, since most of the cocks she lets dominate her backdoor are very large.
-												<<set $slaves[$i].anus += 1>>
-												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
-											<</if>>
-										<</if>>
-										<<if $averageDick > 5>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-												<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
-													Since most of the slaves she takes a pounding from are extremely hung, @@.lime;her cunt gets stretched out.@@
-													<<set $slaves[$i].vagina += 1>>
-													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
-												<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-								<<elseif ($slaves[$i].fetish == "cumslut")>>
-									and is popular for her willingness to give oral.
-									<<set _fuckCount = random(5,15)>>
-									<<set $slaves[$i].oralCount += _fuckCount, $oralTotal += _fuckCount>>
-								<<elseif ($slaves[$i].fetish == "humiliation")>>
-									usually asking them to fuck out in the open.
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(1,3)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<elseif ($slaves[$i].fetish == "buttslut")>>
-									looking after anyone who will
-									<<if ($slaves[$i].anus > 0)>>
-										<<if canDoAnal($slaves[$i])>>
-											penetrate
-											<<set _fuckCount = random(5,12)>>
-											<<set $slaves[$i].analCount += _fuckCount, $analTotal += _fuckCount>>
-										<<else>>
-											tease
-										<</if>>
-										her ass
-									<<else>>
-										tease her virgin anus
-									<</if>>
-									in return.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
-												Since most of the slaves she enjoys anal sex with are extremely hung, @@.lime;her asshole gets stretched out.@@
-												<<set $slaves[$i].anus += 1>>
-											<</if>>
-										<</if>>
-									<</if>>
-								<<elseif ($slaves[$i].fetish == "boobs")>>
-									seeing to anyone who will show her breasts some love.
-									<<set _fuckCount = random(10,25)>>
-									<<set $slaves[$i].mammaryCount += _fuckCount, $mammaryTotal += _fuckCount>>
-								<<elseif ($slaves[$i].fetish == "sadist")>>
-									usually pairing off with a masochistic slave willing to accept her abuse.
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(1,3)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<elseif ($slaves[$i].fetish == "masochist")>>
-									usually pairing off with an abusive slave.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
-												@@.lime;Her asshole is loosened@@, since she begs hung slaves to fuck her butt until she cries.
-												<<set $slaves[$i].anus += 1>>
-												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
-											<</if>>
-										<</if>>
-										<<if $averageDick > 5>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
-													Since she eagerly begs hung slaves to fuck her until she cries, @@.lime;her cunt gets stretched out.@@
-													<<set $slaves[$i].vagina += 1>>
-													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
-												<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 6>>
-								<<elseif ($slaves[$i].fetish == "dom")>>
-								usually pairing off with a submissive bitch.
-								<<elseif ($slaves[$i].fetish == "pregnancy")>>
-									doing her best to pair off with any pregnant slaves.
-									<<if $slaves[$i].mpreg == 0>>
-										<<if $averageDick > 5>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-											<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
-												She also takes cock whenever she can, begging to be fucked deeply to get her womb filled with cum, so @@.lime;her cunt gets stretched out.@@
-												<<set $slaves[$i].vagina += 1>>
-												<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
-											<</if>>
-											<</if>>
-										<</if>>
-									<<else>>
-										<<if $averageDick > 5>>
-											<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
-												She also takes cock whenever she can, begging to be fucked deeply to get her womb filled with cum, so @@.lime;her ass gets stretched out.@@
-												<<set $slaves[$i].anus += 1>>
-												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
-											<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(6,9)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<elseif ($slaves[$i].energy > 95)>>
-									and has to give out a lot of favors to get enough attention for herself.
-									<<if $averageDick > 4>>
-										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
-											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
-												@@.lime;Her asshole is loosened@@ during sex with well endowed slaves, since she's so addicted to sex all her holes see heavy traffic.
-												<<set $slaves[$i].anus += 1>>
-												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
-											<</if>>
-										<</if>>
-										<<if $averageDick > 5>>
-											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
-												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
-													She indulges in non-stop sex with your well endowed slaves, so much so that @@.lime;her cunt gets stretched out.@@
-													<<set $slaves[$i].vagina += 1>>
-													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
-												<</if>>
-											<</if>>
-										<</if>>
-									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(3,6)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<<else>>
-									doing her best to get off and move on.
-									<<SimpleSlaveFucking $slaves[$i] 7>>
-									<<if canPenetrate($slaves[$i])>>
-										<<set _fuckCount = random(3,6)>>
-										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-									<</if>>
-								<</if>>
-							<<else>>
-								doing her best to get off and move on.
-								<<SimpleSlaveFucking $slaves[$i] 7>>
-								<<if canPenetrate($slaves[$i])>>
-									<<set _fuckCount = random(3,6)>>
-									<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
-								<</if>>
-							<</if>> /* closes ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60) */
-							<<if ($slaves[$i].fetishKnown == 0)>>
-								<<if (random(1,2) == 1)>>
-									<<set $slaves[$i].fetishKnown = 1>>
-									However, one of her partners
-									<<if ($slaves[$i].fetish == "submissive")>>
-										holds her down, and she loves it; @@.lightcoral;she's a submissive!@@
-									<<elseif ($slaves[$i].fetish == "cumslut")>>
-										finally has to push her away to get her to stop sucking; @@.lightcoral;she's a cumslut!@@
-									<<elseif ($slaves[$i].fetish == "humiliation")>>
-										fucks her in public, and she loves it; @@.lightcoral;she's a humiliation fetishist!@@
-									<<elseif ($slaves[$i].fetish == "buttslut")>>
-										<<if ($slaves[$i].anus > 0)>>
-											<<if canDoAnal($slaves[$i])>>fucks her butt<<else>>teases her anus<</if>>, and she loves it;
-										<<else>>
-										teases her virgin anus, and she loves it;
-										<</if>>
-										@@.lightcoral;she's an anal slut!@@
-									<<elseif ($slaves[$i].fetish == "boobs")>>
-										fondles her breasts, and she loves it; @@.lightcoral;she's a boob fetishist!@@
-									<<elseif ($slaves[$i].fetish == "sadist")>>
-										asks $slaves[$i].slaveName to hit her, which $slaves[$i].slaveName enjoys doing; @@.lightcoral;she's a sadist!@@
-									<<elseif ($slaves[$i].fetish == "masochist")>>
-										hits $slaves[$i].slaveName while fucking her, which only makes her hornier; @@.lightcoral;she's a masochist!@@
-									<<elseif ($slaves[$i].fetish == "dom")>>
-										asks $slaves[$i].slaveName to make her $slaves[$i].slaveName's bitch, which $slaves[$i].slaveName manages like a natural; @@.lightcoral;she's dominant!@@
-									<<elseif ($slaves[$i].fetish == "pregnancy")>>
-										pretends to get her pregnant, which she really enjoys; @@.lightcoral;she's a pregnancy fetishist!@@
-									<<elseif ($slaves[$i].energy > 95)>>
-										discovers that she cannot be satisfied; @@.lightcoral;she's a nympho!@@
-									<<else>>
-										discovers that she isn't terribly exciting; @@.lightcoral;she's got a normal sexuality.@@
-									<</if>>
-								<</if>>
-							<</if>>
+							<<saRulesConsentFetish>>
+							<<saRulesConsentDiscoversFetish>>
 						<</if>>
 					<</if>> /* closes universalRulesConsent */
-					<<if $slaves[$i].balls > 0>>
-						<<if $slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement">>
-							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
-								<<if $slaves[$i].hormonebalance >= 100>>
-									She can't seem to get enough cum out of her terribly swollen balls in one orgasm to relieve the pressure:
-									<<if $slaves[$i].dick>>
-										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
-									<<else>>
-										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
-									<</if>>
-									She is very reliant on your other girls to help her, which @@.mediumaquamarine;habituates her@@ to slave sex.
-								<<else>>
-									Her terribly swollen balls force her to rely on other slaves for release several times a day, and jetting cum into and onto your other girls @@.mediumaquamarine;habituates her@@ to slave sex.
-								<</if>>
-								<<set $slaves[$i].trust += 1>>
-							<<else>>
-								She can't seem to get enough cum out of her terribly swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something she @@.mediumorchid;blames you for.@@
-								<<set $slaves[$i].devotion -= 1>>
-							<</if>>
-						<<elseif $slaves[$i].drugs == "hyper testicle enhancement">>
-							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20) || !canPenetrate($slaves[$i])>>
-								<<if $slaves[$i].hormonebalance >= 100>>
-									She can't seem to get enough cum out of her grotesquely swollen balls in one orgasm to get relieve the pressure:
-									<<if $slaves[$i].dick>>
-										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
-									<<else>>
-										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
-									<</if>>
-									She is completely dependent on your other girls to help her, which @@.mediumaquamarine;habituates her@@ to slave sex.
-								<<else>>
-									Her grotesquely swollen balls force her to rely on other slaves for release throughout times a day, and swelling your other girls with cum @@.mediumaquamarine;habituates her@@ to slave sex, though you have to take precautions so she doesn't knock up your entire stock.
-								<</if>>
-								<<set $slaves[$i].trust += 1>>
-							<<else>>
-								She can't seem to get enough cum out of her grotesquely swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something she @@.mediumorchid;blames you for.@@
-								<<set $slaves[$i].devotion -= 1>>
-							<</if>>
-						<</if>>
-					<</if>>
-					<<if $slaves[$i].drugs == "super fertility drugs" && canGetPregnant($slaves[$i])>>
-							Her reproductive system is in overdrive leading her to seek out any dicked girl she can find several times a day. She @@.mediumaquamarine;desperately longs@@ for the day her efforts fill her womb with child.
-							<<set $slaves[$i].trust += 1>>
-					<</if>>
+					<<saRulesPermissiveDrugEffects>>
 				<</if>> /* closes releaseRules not restrictive */
 			<</if>>
 
@@ -1112,38 +414,8 @@
 			<<if ($slaves[$i].attrKnown == 0)>>
 				<<if ($week-$slaves[$i].weekAcquired > 4) && $slaves[$i].energy > 20>>
 					<<set $slaves[$i].attrKnown = 1>>
-					<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> hsa been monitoring her as she gets off, analyzing her sexuality. It seems she is
-					<<if $slaves[$i].attrXY <= 5>>
-						@@.red;disgusted by men@@
-					<<elseif $slaves[$i].attrXY <= 15>>
-						@@.red;turned off by men@@
-					<<elseif $slaves[$i].attrXY <= 35>>
-						@@.red;not attracted to men@@
-					<<elseif $slaves[$i].attrXY <= 65>>
-						indifferent to men
-					<<elseif $slaves[$i].attrXY <= 85>>
-						@@.green;attracted to men@@
-					<<elseif $slaves[$i].attrXY <= 95>>
-						@@.green;aroused by men@@
-					<<else>>
-						@@.green;passionate about men@@
-					<</if>>
-					and
-					<<if $slaves[$i].attrXX <= 5>>
-						@@.red;disgusted by women.@@
-					<<elseif $slaves[$i].attrXX <= 15>>
-						@@.red;turned off by women.@@
-					<<elseif $slaves[$i].attrXX <= 35>>
-						@@.red;not attracted to women.@@
-					<<elseif $slaves[$i].attrXX <= 65>>
-						indifferent to women.
-					<<elseif $slaves[$i].attrXX <= 85>>
-						@@.green;attracted to women.@@
-					<<elseif $slaves[$i].attrXX <= 95>>
-						@@.green;aroused by women.@@
-					<<else>>
-						@@.green;passionate about women.@@
-					<</if>>
+					<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> has been monitoring her as she gets off, analyzing her sexuality. It seems she is
+					<<saRulesAttractionDiscovery>>
 				<</if>>
 			<</if>>
 
@@ -1242,6 +514,6 @@
 					<<set $slaves[$i].trust -= _punishments>>
 				<</switch>>
 			<</if>>
-		<</if>> /*Closes mindbreak exemption*/
-	<</if>> /*Closes fuckdoll exemption*/
-<</switch>>
\ No newline at end of file
+		<</switch>>
+	<</if>> /*Closes mindbreak exemption*/
+<</if>> /*Closes fuckdoll exemption*/
\ No newline at end of file
diff --git a/src/utility/assignWidgets.tw b/src/utility/assignWidgets.tw
index 1859a6a9767..2ffcf3971b6 100644
--- a/src/utility/assignWidgets.tw
+++ b/src/utility/assignWidgets.tw
@@ -16,6 +16,7 @@
 	<<switch $args[1].toLowerCase()>>
 		<<case "be confined in the arcade" "arcade">>
 			<<set $args[0].assignment = "be confined in the arcade",    $args[0].assignmentVisible = 0, $arcadeSlaves++, $ArcadeiIDs.push(_wID)>>
+			<<set $args[0].clothing = "none", $args[0].shoes = "none", $args[0].collar = "none", $args[0].livingRules = "spare">>
 		<<case "work in the brothel" "brothel">>
 			<<set $args[0].assignment = "work in the brothel",          $args[0].assignmentVisible = 0, $brothelSlaves++, $BrothiIDs.push(_wID)>>
 		<<case "be confined in the cellblock" "cellblock">>
diff --git a/src/utility/saRulesWidgets.tw b/src/utility/saRulesWidgets.tw
new file mode 100644
index 00000000000..6b6930199f3
--- /dev/null
+++ b/src/utility/saRulesWidgets.tw
@@ -0,0 +1,920 @@
+:: saRulesWidgets [nobr widget]
+
+/* needed to manage the obscene code duplication present in the revised saRules.tw */
+
+<<widget "saRulesAttractionDiscovery">>
+
+<<if $slaves[$i].attrXY <= 5>>
+	@@.red;disgusted by men@@
+<<elseif $slaves[$i].attrXY <= 15>>
+	@@.red;turned off by men@@
+<<elseif $slaves[$i].attrXY <= 35>>
+	@@.red;not attracted to men@@
+<<elseif $slaves[$i].attrXY <= 65>>
+	indifferent to men
+<<elseif $slaves[$i].attrXY <= 85>>
+	@@.green;attracted to men@@
+<<elseif $slaves[$i].attrXY <= 95>>
+	@@.green;aroused by men@@
+<<else>>
+	@@.green;passionate about men@@
+<</if>>
+and
+<<if $slaves[$i].attrXX <= 5>>
+	@@.red;disgusted by women.@@
+<<elseif $slaves[$i].attrXX <= 15>>
+	@@.red;turned off by women.@@
+<<elseif $slaves[$i].attrXX <= 35>>
+	@@.red;not attracted to women.@@
+<<elseif $slaves[$i].attrXX <= 65>>
+	indifferent to women.
+<<elseif $slaves[$i].attrXX <= 85>>
+	@@.green;attracted to women.@@
+<<elseif $slaves[$i].attrXX <= 95>>
+	@@.green;aroused by women.@@
+<<else>>
+	@@.green;passionate about women.@@
+<</if>>
+
+<</widget>>
+
+<<widget "saRulesPlayerFetishPlay">>
+
+					<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
+						<<switch $slaves[$i].fetish>>
+						<<case "submissive">>
+							hold her down and fuck her
+						<<case "cumslut">>
+							<<if $PC.dick == 1>>
+								cum in her mouth
+							<<else>>
+								use your strap-on on her mouth
+							<</if>>
+						<<case "humiliation">>
+							use her in public
+						<<case "buttslut">>
+							fuck her butt
+						<<case "boobs">>
+							fondle her breasts
+						<<case "sadist">>
+							let her help you abuse other slaves
+						<<case "masochist">>
+							hurt her
+						<<case "dom">>
+							let her help you use other slaves
+						<<case "pregnancy">>
+							<<if isFertile($slaves[$i]) && $PC.dick == 1>>
+								put a baby in her
+							<<elseif $slaves[$i].bellyPreg >= 1500 || $slaves[$i].bellyImplant >= 1500>>
+								enjoy her fecund curves
+							<<else>>
+								breed her
+							<</if>>
+						<<default>>
+							fuck her
+						<</switch>>
+					<<else>>
+						fuck her
+					<</if>>
+
+<</widget>>
+
+<<widget "saRulesPlayerEnergy">>
+
+						<<if $freeSexualEnergy > 0>>
+							<<if $freeSexualEnergy == 3>>
+								You have surplus sexual energy to burn, even when she doesn't ask, and she
+								<<if $slaves[$i].devotion <= 20>>
+									@@.hotpink;hates herself@@ for how often she gets off on you relieving your needs with her body.
+								<<else>>
+									@@.hotpink;gets used to being a sex slave@@ every time she climaxes as you use her.
+								<</if>>
+								<<set $slaves[$i].devotion += 2, $slaves[$i].need = 0>>
+								<<SimpleSexAct $slaves[$i] 10>>
+							<<elseif $freeSexualEnergy == 2>>
+								You have surplus sexual energy to fuck her whenever she forces herself to ask, and she is @@.hotpink;sexually dependent@@ on you.
+								<<set $slaves[$i].devotion += 1, $slaves[$i].need -= 40>>
+								<<SimpleSexAct $slaves[$i] 5>>
+							<<else>>
+								You have little surplus sexual energy, and occasionally, she asks in vain.
+								<<set $slaves[$i].need -= 20>>
+								<<SimpleSexAct $slaves[$i] 2>>
+							<</if>>
+						<<else>>
+							You have no surplus sexual energy, and she asks in vain, @@.gold;reducing her trust@@ in you.
+							<<set $slaves[$i].trust -= 1>>
+						<</if>>
+
+<</widget>>
+
+<<widget "saRulesPlayerDiscoversFetish">>
+
+					<<if $slaves[$i].fetishKnown == 0>>
+						<<if $freeSexualEnergy > 0>>
+							<<if $freeSexualEnergy > random(0,5)>>
+								<<set $slaves[$i].fetishKnown = 1>>
+								You discover that she really likes it when you
+								<<switch $slaves[$i].fetish>>
+								<<case "submissive">>
+									hold her down and fuck her; @@.lightcoral;she's a submissive!@@
+								<<case "cumslut">>
+									<<if $PC.dick == 1>>
+										cum in her mouth; @@.lightcoral;she's a cumslut!@@
+									<<else>>
+										use your strap-on in her mouth; @@.lightcoral;she's a cumslut!@@
+									<</if>>
+								<<case "humiliation">>
+									use her in public; @@.lightcoral;she's a humiliation fetishist!@@
+								<<case "buttslut">>
+									<<if canDoAnal($slaves[$i])>>fuck her butt<<else>>tease her anus<</if>>; @@.lightcoral;she's an anal slut!@@
+								<<case "boobs">>
+									fondle her breasts; @@.lightcoral;she's a boob fetishist!@@
+								<<case "sadist">>
+									let her help you abuse other slaves; @@.lightcoral;she's a sadist!@@
+								<<case "masochist">>
+									hurt her; @@.lightcoral;she's a masochist!@@
+								<<case "dom">>
+									let her help you use other slaves; @@.lightcoral;she's dominant!@@
+								<<case "pregnancy">>
+									<<if $PC.dick == 1>>
+										<<if $slaves[$i].mpreg == 0>>
+											come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
+										<<else>>
+											come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
+										<</if>>
+									<<else>>
+										talk dirty and call her a mother; @@.lightcoral;she's a pregnancy fetishist!@@
+									<</if>>
+								<<default>>
+									fuck her; @@.lightcoral;she's got a normal sexuality.@@
+								<</switch>>
+							<</if>>
+						<</if>>
+					<</if>> /* closes fetish discovery */
+
+<</widget>>
+
+<<widget "saRulesPlayerDrugEffects">>
+
+					<<if $slaves[$i].balls > 0>>
+						<<if ($slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement")>>
+							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
+								<<if $slaves[$i].hormoneBalance >= 100>>
+									She can't seem to get enough cum out of her terribly swollen balls in one orgasm to relieve the pressure:
+									<<if $slaves[$i].dick>>
+										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
+									<<else>>
+										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
+									<</if>>
+									This forces her to come to you for release many times a day, and she @@.mediumaquamarine;is desperately reliant@@
+									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
+										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
+									<<else>>
+										on you for relief.
+									<</if>>
+									<<set $slaves[$i].trust += 2>>
+								<<else>>
+									Her terribly swollen balls force her to come to you for release several times a day, and she @@.mediumaquamarine;learns to rely@@
+									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
+										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
+									<<else>>
+										on you for relief.
+									<</if>>
+									<<set $slaves[$i].trust += 1>>
+								<</if>>
+							<<else>>
+								She refuses to come to you for help with her terribly swollen balls, no matter how backed up she becomes. The intense blueballing only @@.mediumorchid;makes her dislike you more.@@
+								<<set $slaves[$i].devotion -= 1>>
+							<</if>>
+						<<elseif $slaves[$i].drugs == "hyper testicle enhancement">>
+							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
+								<<if $slaves[$i].hormonebalance >= 100>>
+									She can't seem to get enough cum out of her grotesquely swollen balls in one orgasm to get relieve the pressure:
+									<<if $slaves[$i].dick>>
+										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
+									<<else>>
+										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
+									<</if>>
+									This forces her to come to you for release many times a day, and she @@.mediumaquamarine;is desperately reliant@@
+									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
+										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
+									<<else>>
+										on you for relief.
+									<</if>>
+									<<set $slaves[$i].trust += 2>>
+								<<else>>
+									Her grotesquely swollen balls force her to come to you for release dozens of times a day, and she @@.mediumaquamarine;is desperately reliant@@
+									<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i]) && $freeSexualEnergy > 0>>
+										on your <<if $PC.dick == 0>>strap-on<<else>>penis<</if>> inside her ass as a source of relief.
+									<<else>>
+										on you for relief.
+									<</if>>
+									<<set $slaves[$i].trust += 1>>
+								<</if>>
+							<<else>>
+								She refuses to come to you for help with her grotesquely swollen balls, no matter how backed up and sore she becomes. The intense blueballing only @@.mediumorchid;makes her hate you more.@@
+								<<set $slaves[$i].devotion -= 3>>
+							<</if>>
+						<</if>>
+					<</if>> /* close overactive balls block */
+					<<if $slaves[$i].drugs == "super fertility drugs" && canGetPregnant($slaves[$i]) && $slaves[$i].eggType == "human" && $PC.dick == 1>> 
+						<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
+							Her reproductive system is in overdrive leading her to come to you for insemination several times a day; she @@.mediumaquamarine;desperately hopes@@ for the day your seed takes root in her womb.
+							<<set $slaves[$i].trust += 1>>
+						<</if>>
+					<</if>>
+
+<</widget>>
+
+<<widget "saRulesMasturbationFetishPlay">>
+						<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
+							<<if ($slaves[$i].fetish == "submissive")>>
+								frequently pretends to be getting held down and dominated.
+							<<elseif ($slaves[$i].fetish == "cumslut")>>
+								<<if $slaves[$i].dick > 5>>
+									enjoys giving herself head.
+								<<elseif $slaves[$i].dick > 0>>
+									enjoys licking up her own cum.
+								<<else>>
+									always has a dildo in her mouth.
+								<</if>>
+							<<elseif ($slaves[$i].fetish == "humiliation")>>
+								usually does it out in the open for all to see.
+							<<elseif ($slaves[$i].fetish == "buttslut")>>
+								<<if ($slaves[$i].anus > 0)>>
+									usually pounds her ass with the largest dildo she can find.
+								<<else>>
+									enjoys fiddling with her virgin asshole.
+								<</if>>
+							<<elseif ($slaves[$i].fetish == "boobs")>>
+								pays extra attention to her breasts and nipples.
+							<<elseif ($slaves[$i].fetish == "sadist")>>
+								frequently poses threats at herself.
+							<<elseif ($slaves[$i].fetish == "masochist")>>
+								frequently pretends to be getting held down and forcibly raped.
+							<<elseif ($slaves[$i].fetish == "dom")>>
+								usually pretends to dominate herself.
+							<<elseif ($slaves[$i].fetish == "pregnancy")>>
+								<<if $slaves[$i].belly > 1500>>
+									<<set _belly = bellyAdjective($activeSlave)>>
+									always rubs and teases her _belly belly while doing so.
+								<<elseif isItemAccessible("a small empathy belly")>>
+									frequently straps on a fake belly to enhance her fun.
+								<<else>>
+									frequently pretends to be
+									<<if $activeSlave.balls > 0>>
+										getting a girl pregnant.
+									<<else>>
+										getting knocked up.
+									<</if>>
+								<</if>>
+							<<elseif ($slaves[$i].energy > 95)>>
+								strives to achieve as many orgasms as she can in one session.
+							<<else>>
+								quickly gets off and moves on.
+							<</if>>
+						<<elseif ($slaves[$i].energy > 95)>>
+							strives to achieve as many orgasms as she can in one session.
+						<<else>>
+							quickly gets off and moves on.
+						<</if>> /* closes ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60) */
+
+<</widget>>
+
+<<widget "saRulesMasturbationDiscoversFetish">>
+
+						<<if ($slaves[$i].fetishKnown == 0) && (random(1,20) == 1)>>
+							<<set $slaves[$i].fetishKnown = 1>>
+							However, you start to notice a trend in her fantasies,
+							<<if ($slaves[$i].fetish == "submissive")>>
+								she likes to tie herself up and boss herself around; @@.lightcoral;she's a submissive!@@
+							<<elseif ($slaves[$i].fetish == "cumslut")>>
+								<<if $slaves[$i].dick > 0>>
+									she often eats her own cum when she's finished; @@.lightcoral;she's a cumslut!@@
+								<<else>>
+									she likes to have something, anything, in her mouth while she masturbates; @@.lightcoral;she's a cumslut!@@
+								<</if>>
+							<<elseif ($slaves[$i].fetish == "humiliation")>>
+								she tends to masturbate in places where others can walk in on her; @@.lightcoral;she's a humiliation fetishist!@@
+							<<elseif ($slaves[$i].fetish == "buttslut")>>
+								she always pays special attention to her butthole; @@.lightcoral;she's an anal slut!@@
+							<<elseif ($slaves[$i].fetish == "boobs")>>
+								she always has a hand to her nipples; @@.lightcoral;she's a boob fetishist!@@
+							<<elseif ($slaves[$i].fetish == "sadist")>>
+								she tends to threaten her toys; @@.lightcoral;she's a sadist!@@
+							<<elseif ($slaves[$i].fetish == "masochist")>>
+								she often to abuses herself; @@.lightcoral;she's a masochist!@@
+							<<elseif ($slaves[$i].fetish == "dom")>>
+								she sometimes bosses her toys around; @@.lightcoral;she's dominant!@@
+							<<elseif ($slaves[$i].fetish == "pregnancy")>>
+								she frequently pretends to either get pregnant, be pregnant, or get someone else pregnant; @@.lightcoral;she's a pregnancy fetishist!@@
+							<<elseif ($slaves[$i].energy > 95)>>
+								she's always horny; @@.lightcoral;she's a nympho!@@
+							<<else>>
+								@@.lightcoral;they are incredibly mundane.@@
+							<</if>>
+						<</if>>
+
+<</widget>>
+
+<<widget "saRulesMasturbationDrugEffects">>
+
+					<<if $slaves[$i].balls > 0>>
+						<<if $slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement">>
+							<<if $slaves[$i].hormonebalance >= 100>>
+								She can't seem to get enough cum out of her terribly swollen balls in one orgasm to get relieve the pressure:
+								<<if $slaves[$i].dick>>
+										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
+									<<else>>
+										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
+									<</if>>
+								She masturbates as often as she can, but @@.mediumorchid;can't find relief.@@
+								<<set $slaves[$i].devotion-->>
+							<<else>>
+								Her terribly swollen balls force her to masturbate several times a day, cultivating a need for sex that @@.mediumorchid;she can't fulfill.@@
+								<<set $slaves[$i].devotion -= 1>>
+							<</if>>
+						<<elseif $slaves[$i].drugs == "hyper testicle enhancement">>
+							<<if $slaves[$i].hormonebalance >= 100>>
+								She can't seem to get enough cum out of her grotesquely swollen balls in one orgasm to get relieve the pressure:
+								<<if $slaves[$i].dick>>
+										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
+									<<else>>
+										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
+									<</if>>
+								She masturbates non-stop, but @@.mediumorchid;can't find relief.@@
+								<<set $slaves[$i].devotion -= 3>>
+							<<else>>
+								Her grotesquely swollen balls force her to masturbate constantly, cultivating a need for sex that @@.mediumorchid;she can't fulfill.@@
+								<<set $slaves[$i].devotion -= 1>>
+							<</if>>
+							<<if $slaves[$i].energy > 40>>
+								The constant orgasms steadily lose their impact, @@.red;weakening her sex drive.@@
+								<<set $slaves[$i].energy -= 2>>
+							<</if>>
+						<</if>>
+					<</if>>
+					<<if $slaves[$i].drugs == "super fertility drugs" && canGetPregnant($slaves[$i])>>
+						Her reproductive system is in overdrive,
+						<<if $slaves[$i].dick > 9>>
+							leaving her @@.mediumorchid;desperatly fucking herself@@ in an effort to get pregnant since @@.gold;you won't <<if $PC.dick == 1>>give her<<else>>let her find<</if>> the dick she needs.@@
+							<<if canImpregnate($slaves[$i], $slaves[$i])>>
+								<<KnockMeUp $slaves[$i] 5 2 $slaves[$i].ID 1>>
+							<</if>>
+							<<if $slaves[$i].mpreg == 1 && $slaves[$i].anus == 0>>
+								@@.lime;She is so baby crazed she takes her own anal virginity.@@
+								<<set $slaves[$i].anus++>>
+							<<elseif $slaves[$i].vagina == 0>>
+								@@.lime;She is so baby crazed she takes her own virginity.@@
+								<<set $slaves[$i].vagina++>>
+							<</if>>
+							<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 2>>
+						<<elseif ($slaves[$i].devotion > -20)>>
+							leaving her @@.mediumorchid;completely unfulfilled@@ since @@.gold;you won't <<if $PC.dick == 1>>give her<<else>>let her find<</if>> the dick she needs.@@
+							<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 2>>
+						<<else>>
+							leaving her desperate for a thorough seeding @@.mediumorchid;that you've forbidden her from having.@@
+							<<set $slaves[$i].devotion -= 3>>
+						<</if>>
+					<</if>>
+					<<if $slaves[$i].energy > 60>>
+						Her chronic masturbation @@.red;steadily dulls@@ her sexual pleasure.
+						<<set $slaves[$i].energy-->>
+					<</if>>
+
+<</widget>>
+
+<<widget "saRulesRapeFetish">>
+
+							<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
+								<<if ($slaves[$i].fetish == "submissive")>>
+									plead that other slaves fuck her.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
+												@@.lime;Her asshole is loosened@@ during sex with other slaves, since most of the cocks she enticed a dominating buttfuck from are very large.
+												<<set $slaves[$i].anus++>>
+												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
+											<</if>>
+										<</if>>
+											<<if $averageDick > 5>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+												<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
+													Since most of the slaves she enticed a pounding from are extremely hung, @@.lime;her cunt gets stretched out.@@
+													<<set $slaves[$i].vagina++>>
+													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
+												<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+								<<elseif ($slaves[$i].fetish == "cumslut")>>
+									suck or be sucked by any slave she fancies.
+									<<set _fuckCount = random(5,15)>>
+									<<set $slaves[$i].oralCount += _fuckCount, $oralTotal += _fuckCount>>
+								<<elseif ($slaves[$i].fetish == "humiliation")>>
+									demand that other slaves let her fuck them in public.
+									<<if $slaves[$i].assignmentVisible>>
+									<<if !$slaves[$i].rivalry>>
+										<<SlaveSort $RapeableIDs>>
+										<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
+											<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
+											<<if !$slaves[_j].rivalry>>
+											<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
+											<<if $slaves[_j].devotion < 20>>
+											<<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>>
+												<<SimpleSlaveFucking $slaves[_j] 4>>
+												<<if canPenetrate($slaves[_j])>>
+													<<set _fuckCount = random(1,3)>>
+													<<set $slaves[_j].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+												<</if>>
+												<<break>>
+											<</if>>
+											<</if>>
+											<</if>>
+											<</if>>
+										<</for>>
+									<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 4>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(1,3)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].fetish == "buttslut") && canDoAnal($slaves[$i])>>
+									demand that other slaves penetrate her anus.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
+												Since most of the slaves she demands anal sex from are extremely hung, @@.lime;her asshole gets stretched out.@@
+												<<set $slaves[$i].anus += 1>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<set _fuckCount = random(5,12)>>
+									<<set $slaves[$i].analCount += _fuckCount, $analTotal += _fuckCount>>
+								<<elseif ($slaves[$i].fetish == "boobs")>>
+									demand that other slaves massage her breasts.
+									<<set _fuckCount = random(10,25)>>
+									<<set $slaves[$i].mammaryCount += _fuckCount, $mammaryTotal += _fuckCount>>
+								<<elseif ($slaves[$i].fetish == "sadist")>>
+									force the most reluctant slaves to let her fuck them.
+									<<if $slaves[$i].assignmentVisible>>
+									<<if !$slaves[$i].rivalry>>
+										<<SlaveSort $RapeableIDs>>
+										<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
+											<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
+											<<if !$slaves[_j].rivalry>>
+											<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
+											<<if $slaves[_j].devotion <= 50>>
+											<<if $slaves[_j].sexualFlaw != "none">>
+												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 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
+												<<elseif $slaves[_j].sexualFlaw == "shamefast">>
+													rapes the poor slave in public. $slaves[_j].slaveName is terribly shamefast
+												<<elseif $slaves[_j].sexualFlaw == "idealistic">>
+													rapes the poor slave every time she catches her being romantic. $slaves[_j].slaveName is still idealistic
+												<<else>>
+													rapes the poor slave every chance she gets,
+												<</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>>
+												<<SimpleSlaveFucking $slaves[_j] 4>>
+												<<if canPenetrate($slaves[_j])>>
+													<<set _fuckCount = random(1,3)>>
+													<<set $slaves[_j].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+												<</if>>
+											<</if>>
+											<</if>>
+											<</if>>
+											<</if>>
+										<</for>>
+									<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 4>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(1,3)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].fetish == "masochist")>>
+									demand that other slaves hurt her.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
+												@@.lime;Her asshole is loosened@@ during sex with hung slaves, since she often relies on painal to address her needs.
+												<<set $slaves[$i].anus += 1>>
+												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
+											<</if>>
+										<</if>>
+										<<if $averageDick > 5>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
+													Since she usually demands that hung slaves fuck her hard enough to make her pussy hurt, @@.lime;her cunt gets stretched out.@@
+													<<set $slaves[$i].vagina += 1>>
+													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
+												<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 12>>
+								<<elseif ($slaves[$i].fetish == "dom")>>
+									force other slaves to submit to her.
+									<<if $slaves[$i].assignmentVisible>>
+									<<if !$slaves[$i].rivalry>>
+										<<SlaveSort $RapeableIDs>>
+										<<for _dI = 0; _dI < $RapeableIDs.length; _dI++>>
+											<<set _j = $slaveIndices[$RapeableIDs[_dI]]>>
+											<<if !$slaves[_j].rivalry>>
+											<<if $slaves[_j].assignmentVisible || $slaves[_j].assignment == $slaves[$i].assignment>>
+											<<if $slaves[_j].devotion < 20>>
+											<<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>>
+												<<SimpleSlaveFucking $slaves[_j] 4>>
+											<</if>>
+											<</if>>
+											<</if>>
+											<</if>>
+										<</for>>
+									<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(6,9)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].fetish == "pregnancy")>>
+									demand that other slaves indulge her pregnancy fetish.
+									<<if $averageDick > 5>>
+										<<if $slaves[$i].mpreg == 0>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+											<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
+												Since she constantly demands to be fucked deeply to get her womb filled with cum, @@.lime;her cunt gets stretched out.@@
+												<<set $slaves[$i].vagina += 1>>
+												<<set _fuckCount = random(7,14)>>
+												<<set $slaves[$i].vaginalCount += _fuckCount, $vaginalTotal += _fuckCount>>
+											<</if>>
+											<</if>>
+										<<else>>
+											<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
+												Since she constantly demands to be fucked deeply to get her womb filled with cum, @@.lime;her ass gets stretched out.@@
+												<<set $slaves[$i].anus += 1>>
+												<<set _fuckCount = random(7,14)>>
+												<<set $slaves[$i].analCount += _fuckCount, $analTotal += _fuckCount>>
+											<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(6,9)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].energy > 95)>>
+									demand that your other slaves satisfy her formidable appetites.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
+												@@.lime;Her asshole is loosened@@ during sex with well endowed slaves, since she's so addicted to sex all her holes see heavy traffic.
+												<<set $slaves[$i].anus += 1>>
+												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
+											<</if>>
+										<</if>>
+										<<if $averageDick > 5>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
+													She indulges in non-stop sex with your well endowed slaves, so much so that @@.lime;her cunt gets stretched out.@@
+													<<set $slaves[$i].vagina += 1>>
+													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
+												<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(3,6)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<else>>
+									demand that other slaves have sex with her.
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(3,6)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<</if>>
+							<<else>>
+								demand that other slaves have sex with her.
+								<<SimpleSlaveFucking $slaves[$i] 7>>
+								<<if canPenetrate($slaves[$i])>>
+									<<set _fuckCount = random(3,6)>>
+									<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+								<</if>>
+							<</if>> /* closes ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60) */
+
+<</widget>>
+
+<<widget "saRulesConsentFetish">>
+
+							<<if ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60)>>
+								<<if ($slaves[$i].fetish == "submissive")>>
+									usually pairing off with a more dominant slave.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
+												@@.lime;Her asshole is loosened@@ during sex with other slaves, since most of the cocks she lets dominate her backdoor are very large.
+												<<set $slaves[$i].anus += 1>>
+												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
+											<</if>>
+										<</if>>
+										<<if $averageDick > 5>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+												<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
+													Since most of the slaves she takes a pounding from are extremely hung, @@.lime;her cunt gets stretched out.@@
+													<<set $slaves[$i].vagina += 1>>
+													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
+												<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+								<<elseif ($slaves[$i].fetish == "cumslut")>>
+									and is popular for her willingness to give oral.
+									<<set _fuckCount = random(5,15)>>
+									<<set $slaves[$i].oralCount += _fuckCount, $oralTotal += _fuckCount>>
+								<<elseif ($slaves[$i].fetish == "humiliation")>>
+									usually asking them to fuck out in the open.
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(1,3)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].fetish == "buttslut")>>
+									looking after anyone who will
+									<<if ($slaves[$i].anus > 0)>>
+										<<if canDoAnal($slaves[$i])>>
+											penetrate
+											<<set _fuckCount = random(5,12)>>
+											<<set $slaves[$i].analCount += _fuckCount, $analTotal += _fuckCount>>
+										<<else>>
+											tease
+										<</if>>
+										her ass
+									<<else>>
+										tease her virgin anus
+									<</if>>
+									in return.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
+												Since most of the slaves she enjoys anal sex with are extremely hung, @@.lime;her asshole gets stretched out.@@
+												<<set $slaves[$i].anus += 1>>
+											<</if>>
+										<</if>>
+									<</if>>
+								<<elseif ($slaves[$i].fetish == "boobs")>>
+									seeing to anyone who will show her breasts some love.
+									<<set _fuckCount = random(10,25)>>
+									<<set $slaves[$i].mammaryCount += _fuckCount, $mammaryTotal += _fuckCount>>
+								<<elseif ($slaves[$i].fetish == "sadist")>>
+									usually pairing off with a masochistic slave willing to accept her abuse.
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(1,3)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].fetish == "masochist")>>
+									usually pairing off with an abusive slave.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
+												@@.lime;Her asshole is loosened@@, since she begs hung slaves to fuck her butt until she cries.
+												<<set $slaves[$i].anus += 1>>
+												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
+											<</if>>
+										<</if>>
+										<<if $averageDick > 5>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
+													Since she eagerly begs hung slaves to fuck her until she cries, @@.lime;her cunt gets stretched out.@@
+													<<set $slaves[$i].vagina += 1>>
+													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
+												<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 6>>
+								<<elseif ($slaves[$i].fetish == "dom")>>
+									usually pairing off with a submissive bitch.
+									<<SimpleSlaveFucking $slaves[$i] 6>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(1,3)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].fetish == "pregnancy")>>
+									doing her best to pair off with any pregnant slaves.
+									<<if $slaves[$i].mpreg == 0>>
+										<<if $averageDick > 5>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+											<<if ($slaves[$i].vagina*40)-($averageDick*5) < random(1,100)>>
+												She also takes cock whenever she can, begging to be fucked deeply to get her womb filled with cum, so @@.lime;her cunt gets stretched out.@@
+												<<set $slaves[$i].vagina += 1>>
+												<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
+											<</if>>
+											<</if>>
+										<</if>>
+									<<else>>
+										<<if $averageDick > 5>>
+											<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*40)-($averageDick*5) < random(1,100)>>
+												She also takes cock whenever she can, begging to be fucked deeply to get her womb filled with cum, so @@.lime;her ass gets stretched out.@@
+												<<set $slaves[$i].anus += 1>>
+												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
+											<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(6,9)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<elseif ($slaves[$i].energy > 95)>>
+									and has to give out a lot of favors to get enough attention for herself.
+									<<if $averageDick > 4>>
+										<<if $slaves[$i].anus > 0 && $slaves[$i].anus < 3 && canDoAnal($slaves[$i])>>
+											<<if ($slaves[$i].anus*30)-($averageDick*5) < random(1,100)>>
+												@@.lime;Her asshole is loosened@@ during sex with well endowed slaves, since she's so addicted to sex all her holes see heavy traffic.
+												<<set $slaves[$i].anus += 1>>
+												<<set $slaves[$i].analCount += 3, $analTotal += 3>>
+											<</if>>
+										<</if>>
+										<<if $averageDick > 5>>
+											<<if $slaves[$i].vagina > 0 && $slaves[$i].vagina < 3 && canDoVaginal($slaves[$i])>>
+												<<if ($slaves[$i].vagina*30)-($averageDick*5) < random(1,100)>>
+													She indulges in non-stop sex with your well endowed slaves, so much so that @@.lime;her cunt gets stretched out.@@
+													<<set $slaves[$i].vagina += 1>>
+													<<set $slaves[$i].vaginalCount += 3, $vaginalTotal += 3>>
+												<</if>>
+											<</if>>
+										<</if>>
+									<</if>>
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(3,6)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<<else>>
+									doing her best to get off and move on.
+									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<if canPenetrate($slaves[$i])>>
+										<<set _fuckCount = random(3,6)>>
+										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+									<</if>>
+								<</if>>
+							<<else>>
+								doing her best to get off and move on.
+								<<SimpleSlaveFucking $slaves[$i] 7>>
+								<<if canPenetrate($slaves[$i])>>
+									<<set _fuckCount = random(3,6)>>
+									<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
+								<</if>>
+							<</if>> /* closes ($slaves[$i].fetishKnown == 1) && ($slaves[$i].fetishStrength > 60) */
+
+<</widget>>
+
+<<widget "saRulesConsentDiscoversFetish">>
+
+							<<if ($slaves[$i].fetishKnown == 0)>>
+								<<if (random(1,2) == 1)>>
+									<<set $slaves[$i].fetishKnown = 1>>
+									However, one of her partners
+									<<if ($slaves[$i].fetish == "submissive")>>
+										holds her down, and she loves it; @@.lightcoral;she's a submissive!@@
+									<<elseif ($slaves[$i].fetish == "cumslut")>>
+										finally has to push her away to get her to stop sucking; @@.lightcoral;she's a cumslut!@@
+									<<elseif ($slaves[$i].fetish == "humiliation")>>
+										fucks her in public, and she loves it; @@.lightcoral;she's a humiliation fetishist!@@
+									<<elseif ($slaves[$i].fetish == "buttslut")>>
+										<<if ($slaves[$i].anus > 0)>>
+											<<if canDoAnal($slaves[$i])>>fucks her butt<<else>>teases her anus<</if>>, and she loves it;
+										<<else>>
+										teases her virgin anus, and she loves it;
+										<</if>>
+										@@.lightcoral;she's an anal slut!@@
+									<<elseif ($slaves[$i].fetish == "boobs")>>
+										fondles her breasts, and she loves it; @@.lightcoral;she's a boob fetishist!@@
+									<<elseif ($slaves[$i].fetish == "sadist")>>
+										asks $slaves[$i].slaveName to hit her, which $slaves[$i].slaveName enjoys doing; @@.lightcoral;she's a sadist!@@
+									<<elseif ($slaves[$i].fetish == "masochist")>>
+										hits $slaves[$i].slaveName while fucking her, which only makes her hornier; @@.lightcoral;she's a masochist!@@
+									<<elseif ($slaves[$i].fetish == "dom")>>
+										asks $slaves[$i].slaveName to make her $slaves[$i].slaveName's bitch, which $slaves[$i].slaveName manages like a natural; @@.lightcoral;she's dominant!@@
+									<<elseif ($slaves[$i].fetish == "pregnancy")>>
+										pretends to get her pregnant, which she really enjoys; @@.lightcoral;she's a pregnancy fetishist!@@
+									<<elseif ($slaves[$i].energy > 95)>>
+										discovers that she cannot be satisfied; @@.lightcoral;she's a nympho!@@
+									<<else>>
+										discovers that she isn't terribly exciting; @@.lightcoral;she's got a normal sexuality.@@
+									<</if>>
+								<</if>>
+
+<</widget>>
+
+<<widget "saRulesRapeDiscoversFetish">>
+
+							<<if ($slaves[$i].fetishKnown == 0)>>
+								<<if (random(1,2) == 1)>>
+								<<set $slaves[$i].fetishKnown = 1>>
+								You discover that she really likes it when other girls
+								<<if ($slaves[$i].fetish == "submissive")>>
+									hold her down and fuck her; @@.lightcoral;she's a submissive!@@
+								<<elseif ($slaves[$i].fetish == "cumslut")>>
+									cum in her mouth; @@.lightcoral;she's a cumslut!@@
+								<<elseif ($slaves[$i].fetish == "humiliation")>>
+									use her in public; @@.lightcoral;she's a humiliation fetishist!@@
+								<<elseif ($slaves[$i].fetish == "buttslut")>>
+									<<if ($slaves[$i].anus > 0)>>
+										<<if canDoAnal($slaves[$i])>>fuck her butt<<else>>tease her anus<</if>>;
+									<<else>>
+									tease her virgin anus;
+									<</if>>
+									@@.lightcoral;she's an anal slut!@@
+								<<elseif ($slaves[$i].fetish == "boobs")>>
+									fondle her breasts; @@.lightcoral;she's a boob fetishist!@@
+								<<elseif ($slaves[$i].fetish == "sadist")>>
+									let her abuse them; @@.lightcoral;she's a sadist!@@
+								<<elseif ($slaves[$i].fetish == "masochist")>>
+									hurt her; @@.lightcoral;she's a masochist!@@
+								<<elseif ($slaves[$i].fetish == "dom")>>
+									let her dominate them; @@.lightcoral;she's dominant!@@
+								<<elseif ($slaves[$i].fetish == "pregnancy")>>
+									<<if $slaves[$i].mpreg == 0>>
+										come <<if canDoVaginal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
+									<<else>>
+										come <<if canDoAnal($slaves[$i])>>inside<<else>>on<</if>> her; @@.lightcoral;she's a pregnancy fetishist!@@
+									<</if>>
+								<<else>>
+									fuck her; @@.lightcoral;she's got a normal sexuality.@@
+								<</if>>
+								<</if>>
+							<</if>>
+
+<</widget>>
+
+<<widget "saRulesPermissiveDrugEffects">>
+
+					<<if $slaves[$i].balls > 0>>
+						<<if $slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement">>
+							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20)>>
+								<<if $slaves[$i].hormonebalance >= 100>>
+									She can't seem to get enough cum out of her terribly swollen balls in one orgasm to relieve the pressure:
+									<<if $slaves[$i].dick>>
+										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
+									<<else>>
+										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
+									<</if>>
+									She is very reliant on your other girls to help her, which @@.mediumaquamarine;habituates her@@ to slave sex.
+								<<else>>
+									Her terribly swollen balls force her to rely on other slaves for release several times a day, and jetting cum into and onto your other girls @@.mediumaquamarine;habituates her@@ to slave sex.
+								<</if>>
+								<<set $slaves[$i].trust += 1>>
+							<<else>>
+								She can't seem to get enough cum out of her terribly swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something she @@.mediumorchid;blames you for.@@
+								<<set $slaves[$i].devotion -= 1>>
+							<</if>>
+						<<elseif $slaves[$i].drugs == "hyper testicle enhancement">>
+							<<if ($slaves[$i].devotion > 20) || ($slaves[$i].trust < -20) || !canPenetrate($slaves[$i])>>
+								<<if $slaves[$i].hormonebalance >= 100>>
+									She can't seem to get enough cum out of her grotesquely swollen balls in one orgasm to get relieve the pressure:
+									<<if $slaves[$i].dick>>
+										her poor soft dick produces slow, anemic ejaculations, no matter how backed up she is.
+									<<else>>
+										her cumhole produces slow, anemic ejaculations, no matter how backed up she is.
+									<</if>>
+									She is completely dependent on your other girls to help her, which @@.mediumaquamarine;habituates her@@ to slave sex.
+								<<else>>
+									Her grotesquely swollen balls force her to rely on other slaves for release throughout times a day, and swelling your other girls with cum @@.mediumaquamarine;habituates her@@ to slave sex, though you have to take precautions so she doesn't knock up your entire stock.
+								<</if>>
+								<<set $slaves[$i].trust += 1>>
+							<<else>>
+								She can't seem to get enough cum out of her grotesquely swollen balls to relieve the pressure and is either unwilling or unable to get help with it, something she @@.mediumorchid;blames you for.@@
+								<<set $slaves[$i].devotion -= 1>>
+							<</if>>
+						<</if>>
+					<</if>>
+					<<if $slaves[$i].drugs == "super fertility drugs" && canGetPregnant($slaves[$i])>>
+							Her reproductive system is in overdrive leading her to seek out any dicked girl she can find several times a day. She @@.mediumaquamarine;desperately longs@@ for the day her efforts fill her womb with child.
+							<<set $slaves[$i].trust += 1>>
+					<</if>>
+
+<</widget>>
\ No newline at end of file
-- 
GitLab