diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 8ab7ee9987f9fa4078b7b071691cded297f28918..117433181ad8ad7109fc390cf453a752ff4dca69 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -9968,8 +9968,8 @@ window.DefaultRules = (function() {
 
 	function MergeRules(slave) {
 		// merge all rules applying on a slave into one big rule
-		const rules = V.defaultRules.filter(x => ruleAppliesP(x.condition, slave))
-		slave.currentRules = rules.map(x => x.ID)
+		const rules = V.defaultRules.filter(x => ruleAppliesP(x.condition, slave));
+		slave.currentRules = rules.map(x => x.ID);
 		return mergeRules(rules.map(x => ProcessAssignments(slave, Object.assign({}, x.set))));
 	}
 
@@ -11008,62 +11008,158 @@ window.DefaultRules = (function() {
 
 	function ProcessOtherDrugs(slave, rule) {
 		// Other Drugs 
-		if (rule.drug !== "no default setting" && slave.drugs !== rule.drug) {
+		if (slave.indentureRestrictions < 2 && rule.drug !== "no default setting" && slave.drugs !== rule.drug) {
+			let flag = true;
 			switch (rule.drug) {
 			case "anti-aging cream":
-				if (slave.visualAge > 18) {
-					slave.drugs = rule.drug ;
-					r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
-				} else {
-					slave.drugs = "no drugs" ;
-					r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
-				}
+				if (slave.visualAge < 18)
+					flag = false;
 				break;
 
 			case "growth stimulants":
-				if (slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25),0,274)) {
-					slave.drugs = rule.drug;
-					r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
-				} else {
-					slave.drugs = "no drugs";
-					r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
-				}
+				if (!(slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25),0,274)))
+					flag = false;
 				break;
 
 			case "sag-B-gone":
-				if (slave.boobs > 250 && slave.boobShape != "saggy") {
-					slave.drugs = rule.drug;
-					r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
-				} else {
-					slave.drugs = "no drugs";
-					r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
-				}
+				if (!(slave.boobs > 250 && slave.boobShape != "saggy"))
+					flag = false;
 				break;
 
 			case "female hormone injections":
-				if (slave.breedingMark != 1 && (slave.ovaries == 1 || slave.mpreg == 1) && slave.pubertyXX === 0) {
-					slave.drugs = rule.drug ;
-					r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
-				} else {
-					slave.drugs = "no drugs";
-					r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
-				}
+				if (!(slave.breedingMark != 1 && (slave.ovaries == 1 || slave.mpreg == 1) && slave.pubertyXX === 0))
+					flag = false;
 				break;
 
 			case "male hormone injections":
-				if (slave.breedingMark != 1 && slave.balls > 0 && slave.pubertyXY === 0) {
-					slave.drugs = rule.drug ;
-					r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
-				} else {
-					slave.drugs = "no drugs";
-					r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
-				}
+				if (!(slave.breedingMark != 1 && slave.balls > 0 && slave.pubertyXY === 0))
+					flag = false;
 				break;
-
+				
+			case "psychosuppressants":
+				if (!(slave.intelligence > -2 && slave.indentureRestrictions < 1))
+					flag = false;
+				break;
+			
+			case "breast injections":
+				if (!(slave.boobs < 48000))
+					flag = false;
+				break;
+			
+			case "hyper breast injections":
+				if (!(slave.boobs < 25000))
+					flag = false;
+				break;
+			
+			case "breast redistributors":
+				if (!(slave.boobs - slave.boobsImplant > 100))
+					flag = false;
+				break;
+			
+			case "butt injections":
+				if (!(slave.butt < 9))
+					flag = false;
+				break;
+			
+			case "hyper butt injections":
+				if (!(slave.butt < 20))
+					flag = false;
+				break;
+			
+			case "hyper butt injections":
+				if (!(slave.butt < 20))
+					flag = false;
+				break;
+			
+			case "nipple atrophiers":
+				if (!(["huge", "puffy", "cute"].includes(slave.nipples)))
+					flag = false;
+				break;
+				
+			case "butt redistributors":
+				if (!(slave.buttImplant > 0))
+					flag = false;
+				break;
+			
+			case "lip injections":
+				if (!(slave.lips <= 95 || (slave.lips <= 85 && V.seeExtreme !== 1)))
+					flag = false;
+				break;
+			
+			case "lip atrophiers":
+				if (!(slave.lips - slave.lipsImplant > 0))
+					flag = false;
+				break;
+			
+			case "super fertility drugs":
+				if (!(slave.indentureRestrictions < 1 && slave.breedingMark !== 1))
+					flag = false;
+				break;
+			
+			case "penis enhancement":
+				if (!((slave.dick > 0 && slave.dick < 10) || slave.clit < 5))
+					flag = false;
+				break;
+			
+			case "hyper penis enhancement":
+				if (!((slave.dick > 0 && slave.dick < 31) || slave.clit < 5))
+					flag = false;
+				break;
+				
+			case "penis atrophiers":
+				if (!(slave.dick > 1))
+					flag = false;
+				break;
+			
+			case "testicle enhancement":
+				if (!(slave.balls > 0))
+					flag = false;
+				break;
+			
+			case "hyper testicle enhancement":
+				if (!(slave.balls > 0))
+					flag = false;
+				break;
+			
+			case "testicle atrophiers":
+				if (!(slave.balls > 1))
+					flag = false;
+				break;
+			
+			case "clitoris atrophiers":
+				if (!(slave.clit > 0))
+					flag = false;
+				break;
+			
+			case "labia atrophiers":
+				if (!(slave.labia > 0))
+					flag = false;
+				break;
+			
+			case "appetite suppressors":
+				if (!(slave.weight > -95))
+					flag = false;
+				break;
+				
+			case "female hormone injections":
+				if (!(slave.breedingMark !== 1 && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0))
+					flag = false;
+				break;
+			
+			case "male hormone injections":
+				if (!(slave.balls > 0 && slave.pubertyXY === 0))
+					flag = false;
+				break;
+				
 			default:
+				break;
+			}
+			if (flag) {
 				slave.drugs = rule.drug;
 				r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
-				break;
+			} else {
+				slave.drugs = "no drugs";
+				r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}`;
 			}
 		}
 	}
@@ -13597,6 +13693,15 @@ window.rulesAssistantOptions = (function() {
 				["Steroids", "steroids"],
 				["Natural hormone enhancers", "hormone enhancers"],
 				["Hormone blockers", "hormone blockers"],
+				["breast injections"],
+				["intensive breast injections"],
+				["butt injections"],
+				["intensive butt injections"],
+				["lip injections"],
+				["penis enhancement"],
+				["intensive penis enhancement"],
+				["testicle enhancement"],
+				["intensive testicle enhancement"],
 			];
 
 			if (V.growthStim === 1)
@@ -13607,8 +13712,20 @@ window.rulesAssistantOptions = (function() {
 			}
 			if (V.purchasedSagBGone === 1)
 				drugs.push(["Sag-B-gone (Product)", "sag-B-gone"]);
-			if (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)
+			if (V.arcologies[0].FSSlimnessEnthusiastResearch === 1) {
 				drugs.push(["Weight loss pills (FS)", "appetite suppressors"]);
+				drugs.push(["breast redistributors"]);
+				drugs.push(["butt redistributors"]);
+				drugs.push(["lip atrophiers"]);
+				drugs.push(["penis atrophiers"]);
+				drugs.push(["testicle atrophiers"]);
+			}
+			if (V.arcologies[0].FSAssetExpansionistResearch === 1) {
+				drugs.push(["hyper breast injections"]);
+				drugs.push(["hyper butt injections"]);
+				drugs.push(["hyper penis enhancement"]);
+				drugs.push(["hyper testicle enhancement"]);
+			}
 			if (V.arcologies[0].FSYouthPreferentialistResearch === 1)
 				drugs.push(["Anti-aging cream (FS)", "anti-aging cream"]);
 			if (V.seeHyperPreg === 1 && V.superFertilityDrugs === 1)
@@ -16005,6 +16122,80 @@ window.PartnerVCheck = function PartnerVCheck(analTimes, bothTimes) {
 	return r;
 }
 
+/*
+ count is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability of slave.
+ If count is left undefined it will assume it to be 1.
+ Intended to be a simple "I want to fuck x and not have to code a bunch of logic for it".
+*/
+window.SimpleSexAct = function SimpleSexAct(slave, count) {
+	const V = State.variables;
+	const fuckTarget = jsRandom(1,100);
+	let fuckCount = 1;
+	let r = ``;
+	if (count) {
+		fuckCount = count;
+	}
+	for (var i = 0; i < fuckCount; i++) {
+		if (slave.nipples == "fuckable" && V.PC.dick === 1 && fuckTarget > 80) {
+			V.mammaryTotal += 1;
+			slave.mammaryCount += 1;
+		}
+		else if (canDoVaginal(slave) && slave.vagina > 0 && fuckTarget > 33) {
+			V.vaginalTotal += 1;
+			slave.vaginalCount += 1;
+			if (V.PC.dick === 1 && canGetPregnant(slave) && slave.eggType == "human") {
+				r += knockMeUp(slave, 10, 0, -1, 1);
+			}
+		}
+		else if (canDoAnal(slave) && slave.anus > 0 && fuckTarget > 10) {
+			V.analTotal += 1;
+			slave.analCount += 1;
+			if (V.PC.dick == 1 && canGetPregnant(slave) && slave.eggType == "human") {
+				r += knockMeUp(slave, 10, 1, -1, 1);
+			}
+		}
+		else {
+			V.oralTotal += 1;
+			slave.oralCount += 1;
+		}
+	}
+	return r;
+}
+
+/*
+ count is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability of slave.
+ If count is left undefined it will assume it to be 1.
+ Intended to be a simple "x got fucked y times and I don't want to keep coding it".
+ Pregnancy chance is handled in saLongTermEffects.tw.
+*/
+window.SimpleSlaveFucking = function SimpleSlaveFucking(slave, count) {
+	const V = State.variables;
+	const fuckTarget = jsRandom(1,100);
+	let fuckCount = 1;
+	if (count) {
+		fuckCount = count;
+	}
+	for (var i = 0; i < fuckCount; i++) {
+		if (slave.nipples == "fuckable" && fuckTarget > 80) {
+			V.mammaryTotal += 1;
+			slave.mammaryCount += 1;
+		}
+		else if (canDoVaginal(slave) && slave.vagina > 0 && fuckTarget > 33) {
+			V.vaginalTotal += 1;
+			slave.vaginalCount += 1;
+		}
+		else if (canDoAnal(slave) && slave.anus > 0 && fuckTarget > 10) {
+			V.analTotal += 1;
+			slave.analCount += 1;
+		}
+		else {
+			V.oralTotal += 1;
+			slave.oralCount += 1;
+		}
+	}
+	return;
+}
+
 /*:: PenthouseNaming [script]*/
 
 window.MS = function() {
diff --git a/src/js/sexActsJS.tw b/src/js/sexActsJS.tw
index 1be9afedc01cbe2e03e2079c69895a0ee20e5c03..93426acb541c078bf0ca79483568dc7d66c812ee 100644
--- a/src/js/sexActsJS.tw
+++ b/src/js/sexActsJS.tw
@@ -365,3 +365,77 @@ window.PartnerVCheck = function PartnerVCheck(analTimes, bothTimes) {
 	}
 	return r;
 }
+
+/*
+ count is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability of slave.
+ If count is left undefined it will assume it to be 1.
+ Intended to be a simple "I want to fuck x and not have to code a bunch of logic for it".
+*/
+window.SimpleSexAct = function SimpleSexAct(slave, count) {
+	const V = State.variables;
+	const fuckTarget = jsRandom(1,100);
+	let fuckCount = 1;
+	let r = ``;
+	if (count) {
+		fuckCount = count;
+	}
+	for (var i = 0; i < fuckCount; i++) {
+		if (slave.nipples == "fuckable" && V.PC.dick === 1 && fuckTarget > 80) {
+			V.mammaryTotal += 1;
+			slave.mammaryCount += 1;
+		}
+		else if (canDoVaginal(slave) && slave.vagina > 0 && fuckTarget > 33) {
+			V.vaginalTotal += 1;
+			slave.vaginalCount += 1;
+			if (V.PC.dick === 1 && canGetPregnant(slave) && slave.eggType == "human") {
+				r += knockMeUp(slave, 10, 0, -1, 1);
+			}
+		}
+		else if (canDoAnal(slave) && slave.anus > 0 && fuckTarget > 10) {
+			V.analTotal += 1;
+			slave.analCount += 1;
+			if (V.PC.dick == 1 && canGetPregnant(slave) && slave.eggType == "human") {
+				r += knockMeUp(slave, 10, 1, -1, 1);
+			}
+		}
+		else {
+			V.oralTotal += 1;
+			slave.oralCount += 1;
+		}
+	}
+	return r;
+}
+
+/*
+ count is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability of slave.
+ If count is left undefined it will assume it to be 1.
+ Intended to be a simple "x got fucked y times and I don't want to keep coding it".
+ Pregnancy chance is handled in saLongTermEffects.tw.
+*/
+window.SimpleSlaveFucking = function SimpleSlaveFucking(slave, count) {
+	const V = State.variables;
+	const fuckTarget = jsRandom(1,100);
+	let fuckCount = 1;
+	if (count) {
+		fuckCount = count;
+	}
+	for (var i = 0; i < fuckCount; i++) {
+		if (slave.nipples == "fuckable" && fuckTarget > 80) {
+			V.mammaryTotal += 1;
+			slave.mammaryCount += 1;
+		}
+		else if (canDoVaginal(slave) && slave.vagina > 0 && fuckTarget > 33) {
+			V.vaginalTotal += 1;
+			slave.vaginalCount += 1;
+		}
+		else if (canDoAnal(slave) && slave.anus > 0 && fuckTarget > 10) {
+			V.analTotal += 1;
+			slave.analCount += 1;
+		}
+		else {
+			V.oralTotal += 1;
+			slave.oralCount += 1;
+		}
+	}
+	return;
+}
diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw
index 2044500f4fc0a0c7cec04f714e30df8a5f6d3ad9..ae4314161f144f792afd81864188954633ba3bb4 100644
--- a/src/uncategorized/REFI.tw
+++ b/src/uncategorized/REFI.tw
@@ -1505,7 +1505,7 @@ There was a glint of envy <<if canSee($activeSlave)>>in her eyes when she saw<<e
 	<<elseif canDoAnal($activeSlave) && $activeSlave.anus > 0>>
 		<<= AnalVCheck()>>
 	<<else>>
-		<<SimpleSexAct $activeSlave>>
+		<<= SimpleSexAct($activeSlave)>>
 	<</if>>
 	<<set $activeSlave.devotion += 4>>
 	<</replace>>
diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw
index fbaea844c7af8ddedfcc28aa9d66076e10a097ee..0f7d494ea90310c600dd5831344c5534f425e1cd 100644
--- a/src/uncategorized/masterSuiteReport.tw
+++ b/src/uncategorized/masterSuiteReport.tw
@@ -216,7 +216,7 @@
 		/% Both Concubine and other slaves %/
 		<<if $masterSuiteUpgradeLuxury == 2 && $masterSuiteAverageEnergy > random(50,90)>>
 			<<set _energy = (Math.ceil($slaves[$i].energy/5)*7)>>
-			<<SimpleSlaveFucking $slaves[$i] _energy>>
+			<<run SimpleSlaveFucking($slaves[$i], _energy)>>
 			<<if canPenetrate($slaves[$i])>>
 				<<set _fuckCount = (random(1,3)*_energy)>>
 				<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index aafc51dcd87cd387f2a3b6ed8f8c50bef7b67c7b..82542bac5ad3a8b9eac4291f452176d29c83f7fd 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -1459,7 +1459,7 @@
 				<</if>>
 			<<elseif $slaves[$i].need < $slaves[$i].energy*0.5>>
 				<<if $Wardeness != 0 && canPenetrate($Wardeness)>>
-					<<SimpleSlaveFucking $slaves[$i] _wardenFunTimes>>
+					<<run SimpleSlaveFucking($slaves[$i], _wardenFunTimes)>>
 					<<set $slaves[_FLs].penetrativeCount += _wardenFunTimes, $penetrativeTotal += _wardenFunTimes>>
 					<<if _wardenFunTimes > 0 && canImpreg($slaves[$i], $Wardeness) && ($cellblockWardenCumsInside == 1 || $Wardeness.fetish == "mindbroken") && (($slaves[$i].vagina > 0 && $slaves[$i].ovaries == 1) || ($slaves[$i].anus > 0 && $slaves[$i].mpreg == 1))>>
 						<<if ($slaves[$i].vagina > 0 && $slaves[$i].ovaries == 1)>>
@@ -1484,7 +1484,7 @@
 				<</if>>
 			<<else>>
 				<<if $Wardeness != 0 && canPenetrate($Wardeness)>>
-					<<SimpleSlaveFucking $slaves[$i] _wardenFunTimes>>
+					<<run SimpleSlaveFucking($slaves[$i], _wardenFunTimes)>>
 					<<set $slaves[_FLs].penetrativeCount += _wardenFunTimes, $penetrativeTotal += _wardenFunTimes>>
 					<<if _wardenFunTimes > 0 && canImpreg($slaves[$i], $Wardeness) && ($cellblockWardenCumsInside == 1 || $Wardeness.fetish == "mindbroken") && (($slaves[$i].vagina > 0 && $slaves[$i].ovaries == 1) || ($slaves[$i].anus > 0 && $slaves[$i].mpreg == 1))>>
 						<<if ($slaves[$i].vagina > 0 && $slaves[$i].ovaries == 1)>>
diff --git a/src/uncategorized/saServeYourOtherSlaves.tw b/src/uncategorized/saServeYourOtherSlaves.tw
index e92c8abfbed94f6771d1a093c97180d8f002825c..74d9a8a5a6583da96a10ceff7ae02a3b75ce1e2a 100644
--- a/src/uncategorized/saServeYourOtherSlaves.tw
+++ b/src/uncategorized/saServeYourOtherSlaves.tw
@@ -115,7 +115,7 @@
 	<</if>>
 <</if>>
 <<set _fuckCount = Math.ceil((($dormitoryPopulation+$roomsPopulation)+random((($dormitoryPopulation+$roomsPopulation)*1),($dormitoryPopulation+$roomsPopulation)*7))/$subSlaves)>>
-<<SimpleSlaveFucking $slaves[$i] _fuckCount>>
+<<run SimpleSlaveFucking($slaves[$i], _fuckCount)>>
 <<set $slaves[$i].need -= 2*_fuckCount>>
 
 <<else>> /* serving a slave */
diff --git a/src/utility/birthWidgets.tw b/src/utility/birthWidgets.tw
index 100262061f8147d48b968b43f10e8ae20cca4d7f..3a3a6f19885ceb84df059d3a3b3d18a4e3278825 100644
--- a/src/utility/birthWidgets.tw
+++ b/src/utility/birthWidgets.tw
@@ -1546,6 +1546,7 @@ Feeling childbirth approaching, $slaves[$i].slaveName is helped to her prepared
 		Instinctively, she begins to push out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby<<else>>her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>, indifferent to the obvious wetness forming <<if $slaves[$i].mpreg == 1>>under her rear<<else>>over her crotch<</if>>.
 	<<else>>
 		Quickly she attempts to unfasten her shorts but fails to do so before having to push out <<if $slaves[$i].broodmother > 0>><<if $slaves[$i].birthsTotal == 0>>her first<<else>>this week's<</if>> baby<<else>>her bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>><</if>>. As she crowns into her shorts, she can't hide the wetness and bulge between her <<if $slaves[$i].mpreg == 1>>buttocks<<else>>legs<</if>>, <<if $slaves[$i].fetish == "humiliation">>but that only makes it more exciting<<else>>so she bears with it<</if>>. With a little help, she manages to escape her clothes and finish giving birth.
+	<</if>>
 	
 <<case "a biyelgee costume">>
 	<<if $slaves[$i].fetish == "mindbroken">>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index a6c87cf34b17a431fcfea1569ffe8ac1de03ddec..f7ff2965ae717bcfe5d4eb5cf45212f117883d2f 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -34,87 +34,6 @@
 <</if>>
 <</widget>>
 
-/%
- Call as <<SimpleSexAct slave 5>> or <<SimpleSexAct slave>>
- $arg[1] is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability on $arg[0].
- If left undefined it will assume it to be 1.
- Intended to be a simple "I want to fuck x and not have to code a bunch of logic for it".
-%/
-<<widget "SimpleSexAct">>
-<<if $args[1]>>
-	<<for _miscW = 0; _miscW < $args[1]; _miscW++>>
-		<<set _fuckTarget = random(1,100)>>
-		<<if $args[0].nipples == "fuckable" && $PC.dick == 1 && _fuckTarget > 80>>
-			<<set $mammaryTotal++, $args[0].mammaryCount++>>
-		<<elseif canDoVaginal($args[0]) && $args[0].vagina > 0 && _fuckTarget > 33>>
-			<<set $vaginalTotal++, $args[0].vaginalCount++>>
-			<<if $PC.dick == 1 && canGetPregnant($args[0]) && ($args[0].eggType == "human")>>
-				<<= knockMeUp($args[0], 10, 0, -1, 1)>>
-			<</if>>
-		<<elseif canDoAnal($args[0]) && $args[0].anus > 0 && _fuckTarget > 10>>
-			<<set $analTotal++, $args[0].analCount++>>
-			<<if $PC.dick == 1 && canGetPregnant($args[0]) && ($args[0].eggType == "human")>>
-				<<= knockMeUp($args[0], 10, 1, -1, 1)>>
-			<</if>>
-		<<else>>
-			<<set $oralTotal++, $args[0].oralCount++>>
-		<</if>>
-	<</for>>
-<<else>>
-	<<set _fuckTarget = random(1,100)>>
-	<<if $args[0].nipples == "fuckable" && $PC.dick == 1 && _fuckTarget > 80>>
-		<<set $mammaryTotal++, $args[0].mammaryCount++>>
-	<<elseif canDoVaginal($args[0]) && $args[0].vagina > 0 && _fuckTarget > 33>>
-		<<set $vaginalTotal++, $args[0].vaginalCount++>>
-		<<if $PC.dick == 1 && canGetPregnant($args[0]) && ($args[0].eggType == "human")>>
-			<<= knockMeUp($args[0], 10, 0, -1, 1)>>
-		<</if>>
-	<<elseif canDoAnal($args[0]) && $args[0].anus > 0 && _fuckTarget > 10>>
-		<<set $analTotal++, $args[0].analCount++>>
-		<<if $PC.dick == 1 && canGetPregnant($args[0]) && ($args[0].eggType == "human")>>
-			<<= knockMeUp($args[0], 10, 1, -1, 1)>>
-		<</if>>
-	<<else>>
-		<<set $oralTotal++, $args[0].oralCount++>>
-	<</if>>
-<</if>>
-<</widget>>
-
-/%
- Call as <<SimpleSlaveFucking slave 5>> or <<SimpleSlaveFucking slave>>
- $arg[1] is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability on $arg[0].
- If left undefined it will assume it to be 1.
- Intended to be a simple "x got fucked y times and I don't want to keep coding it".
- Pregnancy chance is handled in saLongTermEffects.tw.
-%/
-<<widget "SimpleSlaveFucking">>
-<<if $args[1]>>
-	<<for _miscW = 0; _miscW < $args[1]; _miscW++>>
-		<<set _fuckTarget = random(1,100)>>
-		<<if $args[0].nipples == "fuckable" && _fuckTarget > 80>>
-			<<set $mammaryTotal++, $args[0].mammaryCount++>>
-		<<elseif canDoVaginal($args[0]) && $args[0].vagina > 0 && _fuckTarget > 33>>
-			<<set $vaginalTotal++, $args[0].vaginalCount++>>
-		<<elseif canDoAnal($args[0]) && $args[0].anus > 0 && _fuckTarget > 10>>
-			<<set $analTotal++, $args[0].analCount++>>
-		<<else>>
-			<<set $oralTotal++, $args[0].oralCount++>>
-		<</if>>
-	<</for>>
-<<else>>
-	<<set _fuckTarget = random(1,100)>>
-	<<if $args[0].nipples == "fuckable" && _fuckTarget > 80>>
-		<<set $mammaryTotal++, $args[0].mammaryCount++>>
-	<<elseif canDoVaginal($args[0]) && $args[0].vagina > 0 && _fuckTarget > 33>>
-		<<set $vaginalTotal++, $args[0].vaginalCount++>>
-	<<elseif canDoAnal($args[0]) && $args[0].anus > 0 && _fuckTarget > 10>>
-		<<set $analTotal++, $args[0].analCount++>>
-	<<else>>
-		<<set $oralTotal++, $args[0].oralCount++>>
-	<</if>>
-<</if>>
-<</widget>>
-
 /%
  Call as <<SimpleSlaveSlaveFucking subslave domslave 5>> or <<SimpleSlaveSlaveFucking subslave domslave>>
  $arg[2] is how many times to increment either the Vaginal, Anal, or Oral counts, depending on availability on $arg[0].
diff --git a/src/utility/saRulesWidgets.tw b/src/utility/saRulesWidgets.tw
index 08195319e28921145e18b0d6ffb76a488bde8160..d12274635294ce471fe603997451b4302ec4c60c 100644
--- a/src/utility/saRulesWidgets.tw
+++ b/src/utility/saRulesWidgets.tw
@@ -90,15 +90,15 @@ and
 									@@.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>>
+								<<= 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>>
+								<<= 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>>
+								<<= SimpleSexAct($slaves[$i], 2)>>
 							<</if>>
 						<<else>>
 							You have no surplus sexual energy, and she asks in vain, @@.gold;reducing her trust@@ in you.
@@ -407,7 +407,7 @@ and
 											<</if>>
 										<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<run SimpleSlaveFucking($slaves[$i], 7)>>
 								<<elseif ($slaves[$i].fetish == "cumslut")>>
 									suck or be sucked by any slave she fancies.
 									<<set _fuckCount = random(5,15)>>
@@ -425,7 +425,7 @@ and
 											<<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>>
+												<<run SimpleSlaveFucking($slaves[_j], 4)>>
 												<<if canPenetrate($slaves[_j])>>
 													<<set _fuckCount = random(1,3)>>
 													<<set $slaves[_j].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -438,7 +438,7 @@ and
 										<</for>>
 									<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 4>>
+									<<run SimpleSlaveFucking($slaves[$i], 4)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(1,3)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -487,7 +487,7 @@ and
 												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>>
+												<<run SimpleSlaveFucking($slaves[_j], 4)>>
 												<<if canPenetrate($slaves[_j])>>
 													<<set _fuckCount = random(1,3)>>
 													<<set $slaves[_j].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -499,7 +499,7 @@ and
 										<</for>>
 									<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 4>>
+									<<run SimpleSlaveFucking($slaves[$i], 4)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(1,3)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -524,7 +524,7 @@ and
 											<</if>>
 										<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 12>>
+									<<run SimpleSlaveFucking($slaves[$i], 12)>>
 								<<elseif ($slaves[$i].fetish == "dom")>>
 									force other slaves to submit to her.
 									<<if $slaves[$i].assignmentVisible>>
@@ -539,7 +539,7 @@ and
 												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>>
+												<<run SimpleSlaveFucking($slaves[_j], 4)>>
 											<</if>>
 											<</if>>
 											<</if>>
@@ -547,7 +547,7 @@ and
 										<</for>>
 									<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<run SimpleSlaveFucking($slaves[$i], 7)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(6,9)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -599,14 +599,14 @@ and
 											<</if>>
 										<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<run 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>>
+									<<run SimpleSlaveFucking($slaves[$i], 7)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(3,6)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -614,7 +614,7 @@ and
 								<</if>>
 							<<else>>
 								demand that other slaves have sex with her.
-								<<SimpleSlaveFucking $slaves[$i] 7>>
+								<<run SimpleSlaveFucking($slaves[$i], 7)>>
 								<<if canPenetrate($slaves[$i])>>
 									<<set _fuckCount = random(3,6)>>
 									<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -646,14 +646,14 @@ and
 											<</if>>
 										<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<run 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>>
+									<<run SimpleSlaveFucking($slaves[$i], 7)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(1,3)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -687,7 +687,7 @@ and
 									<<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>>
+									<<run SimpleSlaveFucking($slaves[$i], 7)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(1,3)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -712,10 +712,10 @@ and
 											<</if>>
 										<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 6>>
+									<<run SimpleSlaveFucking($slaves[$i], 6)>>
 								<<elseif ($slaves[$i].fetish == "dom")>>
 									usually pairing off with a submissive bitch.
-									<<SimpleSlaveFucking $slaves[$i] 6>>
+									<<run SimpleSlaveFucking($slaves[$i], 6)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(1,3)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -743,7 +743,7 @@ and
 											<</if>>
 										<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<run SimpleSlaveFucking($slaves[$i], 7)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(6,9)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -768,14 +768,14 @@ and
 											<</if>>
 										<</if>>
 									<</if>>
-									<<SimpleSlaveFucking $slaves[$i] 7>>
+									<<run 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>>
+									<<run SimpleSlaveFucking($slaves[$i], 7)>>
 									<<if canPenetrate($slaves[$i])>>
 										<<set _fuckCount = random(3,6)>>
 										<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>
@@ -783,7 +783,7 @@ and
 								<</if>>
 							<<else>>
 								doing her best to get off and move on.
-								<<SimpleSlaveFucking $slaves[$i] 7>>
+								<<run SimpleSlaveFucking($slaves[$i], 7)>>
 								<<if canPenetrate($slaves[$i])>>
 									<<set _fuckCount = random(3,6)>>
 									<<set $slaves[$i].penetrativeCount += _fuckCount, $penetrativeTotal += _fuckCount>>