diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw
index fb5151713c3e3a4529535af9174af324a9c2ca8e..77fbec80b0759269c32fa6da404c0be458bf42a6 100644
--- a/src/js/assayJS.tw
+++ b/src/js/assayJS.tw
@@ -60,4 +60,29 @@ window.isNotPreg = function(slave) {
 
 window.isPure = function(slave) {
 	return ((slave.boobsImplant == 0) && (slave.buttImplant == 0) && (slave.waist >= -95) && (slave.lipsImplant == 0) && (slave.faceImplant < 30) && (slave.bellyImplant == -1) && (Math.abs(slave.shouldersImplant) < 2) && (Math.abs(slave.hipsImplant) < 2));
+}
+
+window.slimPass = function(slave) {
+	var slimPass = 0;
+	var ArcologyZero = State.variables.arcologies[0];
+	
+	if (ArcologyZero.FSSlimnessEnthusiastLaw == 1) {
+		if ((slave.boobs < 300) && (slave.butt <= 1) && (slave.waist <= 10)) {
+			State.variables.slimPass = 1;
+			if ((ArcologyZero.FSPhysicalIdealist == "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat == 0) && (slave.muscles > 30)) { /*muscle check*/
+				slimPass = 0;
+			}
+			if (State.variables.slimPass == 1) {
+				if ((ArcologyZero.FSHedonisticDecadence != "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat == 1)) { /*weight check*/
+					if (slave.weight > 30) {
+						slimPass = 0;
+					}
+				} else if (slave.weight > 10) {
+					slimPass = 0;
+				}
+			}
+		}
+	}
+	
+	return slimPass;
 }
\ No newline at end of file