diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw
index 3bdf83d9f78cbb872625f2df26bf33f39fa8ef1a..dedc4ad900f48b3e063f9fc793d5a6bc4bd2853f 100644
--- a/src/js/DefaultRules.tw
+++ b/src/js/DefaultRules.tw
@@ -1156,7 +1156,7 @@ window.DefaultRules = (function() {
 						slave.drugs = rule.drug;
 						r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
 					} else {
-						slave.drugs = "no drugs" ;
+						slave.drugs = "no drugs";
 						r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
 					}
 					break;
@@ -1176,7 +1176,7 @@ window.DefaultRules = (function() {
 						slave.drugs = rule.drug ;
 						r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
 					} else {
-						slave.drugs = "no drugs" ;
+						slave.drugs = "no drugs";
 						r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
 					}
 					break;
@@ -1186,13 +1186,13 @@ window.DefaultRules = (function() {
 						slave.drugs = rule.drug ;
 						r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
 					} else {
-						slave.drugs = "no drugs" ;
+						slave.drugs = "no drugs";
 						r += `<br>${slave.slaveName} cannot benefit from her assigned drug and has been defaulted to ${slave.drugs}.`;
 					}
 					break;
 
 				default:
-					slave.drugs = rule.drug ;
+					slave.drugs = rule.drug;
 					r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
 					break;
 				}
@@ -1229,19 +1229,12 @@ window.DefaultRules = (function() {
 							slave.diet = "restricted";
 							r += `<br>${slave.slaveName} is too fat so her diet has been set to restricted.`;
 						}
-						if ((V.arcologies[0].FSSlimnessEnthusiastResearch == 1 && (slave.drugs == "no drugs" || slave.drugs == "none"))) {
-							slave.drugs = "appetite suppressors";
-							r += `<br>${slave.slaveName} is too fat so she will be given weight loss pills.`;
-						}
+						
 					} else if ((slave.weight - rule.diet) < -5) {
 						if ((slave.diet !== "fattening")) {
 							slave.diet = "fattening";
 							r += `<br>${slave.slaveName} is too skinny so her diet has been set to fattening.`;
 						}
-						if ((slave.drugs == "appetite suppressors")) {
-							slave.drugs = "no drugs";
-							r += `<br>${slave.slaveName} is too skinny so she will no longer be given weight loss pills.`;
-						}
 					} else if ((rule.muscles !== undefined) && (rule.muscles !== "no default setting") && (slave.amp != 1)) {
 						if ((slave.muscles >= rule.muscles+8)) {
 							if ((slave.diet !== "slimming")) {
@@ -1264,10 +1257,6 @@ window.DefaultRules = (function() {
 							slave.diet = "healthy";
 							r += `<br>${slave.slaveName} is at the target weight, so her diet has been normalized.`;
 						}
-						if ((slave.drugs == "appetite suppressors")) {
-							slave.drugs = "no drugs";
-							r += `<br>${slave.slaveName} is at the target weight, so she will no longer be given weight loss pills.`;
-						}
 					}
 				} else if ((rule.diet == "attractive")) {
 					if (((slave.weight > 95) || ((slave.weight > 30) && (slave.hips < 2)))) {
@@ -1275,19 +1264,11 @@ window.DefaultRules = (function() {
 							slave.diet = "restricted";
 							r += `<br>${slave.slaveName} is too fat so her diet has been set to restricted.`;
 						}
-						if ((V.arcologies[0].FSSlimnessEnthusiastResearch == 1 && (slave.drugs == "no drugs" || slave.drugs == "none"))) {
-							slave.drugs = "appetite suppressors";
-							r += `<br>${slave.slaveName} is too fat so she will be given weight loss pills.`;
-						}
 					} else if (((slave.weight < -95) || ((slave.weight < -30) && (slave.hips > -2)))) {
 						if ((slave.diet !== "fattening")) {
 							slave.diet = "fattening";
 							r += `<br>${slave.slaveName} is too skinny so her diet has been set to fattening.`;
 						}
-						if ((slave.drugs == "appetite suppressors")) {
-							slave.drugs = "no drugs";
-							r += `<br>${slave.slaveName} is too skinny so she will no longer be given weight loss pills.`;
-						}
 					} else if ((rule.muscles !== undefined) && (rule.muscles !== "no default setting") && (slave.amp != 1)) {
 						if ((slave.muscles >= rule.muscles+8)) {
 							if ((slave.diet !== "slimming")) {
@@ -1304,20 +1285,12 @@ window.DefaultRules = (function() {
 								slave.diet = "healthy";
 								r += `<br>${slave.slaveName} is at the target weight, so her diet has been normalized.`;
 							}
-							if ((slave.drugs == "appetite suppressors")) {
-								slave.drugs = "no drugs";
-								r += `<br>${slave.slaveName} is at the target weight, so she will no longer be given weight loss pills.`;
-							}
 						}
 					} else {
 						if ((slave.diet !== "healthy")) {
 							slave.diet = "healthy";
 							r += `<br>${slave.slaveName} is at the target weight, so her diet has been normalized.`;
 						}
-						if ((slave.drugs == "appetite suppressors")) {
-							slave.drugs = "no drugs";
-							r += `<br>${slave.slaveName} is at the target weight, so she will no longer be given weight loss pills.`;
-						}
 					}
 				} else if ((rule.diet == "XX")) {
 					if ((slave.diet !== "XX")) {
@@ -1395,6 +1368,14 @@ window.DefaultRules = (function() {
 				}
 			}
 		}
+
+		if (slave.drugs === "appetite suppressors" && slave.diet !== "slimming") {
+			slave.drugs = "no drugs";
+			r += `<br>${slave.slaveName} is no longer losing weight, so she's no longer being given appetite suppressors.`;
+		} else if (slave.diet === "slimming" && V.arcologies[0].FSSlimnessEnthusiastResearch == 1 && (slave.drugs == "no drugs" || slave.drugs == "none")) {
+			slave.drugs = "appetite suppressors";
+			r += `<br>${slave.slaveName} is losing weight so she will be given weight loss pills.`;
+		}
 	}
 
 	function ProcessCuratives(slave, rule) {
diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw
index 5bec42122915a06e9464c943a17b0721b3ebfed4..dd43be996834a5a70ea4c5fe8d9779cd85232b9a 100644
--- a/src/js/rulesAssistant.tw
+++ b/src/js/rulesAssistant.tw
@@ -2,7 +2,7 @@
 
 window.hasSurgeryRule = function(slave, rules) {
 	return rules.some(
-		rule => ruleApplied(slave, rule.ID) && rule.autoSurgery > 0);
+		rule => ruleApplied(slave, rule) && rule.set.autoSurgery > 0);
 };
 
 window.hasRuleFor = function(slave, rules, what) {
diff --git a/src/js/rulesAutosurgery.tw b/src/js/rulesAutosurgery.tw
index 6a3d7c68e769f60223f4a9db0393aa05110a6bb4..d8dc96402d0f0d954fecc0c81479ef61cfdbd36f 100644
--- a/src/js/rulesAutosurgery.tw
+++ b/src/js/rulesAutosurgery.tw
@@ -18,8 +18,6 @@ window.rulesAutosurgery = (function() {
 	}
 	
 	function autoSurgerySelector(slave, ruleset) {
-		const apply = ruleset.filter(rule => rule.set.autoSurgery == 1 && slave.currentRules.contains(rule.ID));
-
 		const surgery = {
 			surgery_eyes: "no default setting",
 			surgery_lactation: "no default setting",
@@ -36,14 +34,16 @@ window.rulesAutosurgery = (function() {
 			surgery_holes: "no default setting",
 			surgery_bodyhair: "no default setting",
 			surgery_hair: "no default setting",
-			surgery_bellyImplant: "no default setting"
+			surgery_bellyImplant: "no default setting",
+			surgery_vasectomy: "no default setting",
 		};
-		apply.forEach(rule => {
+		ruleset.forEach(rule => {
 			Object.keys(surgery).forEach(key => {
 				if (rule[key] !== "no default setting")
 					surgery[key] = rule[key];
 			})
 		});
+		console.log(surgery);
 		return surgery;
 	}
 
@@ -115,7 +115,11 @@ window.rulesAutosurgery = (function() {
 			};
 			break;
 		default:
-			thisSurgery = autoSurgerySelector(slave, V.defaultRules);
+			thisSurgery = autoSurgerySelector(
+				slave,
+				V.defaultRules
+					.filter(x => ruleApplied(slave, x) && x.set.autoSurgery === 1)
+					.map(x => x.set));
 			if ((thisSurgery.surgery_hips !== "no default setting") && (thisSurgery.surgery_butt !== "no default setting")) {
 				if (slave.hips < -1) {
 					if (thisSurgery.surgery_butt > 2)
@@ -139,49 +143,49 @@ window.rulesAutosurgery = (function() {
 	}
 
 	function CommitSurgery(slave, thisSurgery, surgeries) {
-		if ((slave.eyes == -1) && (thisSurgery.eyes == 1)) {
+		if ((slave.eyes == -1) && (thisSurgery.surgery_eyes == 1)) {
 			surgeries.push("surgery to correct her vision");
 			slave.eyes = 1;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.eyes == 1) && (thisSurgery.eyes == -1)) {
+		} else if ((slave.eyes == 1) && (thisSurgery.surgery_eyes == -1)) {
 			surgeries.push("surgery to blur her vision");
 			slave.eyes = -1;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.lactation == 2) && (thisSurgery.lactation == 0)) {
+		} else if ((slave.lactation == 2) && (thisSurgery.surgery_lactation == 0)) {
 			surgeries.push("surgery to remove her lactation implants");
 			slave.lactation = 0;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if (slave.lactation != 2 && (thisSurgery.lactation == 1)) {
+		} else if (slave.lactation != 2 && (thisSurgery.surgery_lactation == 1)) {
 			surgeries.push("lactation inducing implanted drugs");
 			slave.lactation = 2;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.prostate == 2) && (thisSurgery.prostate == 0)) {
+		} else if ((slave.prostate == 2) && (thisSurgery.surgery_prostate == 0)) {
 			surgeries.push("surgery to remove her prostate implant");
 			slave.prostate = 0;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if (slave.prostate == 1 && (thisSurgery.prostate == 1)) {
+		} else if (slave.prostate == 1 && (thisSurgery.surgery_prostate == 1)) {
 			surgeries.push("a precum production enhancing drug implant");
 			slave.prostate = 2;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.anus > 3) && (thisSurgery.cosmetic > 0)) {
+		} else if ((slave.anus > 3) && (thisSurgery.surgery_cosmetic > 0)) {
 			surgeries.push("a restored anus");
 			slave.anus = 3;
 			if (slave.analSkill > 10)
@@ -190,7 +194,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.vagina > 3) && (thisSurgery.cosmetic > 0)) {
+		} else if ((slave.vagina > 3) && (thisSurgery.surgery_cosmetic > 0)) {
 			surgeries.push("a restored pussy");
 			slave.vagina = 3;
 			if (slave.vaginalSkill > 10)
@@ -199,7 +203,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.faceImplant <= 15) && (slave.face <= 95) && (thisSurgery.cosmetic > 0)) {
+		} else if ((slave.faceImplant <= 15) && (slave.face <= 95) && (thisSurgery.surgery_cosmetic > 0)) {
 			surgeries.push("a nicer face");
 			if (slave.faceShape == "masculine") {slave.faceShape = "androgynous"};
 			slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade;
@@ -208,7 +212,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.faceImplant <= 15) && (slave.ageImplant != 1) && (slave.visualAge >= 25) && (thisSurgery.cosmetic > 0)) {
+		} else if ((slave.faceImplant <= 15) && (slave.ageImplant != 1) && (slave.visualAge >= 25) && (thisSurgery.surgery_cosmetic > 0)) {
 			surgeries.push("an age lift");
 			slave.ageImplant = 1;
 			slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade;
@@ -221,26 +225,26 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if (((slave.underArmHStyle != "bald" && slave.underArmHStyle != "hairless") || (slave.pubicHStyle != "bald" && slave.pubicHStyle != "hairless")) && (thisSurgery.bodyhair == 2)) {
+		} else if (((slave.underArmHStyle != "bald" && slave.underArmHStyle != "hairless") || (slave.pubicHStyle != "bald" && slave.pubicHStyle != "hairless")) && (thisSurgery.surgery_bodyhair == 2)) {
 			surgeries.push("body hair removal");
 			if (slave.underArmHStyle != "hairless") {slave.underArmHStyle = "bald"};
 			if (slave.pubicHStyle != "hairless") {slave.pubicHStyle = "bald"};
 			V.cash -= V.surgeryCost;
 			
-		} else if ((slave.bald == 0 || slave.hStyle != "bald") && (thisSurgery.hair == 2)) {
+		} else if ((slave.bald == 0 || slave.hStyle != "bald") && (thisSurgery.surgery_hair == 2)) {
 			surgeries.push("hair removal");
 			slave.hStyle = "bald";
 			slave.bald = 1;
 			V.cash -= V.surgeryCost;
 			
-		} else if ((slave.weight >= 10) && (thisSurgery.cosmetic > 0)) {
+		} else if ((slave.weight >= 10) && (thisSurgery.surgery_cosmetic > 0)) {
 			surgeries.push("liposuction");
 			slave.weight -= 50;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.voice == 1) && (slave.voiceImplant == 0) && (thisSurgery.cosmetic > 0)) {
+		} else if ((slave.voice == 1) && (slave.voiceImplant == 0) && (thisSurgery.surgery_cosmetic > 0)) {
 			surgeries.push("a feminine voice");
 			slave.voice += 1;
 			slave.voiceImplant += 1;
@@ -248,21 +252,21 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.waist >= -10) && (thisSurgery.cosmetic > 0)) {
+		} else if ((slave.waist >= -10) && (thisSurgery.surgery_cosmetic > 0)) {
 			surgeries.push("a narrower waist");
 			slave.waist -= 20;
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if (((slave.boobShape == "saggy") || (slave.boobShape == "downward-facing")) && (thisSurgery.cosmetic > 0) && (slave.breastMesh != 1)) {
+		} else if (((slave.boobShape == "saggy") || (slave.boobShape == "downward-facing")) && (thisSurgery.surgery_cosmetic > 0) && (slave.breastMesh != 1)) {
 			surgeries.push("a breast lift");
 			slave.boobShape = "normal";
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if (((slave.boobShape == "normal") || (slave.boobShape == "wide-set")) && (thisSurgery.cosmetic > 0) && (slave.breastMesh != 1)) {
+		} else if (((slave.boobShape == "normal") || (slave.boobShape == "wide-set")) && (thisSurgery.surgery_cosmetic > 0) && (slave.breastMesh != 1)) {
 			if (slave.boobs > 800)
 				slave.boobShape = "torpedo-shaped";
 			else
@@ -272,7 +276,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((thisSurgery.lips == 0) && (slave.lipsImplant > 0)) {
+		} else if ((thisSurgery.surgery_lips == 0) && (slave.lipsImplant > 0)) {
 			surgeries.push("surgery to remove her lip implants");
 			slave.lips -= slave.lipsImplant;
 			slave.lipsImplant = 0;
@@ -282,8 +286,8 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.lips <= 95) && (slave.lips < thisSurgery.lips)) {
-			if (thisSurgery.lips !== "no default setting") {
+		} else if ((slave.lips <= 95) && (slave.lips < thisSurgery.surgery_lips)) {
+			if (thisSurgery.surgery_lips !== "no default setting") {
 				surgeries.push("bigger lips");
 				slave.lipsImplant += 10;
 				slave.lips += 10;
@@ -294,7 +298,7 @@ window.rulesAutosurgery = (function() {
 				else slave.health -= 10;
 			}
 			
-		} else if ((slave.faceImplant <= 45) && (slave.face <= 95) && (thisSurgery.cosmetic == 2)) {
+		} else if ((slave.faceImplant <= 45) && (slave.face <= 95) && (thisSurgery.surgery_cosmetic == 2)) {
 			surgeries.push("a nicer face");
 			if (slave.faceShape == "masculine") slave.faceShape = "androgynous";
 			slave.faceImplant += 25-5*Math.trunc(V.PC.medicine/50)-5*V.surgeryUpgrade;
@@ -303,7 +307,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.hips < 1) && (slave.hips < thisSurgery.hips) && (V.surgeryUpgrade == 1)) {
+		} else if ((slave.hips < 1) && (slave.hips < thisSurgery.surgery_hips) && (V.surgeryUpgrade == 1)) {
 			surgeries.push("wider hips");
 			slave.hips++;
 			slave.hipsImplant++;
@@ -311,7 +315,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.faceImplant <= 45) && (slave.ageImplant != 1) && (slave.visualAge >= 25) && (thisSurgery.cosmetic == 2)) {
+		} else if ((slave.faceImplant <= 45) && (slave.ageImplant != 1) && (slave.visualAge >= 25) && (thisSurgery.surgery_cosmetic == 2)) {
 			surgeries.push("an age lift");
 			slave.ageImplant = 1;
 			if (slave.visualAge > 80) {
@@ -330,14 +334,14 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.waist >= -95) && (thisSurgery.cosmetic == 2) && (V.seeExtreme == 1)) {
+		} else if ((slave.waist >= -95) && (thisSurgery.surgery_cosmetic == 2) && (V.seeExtreme == 1)) {
 			surgeries.push("a narrower waist");
 			slave.waist = Math.clamp(slave.waist-20,-100,100);
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.voice < 3) && (slave.voiceImplant == 0) && (thisSurgery.cosmetic == 2)) {
+		} else if ((slave.voice < 3) && (slave.voiceImplant == 0) && (thisSurgery.surgery_cosmetic == 2)) {
 			surgeries.push("a bimbo's voice");
 			slave.voice += 1;
 			slave.voiceImplant += 1;
@@ -345,7 +349,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((thisSurgery.butt == 0) && (slave.buttImplant > 0)) {
+		} else if ((thisSurgery.surgery_butt == 0) && (slave.buttImplant > 0)) {
 			surgeries.push("surgery to remove her butt implants");
 			slave.butt -= slave.buttImplant;
 			slave.buttImplant = 0;
@@ -354,7 +358,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((thisSurgery.boobs == 0) && (slave.boobsImplant > 0)) {
+		} else if ((thisSurgery.surgery_boobs == 0) && (slave.boobsImplant > 0)) {
 			surgeries.push("surgery to remove her boob implants");
 			slave.boobs -= slave.boobsImplant;
 			slave.boobsImplant = 0;
@@ -362,8 +366,8 @@ window.rulesAutosurgery = (function() {
 			V.cash -= V.surgeryCost;
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
-		} else if ((slave.butt <= 3) && (slave.butt < thisSurgery.butt)) {
-			if (thisSurgery.butt !== "no default setting") {
+		} else if ((slave.butt <= 3) && (slave.butt < thisSurgery.surgery_butt)) {
+			if (thisSurgery.surgery_butt !== "no default setting") {
 				surgeries.push("a bigger butt");
 				slave.buttImplant = 1;
 				slave.butt += 1;
@@ -371,8 +375,8 @@ window.rulesAutosurgery = (function() {
 				if (V.PC.medicine >= 100) slave.health -= 5;
 				else slave.health -= 10;
 			}
-		} else if ((slave.boobs <= 600) && (slave.lactation < 2) && (slave.boobs+400 <= thisSurgery.boobs)) {
-			if (thisSurgery.boobs !== "no default setting") {
+		} else if ((slave.boobs <= 600) && (slave.lactation < 2) && (slave.boobs+400 <= thisSurgery.surgery_boobs)) {
+			if (thisSurgery.surgery_boobs !== "no default setting") {
 				surgeries.push("bigger boobs");
 				slave.boobsImplant += 400;
 				slave.boobs += 400;
@@ -380,8 +384,8 @@ window.rulesAutosurgery = (function() {
 				if (V.PC.medicine >= 100) slave.health -= 5;
 				else slave.health -= 10;
 			}
-		} else if ((slave.boobs <= 600) && (slave.lactation < 2) && (slave.boobs+200 <= thisSurgery.boobs)) {
-			if (thisSurgery.boobs !== "no default setting") {
+		} else if ((slave.boobs <= 600) && (slave.lactation < 2) && (slave.boobs+200 <= thisSurgery.surgery_boobs)) {
+			if (thisSurgery.surgery_boobs !== "no default setting") {
 				surgeries.push("modestly bigger boobs");
 				slave.boobsImplant += 200;
 				slave.boobs += 200;
@@ -390,8 +394,8 @@ window.rulesAutosurgery = (function() {
 				else slave.health -= 10;
 			}
 			
-		} else if ((slave.butt <= 5) && (slave.butt < thisSurgery.butt)) {
-			if (thisSurgery.butt !== "no default setting") {
+		} else if ((slave.butt <= 5) && (slave.butt < thisSurgery.surgery_butt)) {
+			if (thisSurgery.surgery_butt !== "no default setting") {
 				surgeries.push("a bigger butt");
 				slave.buttImplant = 1;
 				slave.butt += 1;
@@ -400,8 +404,8 @@ window.rulesAutosurgery = (function() {
 				else slave.health -= 10;
 			}
 			
-		} else if ((slave.boobs <= 2000) && (slave.lactation < 2) && (slave.boobs+400 < thisSurgery.boobs)) {
-			if (thisSurgery.boobs !== "no default setting") {
+		} else if ((slave.boobs <= 2000) && (slave.lactation < 2) && (slave.boobs+400 < thisSurgery.surgery_boobs)) {
+			if (thisSurgery.surgery_boobs !== "no default setting") {
 				surgeries.push("bigger boobs");
 				slave.boobsImplant += 400;
 				slave.boobs += 400;
@@ -410,7 +414,7 @@ window.rulesAutosurgery = (function() {
 				else slave.health -= 10;
 			}
 			
-		} else if ((slave.anus > 0) && (V.surgeryUpgrade == 1) && (thisSurgery.holes == 2)) {
+		} else if ((slave.anus > 0) && (V.surgeryUpgrade == 1) && (thisSurgery.surgery_holes == 2)) {
 			surgeries.push("a virgin anus");
 			slave.anus = 0;
 			if (slave.analSkill > 10) {
@@ -420,7 +424,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.vagina > 0) && (V.surgeryUpgrade == 1) && (thisSurgery.holes == 2)) {
+		} else if ((slave.vagina > 0) && (V.surgeryUpgrade == 1) && (thisSurgery.surgery_holes == 2)) {
 			surgeries.push("a virgin pussy");
 			slave.vagina = 0;
 			if (slave.vaginalSkill > 10)
@@ -429,7 +433,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.hips < 2) && (slave.hips < thisSurgery.hips) && (V.surgeryUpgrade == 1)) {
+		} else if ((slave.hips < 2) && (slave.hips < thisSurgery.surgery_hips) && (V.surgeryUpgrade == 1)) {
 			surgeries.push("wider hips");
 			slave.hips++;
 			slave.hipsImplant++;
@@ -437,7 +441,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.anus > 1) && (thisSurgery.holes == 1)) {
+		} else if ((slave.anus > 1) && (thisSurgery.surgery_holes == 1)) {
 			surgeries.push("a tighter anus");
 			slave.anus = 1;
 			if (slave.analSkill > 10) {
@@ -447,7 +451,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.vagina > 1) && (thisSurgery.holes == 1)) {
+		} else if ((slave.vagina > 1) && (thisSurgery.surgery_holes == 1)) {
 			surgeries.push("a tighter pussy");
 			slave.vagina = 1;
 			if (slave.vaginalSkill > 10) {
@@ -457,8 +461,8 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if ((slave.butt <= 8) && (slave.butt < thisSurgery.butt)) {
-			if (thisSurgery.butt !== "no default setting") {
+		} else if ((slave.butt <= 8) && (slave.butt < thisSurgery.surgery_butt)) {
+			if (thisSurgery.surgery_butt !== "no default setting") {
 				surgeries.push("a bigger butt");
 				slave.buttImplant = 1;
 				slave.butt += 1;
@@ -467,8 +471,8 @@ window.rulesAutosurgery = (function() {
 				else slave.health -= 10;
 			}
 			
-		} else if ((slave.boobs <= 9000) && (slave.lactation < 2) && (slave.boobs < thisSurgery.boobs)) {
-			if (thisSurgery.boobs !== "no default setting") {
+		} else if ((slave.boobs <= 9000) && (slave.lactation < 2) && (slave.boobs < thisSurgery.surgery_boobs)) {
+			if (thisSurgery.surgery_boobs !== "no default setting") {
 				surgeries.push("bigger boobs");
 				slave.boobsImplant += 200;
 				slave.boobs += 200;
@@ -477,7 +481,7 @@ window.rulesAutosurgery = (function() {
 				else slave.health -= 10;
 			}
 			
-		} else if ((slave.hips < 3) && (slave.hips < thisSurgery.hips) && (V.surgeryUpgrade == 1)) {
+		} else if ((slave.hips < 3) && (slave.hips < thisSurgery.surgery_hips) && (V.surgeryUpgrade == 1)) {
 			surgeries.push("wider hips");
 			slave.hips++;
 			slave.hipsImplant++;
@@ -485,7 +489,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 			
-		} else if (slave.bellyImplant < 0 && V.bellyImplants > 0 && thisSurgery.bellyImplant == "install" && slave.womb.length == 0 && slave.broodmother == 0) {
+		} else if (slave.bellyImplant < 0 && V.bellyImplants > 0 && thisSurgery.surgery_bellyImplant == "install" && slave.womb.length == 0 && slave.broodmother == 0) {
 			slave.bellyImplant = 100;
 			slave.preg = -2;
 			V.cash -= V.surgeryCost;
@@ -502,7 +506,7 @@ window.rulesAutosurgery = (function() {
 			}
 			bellyIn(slave);
 			
-		} else if (slave.bellyImplant >= 0 && thisSurgery.bellyImplant == "remove") {
+		} else if (slave.bellyImplant >= 0 && thisSurgery.surgery_bellyImplant == "remove") {
 			surgeries.push("belly implant removal");
 			V.surgeryType = "bellyOut";
 			if (V.PC.medicine >= 100)
@@ -512,7 +516,7 @@ window.rulesAutosurgery = (function() {
 			slave.preg = 0;
 			slave.bellyImplant = -1;
 			V.cash -= V.surgeryCost;
-		} else if (slave.balls > 0 && slave.vasectomy === 0 && thisSurgery.vasectomy === true) {
+		} else if (slave.balls > 0 && slave.vasectomy === 0 && thisSurgery.surgery_vasectomy === true) {
 			surgeries.push("vasectomy");
 			V.surgeryType = "vasectomy";
 			if (V.PC.medicine >= 100)
@@ -521,7 +525,7 @@ window.rulesAutosurgery = (function() {
 				slave.health -= 10;
 			slave.vasectomy = 1
 			V.cash -= V.surgeryCost;
-		} else if (slave.balls > 0 && slave.vasectomy === 1 && thisSurgery.vasectomy === false) {
+		} else if (slave.balls > 0 && slave.vasectomy === 1 && thisSurgery.surgery_vasectomy === false) {
 			surgery.push("undo vasectomy");
 			V.surgeryType = "vasectomy undo";
 			if (V.PC.medicine >= 100)
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 46e0ebe7a5029c0f36ccdde2fcbca32e1bd255c1..8ce6a55e3547dc2f86d8a5410da8d39c36244bc7 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -884,7 +884,7 @@
 <</if>>
 
 <<if $HGSuiteSurgery != 0>>
-	<<if ($slaves[$i].health > 40) && $arcologies[0].FSBodyPurist == "unset">>
+	<<if $arcologies[0].FSBodyPurist == "unset">>
 		$HeadGirl.slaveName sends $assistantName notes on what surgical modifications she wants for $slaves[$i].slaveName.
 		<<= rulesAutosurgery($slaves[$i])>>
 	<</if>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 86fc61aef3e4bec96a3303eb546a2eb8af6cbc5b..e88b4a23e13f32ccc17af127f8104a393c5e8fbf 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -100,30 +100,12 @@
 <</if>>
 
 <<if $slaves[$i].assignmentVisible == 1>> /* OPENS AUTOSURGERY, CLOTHES, AND ACCESSORIES */
-
-<<if hasSurgeryRule($slaves[$i], $defaultRules)>>
-<<if $slaves[$i].useRulesAssistant == 1>>
-<<if $slaves[$i].indentureRestrictions < 2>>
-<<if ($slaves[$i].health > 20)>>
-<<if ($slaves[$i].devotion >= -20)>>
-<<if ($slaves[$i].assignment != "be confined in the arcade")>>
-<<if ($slaves[$i].assignment != "work a glory hole")>>
-<<if ($slaves[$i].assignment != "work in the dairy")>>
-<<if ($slaves[$i].assignment != "guard you")>>
-<<if ($slaves[$i].assignment != "live with your Head Girl")>>
-<<if ($cash > 0)>>
-	<<= rulesAutoSurgery($slaves[$i])>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
+	<<if hasSurgeryRule($slaves[$i], $defaultRules) &&
+		$slaves[$i].useRulesAssistant == 1 &&
+		$slaves[$i].indentureRestrictions < 2 &&
+		$cash > 0>>
+		<<= rulesAutosurgery($slaves[$i])>>
+	<</if>>
 
 <</if>>