diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 1d444506a7148e9fb3a9307986a37d3759c05be9..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)
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">>