diff --git a/compile b/compile
old mode 100644
new mode 100755
diff --git a/devTools/AutoGitVersionUploadBackground.sh b/devTools/AutoGitVersionUploadBackground.sh
old mode 100644
new mode 100755
diff --git a/devTools/AutoGitVersionUploadForground.sh b/devTools/AutoGitVersionUploadForground.sh
old mode 100644
new mode 100755
diff --git a/devTools/BuildAndIPFSify.sh b/devTools/BuildAndIPFSify.sh
old mode 100644
new mode 100755
diff --git a/devTools/check.py b/devTools/check.py
old mode 100644
new mode 100755
diff --git a/devTools/embed_favicon.py b/devTools/embed_favicon.py
old mode 100644
new mode 100755
diff --git a/devTools/tweeGo/tweego_nix64 b/devTools/tweeGo/tweego_nix64
old mode 100644
new mode 100755
diff --git a/devTools/tweeGo/tweego_nix86 b/devTools/tweeGo/tweego_nix86
old mode 100644
new mode 100755
diff --git a/devTools/tweeGo/tweego_osx64 b/devTools/tweeGo/tweego_osx64
old mode 100644
new mode 100755
diff --git a/devTools/tweeGo/tweego_osx86 b/devTools/tweeGo/tweego_osx86
old mode 100644
new mode 100755
diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw
index de4842da3e738c5d10514c09ef9111721f884362..773f3c3076a44111ccc50c25705dc5beb1c49be3 100644
--- a/src/js/DefaultRules.tw
+++ b/src/js/DefaultRules.tw
@@ -58,8 +58,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))));
 	}
 
@@ -1098,62 +1098,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}`;
 			}
 		}
 	}
diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw
index ca647c40fe74fb4e0da10eda3a322f259b6fd337..7a2eed45734ff01c52b47a95e532954cde7fdf73 100644
--- a/src/js/rulesAssistantOptions.tw
+++ b/src/js/rulesAssistantOptions.tw
@@ -1606,6 +1606,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)
@@ -1616,8 +1625,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/uncategorized/main.tw b/src/uncategorized/main.tw
index ff8988ca941c5a5b2e9aa9da6284172fe0c1c849..9ff5815ced928fba39497c713d45ce8ee892c068 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -14,7 +14,7 @@
 	''@@.red;INCOMPATIBLE SAVE WARNING:@@'' your saved game was created using version $ver and you are using later version which New Game Plus cannot reconcile. Please start a new game.
 	<br><br>
 <</if>>
-<<if $defaultRules.length > 0 && $defaultRules[0].condition == undefined>>
+<<if $defaultRules.length > 0 && ($defaultRules[0].condition == undefined || $defaultRules[0].set == undefined)>>
 	''@@.red;INCOMPATIBILITY WARNING:@@'' the rules assistant format has changed. In the Options Menu, please ''Reset RA Rules''
 <</if>>