diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index c7e7cbf4b06558c43ddc53ab745a6ccd82ea4824..20d4919b7fb20a1f2924ee750f1ccbf829745688 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -7470,23 +7470,21 @@ window.TatScore = function(slave) {
 };
 
 window.slimPass = function(slave) {
-	var slimPass = 0;
-	var ArcologyZero = State.variables.arcologies[0];
+	let slimPass = 0;
+	let 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) {
+			} else if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) { /*weight check*/
+				if (slave.weight > 30) {
 					slimPass = 0;
 				}
+			} else if (slave.weight > 10) {
+				slimPass = 0;
+			} else {
+				slimPass = 1;
 			}
 		}
 	}
@@ -9375,6 +9373,143 @@ window.faceIncrease = function faceIncrease(slave, amount) {
 	return r;
 };
 
+window.Deadliness = function Deadliness(slave) {
+	const V = State.variables;
+	let deadliness = 2;
+
+	if (slave.combatSkill > 0) {
+		deadliness += 2;
+	}
+
+	if (setup.bodyguardCareers.includes(slave.career)) {
+		deadliness += 1;
+	} else if (slave.skillBG >= V.masteredXP) {
+		deadliness += 1;
+	}
+
+	if (slave.muscles > 30 && slave.muscles <= 95) {
+		deadliness += 1;
+	} else if (slave.muscles > 95 && slave.height >= 185) {
+		deadliness += 2;
+	} else if (slave.muscles > 95) {
+		deadliness -= 1;
+	} else if (slave.muscles < -95) {
+		deadliness -= 20;
+	} else if (slave.muscles < -30) {
+		deadliness -= 7;
+	} else if (slave.muscles < -5) {
+		deadliness -= 3;
+	}
+
+	if (slave.height >= 170) {
+		deadliness += 1;
+	}
+
+	if (slave.health > 50) {
+		deadliness += 1;
+	}
+
+	if (slave.boobs > 4000) {
+		deadliness -= 2;
+	} else if (slave.boobs > 2000) {
+		deadliness -= 1;
+	}
+
+	if (slave.butt > 6) {
+		deadliness -= 1;
+	}
+
+	if (slave.hips > 2) {
+		deadliness -= 1;
+	}
+
+	if (slave.weight > 190) {
+		deadliness -= 20;
+	} else if (slave.weight > 160) {
+		deadliness -= 10;
+	} else if (slave.weight > 130) {
+		deadliness -= 3;
+	} else if (slave.weight > 30 || slave.weight < -10) {
+		deadliness -= 1;
+	}
+
+	if (slave.health < -50) {
+		deadliness -= 1;
+	}
+
+	if (slave.bellyFluid >= 10000) {
+		deadliness -= 3;
+	} else if (slave.bellyFluid >= 5000) {
+		deadliness -= 2;
+	} else if (slave.bellyFluid >= 2000) {
+		deadliness -= 1;
+	}
+
+	if (slave.pregKnown === 1 || slave.bellyPreg >= 1500 || slave.bellyImplant >= 1500) {
+		if (slave.belly >= 750000) {
+			deadliness -= 50;
+		} else if (slave.belly >= 600000) {
+			deadliness -= 25;
+		} else if (slave.belly >= 450000) {
+			deadliness -= 15;
+		} else if (slave.belly >= 300000) {
+			deadliness -= 10;
+		} else if (slave.belly >= 150000) {
+			deadliness -= 8;
+		} else if (slave.belly >= 100000) {
+			deadliness -= 7;
+		} else if (slave.belly >= 10000) {
+			deadliness -= 3;
+		} else if (slave.belly >= 5000) {
+			deadliness -= 2;
+		} else {
+			deadliness -= 1;
+		}
+	}
+	
+	if (slave.labor === 1) {
+		deadliness -= 15;
+	} else if (slave.preg >= 40 && slave.pregControl !== "labor supressors") {
+		deadliness -= 5;
+	}
+
+	if (slave.balls >= 15) {
+		deadliness -= 1;
+	}
+
+	if (slave.dick >= 10) {
+		deadliness -= 1;
+	}
+
+	if (slave.amp === 0) {
+		if (!canWalk(slave)) {
+			deadliness -= 20;
+		}
+	} else if (slave.amp === 1) {
+		deadliness -= 20;
+	} else if (slave.amp === -5) {
+		deadliness += 10;
+	} else if (slave.amp === -4) {
+		deadliness += 5;
+	} else {
+		deadliness -= 1;
+	}
+
+	if (!canSee(slave)) {
+		deadliness -= 8;
+	} else if ((slave.eyes === -1 && !["corrective glasses", "corrective contacts"].includes(slave.eyewear)) || (slave.eyes === 1 && ["blurring glasses", "blurring contacts"].includes(slave.eyewear))) {
+		deadliness -= 1;
+	}
+
+	if (!canHear(slave)) {
+		deadliness -= 4;
+	} else if ((slave.hears == -1 && slave.earwear !== "hearing aids") || (slave.hears == 0 && slave.earwear === "muffling ear plugs")) {
+		deadliness -= 1;
+	}
+
+	return Math.max(deadliness, 1);
+};
+
 /*:: relationshipChecks [script]*/
 window.rivalryTerm = function(id) {
 	if (id.rivalry === 1) {
@@ -12565,7 +12700,7 @@ window.FResult = (function() {
 	"use strict";
 	// we can't initialise our global variables on load, because SugarCube.State isn't initialised
 	// instead, declare them and initialise on run time
-	let V, incest_bonus;
+	let V, result, incest_bonus;
 	function FResult(slave) {
 		V = State.variables;
 		incest_bonus = V.arcologies[0].FSEgyptianRevivalist > 20 || V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1;
@@ -12574,15 +12709,15 @@ window.FResult = (function() {
 		if (!slave.fuckdoll)
 			calcNotFuckdoll(slave);
 		else
-			V.FResult += slave.fuckdoll/10;
+			result += slave.fuckdoll/10;
 
-		V.FResult += Math.max(0, slave.aphrodisiacs) * 2;
+		result += Math.max(0, slave.aphrodisiacs) * 2;
 
 		if (slave.inflationType === "aphrodisiac")
-			V.FResult += slave.inflation*4;
+			result += slave.inflation*4;
 
 		if (slave.lactation > 0)
-			V.FResult += 1;
+			result += 1;
 
 		if (slave.nipples === "fuckable")
 			calcFuckableTits(slave);
@@ -12590,67 +12725,68 @@ window.FResult = (function() {
 		if (V.seeAge === 1)
 			calcAge(slave);
 		if (slave.fetish === "mindbroken")
-			V.FResult = Math.trunc(V.FResult*0.4);
+			result = Math.trunc(result*0.4);
 		else
-			V.FResult = Math.trunc(V.FResult*0.7);
+			result = Math.trunc(result*0.7);
 
 		if (slave.pregWeek < 0)
-			V.FResult -= Math.trunc(V.FResult*slave.pregWeek/10); // reduced the most just after birth
+			result -= Math.trunc(result*slave.pregWeek/10); // reduced the most just after birth
 
 		calcAmputation(slave);
 
 		if (V.arcologies[0].FSHedonisticDecadence > 20)
 			calcHedonismWeight(slave);
-		if (V.FResult < 2) {
+		if (result < 2) {
 			if (supremeRaceP(slave) && V.arcologies[0].FSSupremacist > 20)
-				V.FResult = 0;
+				result = 0;
 			else
-				V.FResult = 2;
+				result = 2;
 		}
+		return result;
 	}
 
 	function calcUseWeights(slave) {
-		V.FResult = (3 - slave.anus)+(slave.muscles/30);
+		result = (3 - slave.anus)+(slave.muscles/30);
 		if (slave.muscles < -95)
-			V.FResult -= 5;
+			result -= 5;
 		else if (slave.muscles < -30)
-			V.FResult -= 2;
+			result -= 2;
 
 		const uses = V.oralUseWeight + V.vaginalUseWeight + V.analUseWeight;
 		if (uses <= 0) return;
 
-		V.FResult += (6+slave.tonguePiercing) * (V.oralUseWeight/uses) * (slave.oralSkill/30);
+		result += (6+slave.tonguePiercing) * (V.oralUseWeight/uses) * (slave.oralSkill/30);
 		if (slave.sexualFlaw === "cum addict")
-			V.FResult += (V.oralUseWeight/uses) * (slave.oralSkill/30);
+			result += (V.oralUseWeight/uses) * (slave.oralSkill/30);
 		if (canDoVaginal(slave)) {
-			V.FResult += 6 * (V.vaginalUseWeight/uses) * (slave.vaginalSkill/30);
-			V.FResult += (3 - slave.vagina);
-			V.FResult += slave.vaginaLube;
+			result += 6 * (V.vaginalUseWeight/uses) * (slave.vaginalSkill/30);
+			result += (3 - slave.vagina);
+			result += slave.vaginaLube;
 		}
 		if (canDoAnal(slave)) {
-			V.FResult += 6 * (V.analUseWeight/uses) * (slave.analSkill/30);
+			result += 6 * (V.analUseWeight/uses) * (slave.analSkill/30);
 			if (slave.sexualFlaw === "anal addict")
-				V.FResult += (V.analUseWeight/uses) * (slave.analSkill/30);
+				result += (V.analUseWeight/uses) * (slave.analSkill/30);
 			if (slave.inflationType === "aphrodisiac")
-				V.FResult += (V.analUseWeight/uses) * (slave.inflation * 3);
+				result += (V.analUseWeight/uses) * (slave.inflation * 3);
 		}
 	}
 
 	function calcFuckableTits(slave) {
-		V.FResult += 2;
+		result += 2;
 		if (slave.fetish === "boobs")
-			V.FResult += Math.trunc(slave.fetishStrength/20);
+			result += Math.trunc(slave.fetishStrength/20);
 	}
 
 	function calcWorksWithRelatives(slave) {
 		V.slaves.forEach(islave => {
 			if (isParentP(slave, islave) && sameAssignmentP(slave, islave)) {
-				V.FResult += 1;
-				if (incest_bonus) V.FResult += 1;
+				result += 1;
+				if (incest_bonus) result += 1;
 			}
 			if (areSisters(slave, islave) > 0 && sameAssignmentP(slave, islave)) {
-				V.FResult += 1;
-				if (incest_bonus) V.FResult += 1;
+				result += 1;
+				if (incest_bonus) result += 1;
 			}
 		});
 	}
@@ -12658,8 +12794,8 @@ window.FResult = (function() {
 	function calcWorksWithRelativesVanilla(slave) {
 		const fre = getSlave(slave.relationTarget)
 		if (fre !== undefined && sameAssignmentP(slave, fre)) {
-			V.FResult += 2;
-			if (incest_bonus) V.FResult += 2;
+			result += 2;
+			if (incest_bonus) result += 2;
 		}
 	}
 
@@ -12667,94 +12803,92 @@ window.FResult = (function() {
 		const fre = V.slaves.findIndex(s => {
 			return haveRelationshipP(slave, s) && sameAssignmentP(slave, s);
 		});
-		if (fre !== -1) V.FResult += 1;
+		if (fre !== -1) result += 1;
 	}
 
 	function calcWorksWithRival(slave) {
-		const en = V.slaves.findIndex(s => {
-			return isRivalP(slave, s) && sameAssignmentP(slave, s);
-		});
-		if (en !== -1) V.FResult -= 1;
+		const en = getSlave(slave.rivalryTarget);
+		if (en !== undefined && sameAssignmentP(slave, en)) result -= 1;
 	}
 
 	function calcHInjectionsDiet(slave) {
 		if (slave.drugs === "male hormone injections" || slave.drugs === "female hormone injections")
-			V.FResult -= 10;
+			result -= 10;
 		if (slave.diet === "XXY")
-			V.FResult += 2;
+			result += 2;
 		else if (slave.diet === "XY" || slave.diet === "XX")
-			V.FResult += 1;
+			result += 1;
 		else if (slave.diet === "cum production")
-			V.FResult += 1;
+			result += 1;
 		else if (slave.diet === "fertility")
-			V.FResult += 1;
+			result += 1;
 	}
 	function calcPreg(slave) {
 		if (V.arcologies[0].FSRepopulationFocus > 20) {
-			if (slave.preg > 10) V.FResult += 2;
-			else V.FResult -= 2;
+			if (slave.preg > 10) result += 2;
+			else result -= 2;
 		} else if (V.arcologies[0].FSRestart > 20) {
 			if (slave.bellyPreg >= 500 && slave.breedingMark === 1 && V.propOutcome === 1)
-				V.FResult += 1;
+				result += 1;
 			else if (slave.preg > 10)
-				V.FResult -= 10;
+				result -= 10;
 			else
-				V.FResult += 0;
+				result += 0;
 		}
 	}
 
 	function calcRace(slave) {
 		if (V.arcologies[0].FSSupremacist !== "unset" && supremeRaceP(slave))
-			V.FResult -= (V.arcologies[0].FSSupremacist/5) + (V.arcologies[0].FSSupremacistLawME*10);
+			result -= (V.arcologies[0].FSSupremacist/5) + (V.arcologies[0].FSSupremacistLawME*10);
 		if (V.arcologies[0].FSSubjugationist !== "unset" && inferiorRaceP(slave))
-			V.FResult += (V.arcologies[0].FSSubjugationist/10) + (V.arcologies[0].FSSubjugationistLawME);
+			result += (V.arcologies[0].FSSubjugationist/10) + (V.arcologies[0].FSSubjugationistLawME);
 	}
 
 	function calcSexAttributes(slave) {
-		if (slave.clitPiercing > 2) V.FResult += 1;
+		if (slave.clitPiercing > 2) result += 1;
 		if (slave.fetishKnown === 1 && slave.fetishStrength > 60 && slave.fetish != "none")
-			V.FResult += slave.fetishStrength/5;
+			result += slave.fetishStrength/5;
 
 		if (slave.attrKnown === 1) {
-			V.FResult += Math.trunc(slave.attrXX/20);
-			V.FResult += Math.trunc(slave.attrXY/20);
-			if (slave.energy > 95) V.FResult += 3;
-			else if (slave.energy > 80) V.FResult += 2;
-			else if (slave.energy > 60) V.FResult += 1;
-			else if (slave.energy <= 20) V.FResult -= 2;
-			else if (slave.energy <= 40) V.FResult -= 1;
+			result += Math.trunc(slave.attrXX/20);
+			result += Math.trunc(slave.attrXY/20);
+			if (slave.energy > 95) result += 3;
+			else if (slave.energy > 80) result += 2;
+			else if (slave.energy > 60) result += 1;
+			else if (slave.energy <= 20) result -= 2;
+			else if (slave.energy <= 40) result -= 1;
 		}
-		if (slave.sexualFlaw !== "none") V.FResult -= 2;
-		if (slave.sexualQuirk !== "none") V.FResult += 2;
-		if (slave.behavioralFlaw !== "none") V.FResult -= 2;
-		if (slave.behavioralQuirk !== "none") V.FResult += 2;
+		if (slave.sexualFlaw !== "none") result -= 2;
+		if (slave.sexualQuirk !== "none") result += 2;
+		if (slave.behavioralFlaw !== "none") result -= 2;
+		if (slave.behavioralQuirk !== "none") result += 2;
 	}
 
 	function calcCareer(slave) {
 		if (setup.whoreCareers.includes(slave.career))
-			V.FResult += 1;
+			result += 1;
 		else if (slave.oralCount + slave.analCount + slave.vaginalCount + slave.mammaryCount + slave.penetrativeCount > 1000)
-			V.FResult += 1;
+			result += 1;
 	}
 
 	function calcSight(slave) {
-		if (!canSee(slave)) V.FResult -= 3;
+		if (!canSee(slave)) result -= 3;
 		else if (slave.eyes <= -1) {
 			if (slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts")
-				V.FResult -= 1;
+				result -= 1;
 		} else if (slave.eyewear === "blurring glasses")
-			V.FResult -= 1;
+			result -= 1;
 		else if (slave.eyewear === "blurring contacts")
-			V.FResult -= 1;
+			result -= 1;
 	}
 
 	function calcHearing(slave) {
-		if (!canHear(slave)) V.FResult -= 2;
+		if (!canHear(slave)) result -= 2;
 		else if (slave.hears <= -1) {
 			if (slave.earwear !== "hearing aids")
-				V.FResult -= 1;
+				result -= 1;
 		} else if (slave.earwear === "muffling ear plugs")
-			V.FResult -= 1;
+			result -= 1;
 	}
 
 	function calcEgyptianBonus(slave) {
@@ -12766,15 +12900,15 @@ window.FResult = (function() {
 	function calcYouthBonus(slave) {
 		if (slave.visualAge < 30) {
 			if (slave.actualAge > 30)
-				V.FResult += 5; // experienced for her apparent age
+				result += 5; // experienced for her apparent age
 			if (slave.physicalAge > 30)
-				V.FResult -= slave.physicalAge/2; // too old :(
+				result -= slave.physicalAge/2; // too old :(
 		}
 	}
 
 	function calcMatureBonus(slave) {
 		if (slave.visualAge >= 30 && slave.actualAge >= 30 && slave.physicalAge < slave.visualAge)
-			V.FResult += Math.min((slave.physicalAge - slave.visualAge) * 2, 20); // looks and acts mature, but has a body that just won't quit
+			result += Math.min((slave.physicalAge - slave.visualAge) * 2, 20); // looks and acts mature, but has a body that just won't quit
 	}
 
 	function calcNotFuckdoll(slave) {
@@ -12801,43 +12935,41 @@ window.FResult = (function() {
 
 	function calcAge(slave) {
 		if ((V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset") && slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave)) {
-			V.FResult += 1;
-			if (slave.birthWeek === 0) V.FResult += V.FResult;
-			else if (slave.birthWeek < 4) V.FResult += 0.2*V.FResult;
+			result += 1;
+			if (slave.birthWeek === 0) result += result;
+			else if (slave.birthWeek < 4) result += 0.2*result;
 		} else if (slave.physicalAge === V.minimumSlaveAge) {
-			V.FResult += 1;
-			if (slave.birthWeek === 0 ) V.FResult += 0.5*V.FResult;
-			else if (slave.birthWeek < 4) V.FResult += 0.1*V.FResult;
+			result += 1;
+			if (slave.birthWeek === 0 ) result += 0.5*result;
+			else if (slave.birthWeek < 4) result += 0.1*result;
 		} else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset")) {
-			V.FResult += 1;
+			result += 1;
 			if (slave.birthWeek === 0)
-				V.FResult += 0.5*V.FResult;
+				result += 0.5*result;
 			else if (slave.birthWeek < 4)
-				V.FResult += 0.1*V.FResult;
+				result += 0.1*result;
 		}
 	}
 
 	function calcAmputation(slave) {
 		switch(slave.amp) {
 		case 0:
-			break;
-		case 1:
-			V.FResult -= 2;
-			break;
 		case -2:
-			break;
 		case -5:
 			break;
+		case 1:
+			result -= 2;
+			break;
 		default:
-			V.FResult -= 1;
+			result -= 1;
 		}
 	}
 
 	function calcHedonismWeight(slave) {
 		if (slave.weight < 10)
-			V.FResult -= 2;
+			result -= 2;
 		else if (slave.weight > 190)
-			V.FResult -= 5; // too fat
+			result -= 5; // too fat
 	}
 	return FResult;
 })();
@@ -38196,22 +38328,7 @@ window.Beauty = (function() {
 	};
 
 	function calcSlimBeauty(slave) {
-		let slimPass;
-
-		if (slave.boobs < 300 && slave.butt <= 1 && slave.waist <= 10) {
-			if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /*muscle check*/
-				slimPass = 0;
-			} else if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) { /*weight check*/
-				if (slave.weight > 30) {
-					slimPass = 0;
-				}
-			} else if (slave.weight > 10) {
-				slimPass = 0;
-			} else {
-				slimPass = 1;
-			}
-		}
-		if (slimPass === 1) {
+		if (slimPass(slave) === 1) {
 			beauty += 40 + (arcology.FSSlimnessEnthusiast/20); /*45*/
 		} else {
 			beauty -= arcology.FSSlimnessEnthusiast/20;
diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw
index 264adfd1d3210115003336f43d459f97f9026608..a85e7803da8002f5425c644c00fc01604bd35d58 100644
--- a/src/js/assayJS.tw
+++ b/src/js/assayJS.tw
@@ -174,23 +174,21 @@ window.TatScore = function(slave) {
 };
 
 window.slimPass = function(slave) {
-	var slimPass = 0;
-	var ArcologyZero = State.variables.arcologies[0];
+	let slimPass = 0;
+	let ArcologyZero = State.variables.arcologies[0];
 
 	if (ArcologyZero.FSSlimnessEnthusiastLaw === 1) {
 		if ((slave.boobs < 300) && (slave.butt <= 1) && (slave.waist <= 10)) {
-			slimPass = 1;
 			if ((ArcologyZero.FSPhysicalIdealist === "unset") && (ArcologyZero.FSHedonisticDecadenceStrongFat === 0) && (slave.muscles > 30)) { /*muscle check*/
 				slimPass = 0;
-			}
-			if (slimPass === 1) {
-				if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) { /*weight check*/
-					if (slave.weight > 30) {
-						slimPass = 0;
-					}
-				} else if (slave.weight > 10) {
+			} else if ((ArcologyZero.FSHedonisticDecadence !== "unset") || (ArcologyZero.FSPhysicalIdealistStrongFat === 1)) { /*weight check*/
+				if (slave.weight > 30) {
 					slimPass = 0;
 				}
+			} else if (slave.weight > 10) {
+				slimPass = 0;
+			} else {
+				slimPass = 1;
 			}
 		}
 	}
@@ -2078,3 +2076,140 @@ window.faceIncrease = function faceIncrease(slave, amount) {
 	if (slave.face > 95) slave.face = 100;
 	return r;
 };
+
+window.Deadliness = function Deadliness(slave) {
+	const V = State.variables;
+	let deadliness = 2;
+
+	if (slave.combatSkill > 0) {
+		deadliness += 2;
+	}
+
+	if (setup.bodyguardCareers.includes(slave.career)) {
+		deadliness += 1;
+	} else if (slave.skillBG >= V.masteredXP) {
+		deadliness += 1;
+	}
+
+	if (slave.muscles > 30 && slave.muscles <= 95) {
+		deadliness += 1;
+	} else if (slave.muscles > 95 && slave.height >= 185) {
+		deadliness += 2;
+	} else if (slave.muscles > 95) {
+		deadliness -= 1;
+	} else if (slave.muscles < -95) {
+		deadliness -= 20;
+	} else if (slave.muscles < -30) {
+		deadliness -= 7;
+	} else if (slave.muscles < -5) {
+		deadliness -= 3;
+	}
+
+	if (slave.height >= 170) {
+		deadliness += 1;
+	}
+
+	if (slave.health > 50) {
+		deadliness += 1;
+	}
+
+	if (slave.boobs > 4000) {
+		deadliness -= 2;
+	} else if (slave.boobs > 2000) {
+		deadliness -= 1;
+	}
+
+	if (slave.butt > 6) {
+		deadliness -= 1;
+	}
+
+	if (slave.hips > 2) {
+		deadliness -= 1;
+	}
+
+	if (slave.weight > 190) {
+		deadliness -= 20;
+	} else if (slave.weight > 160) {
+		deadliness -= 10;
+	} else if (slave.weight > 130) {
+		deadliness -= 3;
+	} else if (slave.weight > 30 || slave.weight < -10) {
+		deadliness -= 1;
+	}
+
+	if (slave.health < -50) {
+		deadliness -= 1;
+	}
+
+	if (slave.bellyFluid >= 10000) {
+		deadliness -= 3;
+	} else if (slave.bellyFluid >= 5000) {
+		deadliness -= 2;
+	} else if (slave.bellyFluid >= 2000) {
+		deadliness -= 1;
+	}
+
+	if (slave.pregKnown === 1 || slave.bellyPreg >= 1500 || slave.bellyImplant >= 1500) {
+		if (slave.belly >= 750000) {
+			deadliness -= 50;
+		} else if (slave.belly >= 600000) {
+			deadliness -= 25;
+		} else if (slave.belly >= 450000) {
+			deadliness -= 15;
+		} else if (slave.belly >= 300000) {
+			deadliness -= 10;
+		} else if (slave.belly >= 150000) {
+			deadliness -= 8;
+		} else if (slave.belly >= 100000) {
+			deadliness -= 7;
+		} else if (slave.belly >= 10000) {
+			deadliness -= 3;
+		} else if (slave.belly >= 5000) {
+			deadliness -= 2;
+		} else {
+			deadliness -= 1;
+		}
+	}
+	
+	if (slave.labor === 1) {
+		deadliness -= 15;
+	} else if (slave.preg >= 40 && slave.pregControl !== "labor supressors") {
+		deadliness -= 5;
+	}
+
+	if (slave.balls >= 15) {
+		deadliness -= 1;
+	}
+
+	if (slave.dick >= 10) {
+		deadliness -= 1;
+	}
+
+	if (slave.amp === 0) {
+		if (!canWalk(slave)) {
+			deadliness -= 20;
+		}
+	} else if (slave.amp === 1) {
+		deadliness -= 20;
+	} else if (slave.amp === -5) {
+		deadliness += 10;
+	} else if (slave.amp === -4) {
+		deadliness += 5;
+	} else {
+		deadliness -= 1;
+	}
+
+	if (!canSee(slave)) {
+		deadliness -= 8;
+	} else if ((slave.eyes === -1 && !["corrective glasses", "corrective contacts"].includes(slave.eyewear)) || (slave.eyes === 1 && ["blurring glasses", "blurring contacts"].includes(slave.eyewear))) {
+		deadliness -= 1;
+	}
+
+	if (!canHear(slave)) {
+		deadliness -= 4;
+	} else if ((slave.hears == -1 && slave.earwear !== "hearing aids") || (slave.hears == 0 && slave.earwear === "muffling ear plugs")) {
+		deadliness -= 1;
+	}
+
+	return Math.max(deadliness, 1);
+};
diff --git a/src/js/beautyJS.tw b/src/js/beautyJS.tw
index 73aee348cf8004bbf5bad8406048183c8bf5dae2..a08e7e1515e74d2839f612060aea1666f4c158a1 100644
--- a/src/js/beautyJS.tw
+++ b/src/js/beautyJS.tw
@@ -61,7 +61,7 @@ window.Beauty = (function() {
 		calcMultipliersBeauty(slave);
 		beauty = Math.max(1, Math.trunc(0.5*beauty));
 
-		V.beauty = beauty;
+		return beauty;
 	};
 
 	function calcInitBeauty(slave) {
@@ -1079,22 +1079,7 @@ window.Beauty = (function() {
 	};
 
 	function calcSlimBeauty(slave) {
-		let slimPass;
-
-		if (slave.boobs < 300 && slave.butt <= 1 && slave.waist <= 10) {
-			if (arcology.FSPhysicalIdealist === "unset" && arcology.FSHedonisticDecadenceStrongFat === 0 && slave.muscles > 30) { /*muscle check*/
-				slimPass = 0;
-			} else if (arcology.FSHedonisticDecadence !== "unset" || arcology.FSPhysicalIdealistStrongFat === 1) { /*weight check*/
-				if (slave.weight > 30) {
-					slimPass = 0;
-				}
-			} else if (slave.weight > 10) {
-				slimPass = 0;
-			} else {
-				slimPass = 1;
-			}
-		}
-		if (slimPass === 1) {
+		if (slimPass(slave) === 1) {
 			beauty += 40 + (arcology.FSSlimnessEnthusiast/20); /*45*/
 		} else {
 			beauty -= arcology.FSSlimnessEnthusiast/20;
diff --git a/src/js/fresult.tw b/src/js/fresult.tw
index 2721c0956a05a85a71bcf0b6c690b780ab488aaf..bcb29ff23f0c8c506bc79f99369fdf79f38db719 100644
--- a/src/js/fresult.tw
+++ b/src/js/fresult.tw
@@ -9,7 +9,7 @@ window.FResult = (function() {
 	"use strict";
 	// we can't initialise our global variables on load, because SugarCube.State isn't initialised
 	// instead, declare them and initialise on run time
-	let V, incest_bonus;
+	let V, result, incest_bonus;
 	function FResult(slave) {
 		V = State.variables;
 		incest_bonus = V.arcologies[0].FSEgyptianRevivalist > 20 || V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1;
@@ -18,15 +18,15 @@ window.FResult = (function() {
 		if (!slave.fuckdoll)
 			calcNotFuckdoll(slave);
 		else
-			V.FResult += slave.fuckdoll/10;
+			result += slave.fuckdoll/10;
 
-		V.FResult += Math.max(0, slave.aphrodisiacs) * 2;
+		result += Math.max(0, slave.aphrodisiacs) * 2;
 
 		if (slave.inflationType === "aphrodisiac")
-			V.FResult += slave.inflation*4;
+			result += slave.inflation*4;
 
 		if (slave.lactation > 0)
-			V.FResult += 1;
+			result += 1;
 
 		if (slave.nipples === "fuckable")
 			calcFuckableTits(slave);
@@ -34,67 +34,68 @@ window.FResult = (function() {
 		if (V.seeAge === 1)
 			calcAge(slave);
 		if (slave.fetish === "mindbroken")
-			V.FResult = Math.trunc(V.FResult*0.4);
+			result = Math.trunc(result*0.4);
 		else
-			V.FResult = Math.trunc(V.FResult*0.7);
+			result = Math.trunc(result*0.7);
 
 		if (slave.pregWeek < 0)
-			V.FResult -= Math.trunc(V.FResult*slave.pregWeek/10); // reduced the most just after birth
+			result -= Math.trunc(result*slave.pregWeek/10); // reduced the most just after birth
 
 		calcAmputation(slave);
 
 		if (V.arcologies[0].FSHedonisticDecadence > 20)
 			calcHedonismWeight(slave);
-		if (V.FResult < 2) {
+		if (result < 2) {
 			if (supremeRaceP(slave) && V.arcologies[0].FSSupremacist > 20)
-				V.FResult = 0;
+				result = 0;
 			else
-				V.FResult = 2;
+				result = 2;
 		}
+		return result;
 	}
 
 	function calcUseWeights(slave) {
-		V.FResult = (3 - slave.anus)+(slave.muscles/30);
+		result = (3 - slave.anus)+(slave.muscles/30);
 		if (slave.muscles < -95)
-			V.FResult -= 5;
+			result -= 5;
 		else if (slave.muscles < -30)
-			V.FResult -= 2;
+			result -= 2;
 
 		const uses = V.oralUseWeight + V.vaginalUseWeight + V.analUseWeight;
 		if (uses <= 0) return;
 
-		V.FResult += (6+slave.tonguePiercing) * (V.oralUseWeight/uses) * (slave.oralSkill/30);
+		result += (6+slave.tonguePiercing) * (V.oralUseWeight/uses) * (slave.oralSkill/30);
 		if (slave.sexualFlaw === "cum addict")
-			V.FResult += (V.oralUseWeight/uses) * (slave.oralSkill/30);
+			result += (V.oralUseWeight/uses) * (slave.oralSkill/30);
 		if (canDoVaginal(slave)) {
-			V.FResult += 6 * (V.vaginalUseWeight/uses) * (slave.vaginalSkill/30);
-			V.FResult += (3 - slave.vagina);
-			V.FResult += slave.vaginaLube;
+			result += 6 * (V.vaginalUseWeight/uses) * (slave.vaginalSkill/30);
+			result += (3 - slave.vagina);
+			result += slave.vaginaLube;
 		}
 		if (canDoAnal(slave)) {
-			V.FResult += 6 * (V.analUseWeight/uses) * (slave.analSkill/30);
+			result += 6 * (V.analUseWeight/uses) * (slave.analSkill/30);
 			if (slave.sexualFlaw === "anal addict")
-				V.FResult += (V.analUseWeight/uses) * (slave.analSkill/30);
+				result += (V.analUseWeight/uses) * (slave.analSkill/30);
 			if (slave.inflationType === "aphrodisiac")
-				V.FResult += (V.analUseWeight/uses) * (slave.inflation * 3);
+				result += (V.analUseWeight/uses) * (slave.inflation * 3);
 		}
 	}
 
 	function calcFuckableTits(slave) {
-		V.FResult += 2;
+		result += 2;
 		if (slave.fetish === "boobs")
-			V.FResult += Math.trunc(slave.fetishStrength/20);
+			result += Math.trunc(slave.fetishStrength/20);
 	}
 
 	function calcWorksWithRelatives(slave) {
 		V.slaves.forEach(islave => {
 			if (isParentP(slave, islave) && sameAssignmentP(slave, islave)) {
-				V.FResult += 1;
-				if (incest_bonus) V.FResult += 1;
+				result += 1;
+				if (incest_bonus) result += 1;
 			}
 			if (areSisters(slave, islave) > 0 && sameAssignmentP(slave, islave)) {
-				V.FResult += 1;
-				if (incest_bonus) V.FResult += 1;
+				result += 1;
+				if (incest_bonus) result += 1;
 			}
 		});
 	}
@@ -102,8 +103,8 @@ window.FResult = (function() {
 	function calcWorksWithRelativesVanilla(slave) {
 		const fre = getSlave(slave.relationTarget)
 		if (fre !== undefined && sameAssignmentP(slave, fre)) {
-			V.FResult += 2;
-			if (incest_bonus) V.FResult += 2;
+			result += 2;
+			if (incest_bonus) result += 2;
 		}
 	}
 
@@ -111,94 +112,92 @@ window.FResult = (function() {
 		const fre = V.slaves.findIndex(s => {
 			return haveRelationshipP(slave, s) && sameAssignmentP(slave, s);
 		});
-		if (fre !== -1) V.FResult += 1;
+		if (fre !== -1) result += 1;
 	}
 
 	function calcWorksWithRival(slave) {
-		const en = V.slaves.findIndex(s => {
-			return isRivalP(slave, s) && sameAssignmentP(slave, s);
-		});
-		if (en !== -1) V.FResult -= 1;
+		const en = getSlave(slave.rivalryTarget);
+		if (en !== undefined && sameAssignmentP(slave, en)) result -= 1;
 	}
 
 	function calcHInjectionsDiet(slave) {
 		if (slave.drugs === "male hormone injections" || slave.drugs === "female hormone injections")
-			V.FResult -= 10;
+			result -= 10;
 		if (slave.diet === "XXY")
-			V.FResult += 2;
+			result += 2;
 		else if (slave.diet === "XY" || slave.diet === "XX")
-			V.FResult += 1;
+			result += 1;
 		else if (slave.diet === "cum production")
-			V.FResult += 1;
+			result += 1;
 		else if (slave.diet === "fertility")
-			V.FResult += 1;
+			result += 1;
 	}
 	function calcPreg(slave) {
 		if (V.arcologies[0].FSRepopulationFocus > 20) {
-			if (slave.preg > 10) V.FResult += 2;
-			else V.FResult -= 2;
+			if (slave.preg > 10) result += 2;
+			else result -= 2;
 		} else if (V.arcologies[0].FSRestart > 20) {
 			if (slave.bellyPreg >= 500 && slave.breedingMark === 1 && V.propOutcome === 1)
-				V.FResult += 1;
+				result += 1;
 			else if (slave.preg > 10)
-				V.FResult -= 10;
+				result -= 10;
 			else
-				V.FResult += 0;
+				result += 0;
 		}
 	}
 
 	function calcRace(slave) {
 		if (V.arcologies[0].FSSupremacist !== "unset" && supremeRaceP(slave))
-			V.FResult -= (V.arcologies[0].FSSupremacist/5) + (V.arcologies[0].FSSupremacistLawME*10);
+			result -= (V.arcologies[0].FSSupremacist/5) + (V.arcologies[0].FSSupremacistLawME*10);
 		if (V.arcologies[0].FSSubjugationist !== "unset" && inferiorRaceP(slave))
-			V.FResult += (V.arcologies[0].FSSubjugationist/10) + (V.arcologies[0].FSSubjugationistLawME);
+			result += (V.arcologies[0].FSSubjugationist/10) + (V.arcologies[0].FSSubjugationistLawME);
 	}
 
 	function calcSexAttributes(slave) {
-		if (slave.clitPiercing > 2) V.FResult += 1;
+		if (slave.clitPiercing > 2) result += 1;
 		if (slave.fetishKnown === 1 && slave.fetishStrength > 60 && slave.fetish != "none")
-			V.FResult += slave.fetishStrength/5;
+			result += slave.fetishStrength/5;
 
 		if (slave.attrKnown === 1) {
-			V.FResult += Math.trunc(slave.attrXX/20);
-			V.FResult += Math.trunc(slave.attrXY/20);
-			if (slave.energy > 95) V.FResult += 3;
-			else if (slave.energy > 80) V.FResult += 2;
-			else if (slave.energy > 60) V.FResult += 1;
-			else if (slave.energy <= 20) V.FResult -= 2;
-			else if (slave.energy <= 40) V.FResult -= 1;
+			result += Math.trunc(slave.attrXX/20);
+			result += Math.trunc(slave.attrXY/20);
+			if (slave.energy > 95) result += 3;
+			else if (slave.energy > 80) result += 2;
+			else if (slave.energy > 60) result += 1;
+			else if (slave.energy <= 20) result -= 2;
+			else if (slave.energy <= 40) result -= 1;
 		}
-		if (slave.sexualFlaw !== "none") V.FResult -= 2;
-		if (slave.sexualQuirk !== "none") V.FResult += 2;
-		if (slave.behavioralFlaw !== "none") V.FResult -= 2;
-		if (slave.behavioralQuirk !== "none") V.FResult += 2;
+		if (slave.sexualFlaw !== "none") result -= 2;
+		if (slave.sexualQuirk !== "none") result += 2;
+		if (slave.behavioralFlaw !== "none") result -= 2;
+		if (slave.behavioralQuirk !== "none") result += 2;
 	}
 
 	function calcCareer(slave) {
 		if (setup.whoreCareers.includes(slave.career))
-			V.FResult += 1;
+			result += 1;
 		else if (slave.oralCount + slave.analCount + slave.vaginalCount + slave.mammaryCount + slave.penetrativeCount > 1000)
-			V.FResult += 1;
+			result += 1;
 	}
 
 	function calcSight(slave) {
-		if (!canSee(slave)) V.FResult -= 3;
+		if (!canSee(slave)) result -= 3;
 		else if (slave.eyes <= -1) {
 			if (slave.eyewear !== "corrective glasses" && slave.eyewear !== "corrective contacts")
-				V.FResult -= 1;
+				result -= 1;
 		} else if (slave.eyewear === "blurring glasses")
-			V.FResult -= 1;
+			result -= 1;
 		else if (slave.eyewear === "blurring contacts")
-			V.FResult -= 1;
+			result -= 1;
 	}
 
 	function calcHearing(slave) {
-		if (!canHear(slave)) V.FResult -= 2;
+		if (!canHear(slave)) result -= 2;
 		else if (slave.hears <= -1) {
 			if (slave.earwear !== "hearing aids")
-				V.FResult -= 1;
+				result -= 1;
 		} else if (slave.earwear === "muffling ear plugs")
-			V.FResult -= 1;
+			result -= 1;
 	}
 
 	function calcEgyptianBonus(slave) {
@@ -210,15 +209,15 @@ window.FResult = (function() {
 	function calcYouthBonus(slave) {
 		if (slave.visualAge < 30) {
 			if (slave.actualAge > 30)
-				V.FResult += 5; // experienced for her apparent age
+				result += 5; // experienced for her apparent age
 			if (slave.physicalAge > 30)
-				V.FResult -= slave.physicalAge/2; // too old :(
+				result -= slave.physicalAge/2; // too old :(
 		}
 	}
 
 	function calcMatureBonus(slave) {
 		if (slave.visualAge >= 30 && slave.actualAge >= 30 && slave.physicalAge < slave.visualAge)
-			V.FResult += Math.min((slave.physicalAge - slave.visualAge) * 2, 20); // looks and acts mature, but has a body that just won't quit
+			result += Math.min((slave.physicalAge - slave.visualAge) * 2, 20); // looks and acts mature, but has a body that just won't quit
 	}
 
 	function calcNotFuckdoll(slave) {
@@ -245,43 +244,41 @@ window.FResult = (function() {
 
 	function calcAge(slave) {
 		if ((V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset") && slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave)) {
-			V.FResult += 1;
-			if (slave.birthWeek === 0) V.FResult += V.FResult;
-			else if (slave.birthWeek < 4) V.FResult += 0.2*V.FResult;
+			result += 1;
+			if (slave.birthWeek === 0) result += result;
+			else if (slave.birthWeek < 4) result += 0.2*result;
 		} else if (slave.physicalAge === V.minimumSlaveAge) {
-			V.FResult += 1;
-			if (slave.birthWeek === 0 ) V.FResult += 0.5*V.FResult;
-			else if (slave.birthWeek < 4) V.FResult += 0.1*V.FResult;
+			result += 1;
+			if (slave.birthWeek === 0 ) result += 0.5*result;
+			else if (slave.birthWeek < 4) result += 0.1*result;
 		} else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (V.arcologies[0].FSRepopulationFocus !== "unset" || V.arcologies[0].FSGenderFundamentalist !== "unset")) {
-			V.FResult += 1;
+			result += 1;
 			if (slave.birthWeek === 0)
-				V.FResult += 0.5*V.FResult;
+				result += 0.5*result;
 			else if (slave.birthWeek < 4)
-				V.FResult += 0.1*V.FResult;
+				result += 0.1*result;
 		}
 	}
 
 	function calcAmputation(slave) {
 		switch(slave.amp) {
 		case 0:
-			break;
-		case 1:
-			V.FResult -= 2;
-			break;
 		case -2:
-			break;
 		case -5:
 			break;
+		case 1:
+			result -= 2;
+			break;
 		default:
-			V.FResult -= 1;
+			result -= 1;
 		}
 	}
 
 	function calcHedonismWeight(slave) {
 		if (slave.weight < 10)
-			V.FResult -= 2;
+			result -= 2;
 		else if (slave.weight > 190)
-			V.FResult -= 5; // too fat
+			result -= 5; // too fat
 	}
 	return FResult;
 })();
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 78f4594c1a49b2add6ce6bab14c2ae9f7afe66eb..bf532877e5e8c2a4c0e955cf05d7968be2e3e7d4 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -2,7 +2,7 @@
 
 <<run SlavePronouns($activeSlave)>>
 <<run SlaveStatClamp($activeSlave)>>
-<<run Beauty($activeSlave)>>
+<<set $beauty = Beauty($activeSlave)>>
 <<setLocalPronouns $activeSlave>>
 
 /* 000-250-006 */
@@ -1651,7 +1651,7 @@ is
 <</if>>
 
 <<if ($showScores != 0)>>
-	<<set FResult($activeSlave)>>
+	<<set $FResult = FResult($activeSlave)>>
 	Currently, $he has an @@.pink;''attractiveness score'' of __''$beauty''__@@ and a @@.lightcoral;''sexual score'' of __''$FResult''__.@@
 <</if>>
 
diff --git a/src/uncategorized/pePitFight.tw b/src/uncategorized/pePitFight.tw
index f329299d421939f99fc02c9de53bb686bfa0e3ee..8c385563c976436707c3f6bd4888b69d76d85d7d 100644
--- a/src/uncategorized/pePitFight.tw
+++ b/src/uncategorized/pePitFight.tw
@@ -5,7 +5,7 @@
 <<set $activeSlave = $Bodyguard>>
 <<setLocalPronouns $activeSlave>>
 
-<<Deadliness $activeSlave>>
+<<set $deadliness = Deadliness($activeSlave)>>
 
 <<set $PPit = 0>>
 
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index cfbd7c3159ab35f027566923912bbd270b726955..da4912ff4f1d0b5b65015b8059273a921ae753de 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -636,6 +636,8 @@ You look up the _relationType. She costs <<print cashFormat($slaveCost)>>, a bar
 			<</if>>
 		<</for>>
 		<<set $eventSlave.mother = $activeSlave.ID>>
+		<<set $activeSlave.father = 0>>
+		<<set $activeSlave.mother = 0>>
 	<<case "father">>
 		<<for $j = 0; $j < $slaves.length; $j++>>
 			<<if sameMom($eventSlave, $slaves[$j]) && $slaves[$j].father == 0>>
@@ -643,6 +645,8 @@ You look up the _relationType. She costs <<print cashFormat($slaveCost)>>, a bar
 			<</if>>
 		<</for>>
 		<<set $eventSlave.father = $activeSlave.ID>>
+		<<set $activeSlave.father = 0>>
+		<<set $activeSlave.mother = 0>>
 	<<case "older sister">>
 		<<if $eventSlave.father == 0 && $eventSlave.mother == 0>>
 			<<set $eventSlave.mother = $missingParentID>>
diff --git a/src/uncategorized/saGetMilked.tw b/src/uncategorized/saGetMilked.tw
index 4ce6a160e00839fc4db5f758a9a586d392a0a09e..de004e58b98435a7e3d7a6887734967bcd83a280 100644
--- a/src/uncategorized/saGetMilked.tw
+++ b/src/uncategorized/saGetMilked.tw
@@ -471,7 +471,7 @@ gets milked this week.
 	<<set _vignette = GetVignette($slaves[$i])>>
 	__This week__ _vignette.text
 	<<if (_vignette.type == "cash")>>
-		<<set FResult($slaves[$i])>>
+		<<set $FResult = FResult($slaves[$i])>>
 		<<if (_vignette.effect > 0)>>
 			@@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@
 		<<elseif (_vignette.effect < 0)>>
@@ -537,7 +537,7 @@ gets milked this week.
 		<</if>>
 		<<set $slaves[$i].health += 2*_vignette.effect>>
 	<<else>>
-		<<set FResult($slaves[$i])>>
+		<<set $FResult = FResult($slaves[$i])>>
 		<<if (_vignette.effect > 0)>>
 			@@.green;gaining you a bit of reputation.@@
 		<<elseif (_vignette.effect < 0)>>
diff --git a/src/uncategorized/saGuardsYou.tw b/src/uncategorized/saGuardsYou.tw
index b96c36df19b2213b76387338afe02a9e95262ad6..e5058e703c2f96dfb9b5974b1ccfdec545f5cdcd 100644
--- a/src/uncategorized/saGuardsYou.tw
+++ b/src/uncategorized/saGuardsYou.tw
@@ -6,7 +6,7 @@ carries arms in your defense.
 	<<set $slaves[$i].livingRules = "luxurious">>
 <</if>>
 
-<<Deadliness $slaves[$i]>>
+<<set $deadliness = Deadliness($slaves[$i])>>
 
 <<if $slaves[$i].combatSkill > 0>>
 	$His combat skills greatly increase $his deadliness.
diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw
index 83050ae4ab0bcf40e3418a37f930b40836382edd..945ac15bb623888951c568e30d973ddd84f557b8 100644
--- a/src/uncategorized/saPleaseYou.tw
+++ b/src/uncategorized/saPleaseYou.tw
@@ -1179,8 +1179,8 @@ serves you this week.
 	<</if>>
 <</if>>
 
-<<run FResult($slaves[$i])>>
-<<run Beauty($slaves[$i])>>
+<<set $FResult = FResult($slaves[$i])>>
+<<set $beauty = Beauty($slaves[$i])>>
 
 <<set _multiplier = 0.1>>
 <<if $slaves[$i].relationship == -2>>
diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw
index 372a2e4fe3f36eb28fb1555d745d39e527d078cc..bdf3b8fd8a298a670582ed9720ba7628c2495790 100644
--- a/src/uncategorized/saServeThePublic.tw
+++ b/src/uncategorized/saServeThePublic.tw
@@ -8,7 +8,7 @@
 	<<set $publicServants += 1>>
 <</if>>
 
-<<set FResult($slaves[$i])>>
+<<set $FResult = FResult($slaves[$i])>>
 <<if ($slaves[$i].releaseRules == "restrictive") && ($slaves[$i].standardReward !== "orgasm")>>
 	<<set $FResult += 2>>
 <</if>>
@@ -23,7 +23,7 @@
 <<else>>
 	<<set $FResult = Math.trunc($FResult*0.85)>>
 <</if>>
-<<run Beauty($slaves[$i])>>
+<<set $beauty = Beauty($slaves[$i])>>
 <<if $ACitizens > $ASlaves*2>>
 	<<set $beauty = Math.trunc($beauty*1.1)>>
 <<elseif $ACitizens > $ASlaves>>
diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw
index 718c1abbc19786fa615ce5055b74f52e65bd2623..c82e30a182d22e7cf729c206273a9b90458c872d 100644
--- a/src/uncategorized/saWhore.tw
+++ b/src/uncategorized/saWhore.tw
@@ -3,7 +3,7 @@
 <!-- Statistics gathering -->
 <<set _incomeStats = getSlaveStatisticData($slaves[$i], $slaves[$i].assignment === Job.BROTHEL ? $facility.brothel : undefined)>>
 
-<<set FResult($slaves[$i])>>
+<<set $FResult = FResult($slaves[$i])>>
 <<if ($slaves[$i].releaseRules == "restrictive") && ($slaves[$i].standardReward !== "orgasm")>>
 	<<set $FResult += 2>>
 <</if>>
@@ -18,7 +18,7 @@
 <<else>>
 	<<set $FResult = Math.trunc($FResult*0.85)>>
 <</if>>
-<<run Beauty($slaves[$i])>>
+<<set $beauty = Beauty($slaves[$i])>>
 <<if $ACitizens > $ASlaves*2>>
 	<<set $beauty = Math.trunc($beauty*1.1)>>
 <<elseif $ACitizens > $ASlaves>>
diff --git a/src/uncategorized/seLethalPit.tw b/src/uncategorized/seLethalPit.tw
index e6a8efe6fdde86682d24afe65dd7c19c2c7fe995..b97509045a02a8142dda6901642e186f3de91bc8 100644
--- a/src/uncategorized/seLethalPit.tw
+++ b/src/uncategorized/seLethalPit.tw
@@ -47,8 +47,7 @@ You review the rules - the <<if $pitAnimal == 0>>combatants<<else>>slave<</if>>
 
 <br><br>
 
-<<Deadliness _fighterOne>>
-<<set _fighterOneDeadliness = $deadliness>>
+<<set _fighterOneDeadliness = Deadliness(_fighterOne)>>
 
 <<if _fighterOne.fetish == "mindbroken">>
 	_fighterOne.slaveName is too broken to care about whether she lives or dies;
@@ -200,8 +199,7 @@ You review the rules - the <<if $pitAnimal == 0>>combatants<<else>>slave<</if>>
 
 <br><br>
 <<if $pitAnimal == 0>>
-	<<Deadliness _fighterTwo>>
-	<<set _fighterTwoDeadliness = $deadliness>>
+	<<set _fighterTwoDeadliness = Deadliness(_fighterTwo)>>
 
 	<<if _fighterTwo.fetish == "mindbroken">>
 		_fighterTwo.slaveName is too broken to care about whether she lives or dies;
diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw
index a2392a2ed6f68eb812b7d2fae776cdc947aef55c..a1f26a53a651c424c8eace67661f06726e979d8d 100644
--- a/src/uncategorized/seNonlethalPit.tw
+++ b/src/uncategorized/seNonlethalPit.tw
@@ -60,8 +60,7 @@
 
 	<br><br>
 
-	<<Deadliness _fighterOne>>
-	<<set _fighterOneDeadliness = $deadliness>>
+	<<set _fighterOneDeadliness = Deadliness(_fighterOne)>>
 
 	<<if _fighterOneDeadliness > 5>>
 		_fighterOne.slaveName seems very confident, even eager to win a break.
@@ -197,8 +196,7 @@
 
 	<br><br>
 
-	<<Deadliness _fighterTwo>>
-	<<set _fighterTwoDeadliness = $deadliness>>
+	<<set _fighterTwoDeadliness = Deadliness(_fighterTwo)>>
 
 	<<if _fighterTwoDeadliness > 5>>
 		_fighterTwo.slaveName seems very confident, even eager to win a break.
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 9644e2f2b50cc0ebc2c85cbfe541a00569cc4135..7470805ce30e32ca481a334dd0b341a456c47eef 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -224,7 +224,7 @@
 		<</if>>
 	<</if>>
 	<<if $cheatMode == 1>>
-		| <<link "Check $his deadliness @@.red;FOR TESTING@@">><<replace "#miniscene">><<include "Deadliness">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+		| <<link "Check $his deadliness @@.red;FOR TESTING@@">><<replace "#miniscene">><<set $deadliness = Deadliness($activeSlave)>>$deadliness<br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
 	<</if>>
 	| <<link "Abuse $him">><<replace "#miniscene">><<include "FAbuse">><</replace>><</link>>
 	<<if $familyTesting == 1>>
diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw
index 506e7e6e5f4e79109b25d213e85e607916fe6999..39052a47692e4708d8d2b335022e934a1d45d744 100644
--- a/src/utility/assayWidgets.tw
+++ b/src/utility/assayWidgets.tw
@@ -1,147 +1,9 @@
 :: assay widgets [widget nobr]
 
-<<widget "Deadliness">>
-
-<<set $deadliness = 2>>
-
-<<if $args[0].combatSkill > 0>>
-	<<set $deadliness += 2>>
-<</if>>
-
-<<if setup.bodyguardCareers.includes($Bodyguard.career)>>
-	<<set $deadliness += 1>>
-<<elseif $Bodyguard.skillBG >= $masteredXP>>
-	<<set $deadliness += 1>>
-<</if>>
-
-<<if ($args[0].muscles > 30) && ($args[0].muscles <= 95)>>
-	<<set $deadliness += 1>>
-<<elseif ($args[0].muscles > 95) && ($args[0].height >= 185)>>
-	<<set $deadliness += 2>>
-<<elseif ($args[0].muscles > 95)>>
-	<<set $deadliness -= 1>>
-<<elseif ($args[0].muscles < -95)>>
-	<<set $deadliness -= 20>>
-<<elseif ($args[0].muscles < -30)>>
-	<<set $deadliness -= 7>>
-<<elseif ($args[0].muscles < -5)>>
-	<<set $deadliness -= 3>>
-<</if>>
-
-<<if $args[0].height >= 170>>
-	<<set $deadliness += 1>>
-<</if>>
-
-<<if $args[0].health > 50>>
-	<<set $deadliness += 1>>
-<</if>>
-
-<<if $args[0].boobs > 4000>>
-	<<set $deadliness -= 2>>
-<<elseif $args[0].boobs > 2000>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $args[0].butt > 6>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $args[0].hips > 2>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $args[0].weight > 190>>
-	<<set $deadliness -= 20>>
-<<elseif $args[0].weight > 160>>
-	<<set $deadliness -= 10>>
-<<elseif $args[0].weight > 130>>
-	<<set $deadliness -= 3>>
-<<elseif $args[0].weight > 30 || $args[0].weight < -10>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $args[0].health < -50>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $args[0].bellyFluid >= 10000>>
-	<<set $deadliness -= 3>>
-<<elseif $args[0].bellyFluid >= 5000>>
-	<<set $deadliness -= 2>>
-<<elseif $args[0].bellyFluid >= 2000>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $args[0].pregKnown == 1 || $args[0].bellyPreg >= 1500 || $args[0].bellyImplant >= 1500>>
-	<<if $args[0].belly >= 750000>>
-		<<set $deadliness -= 50>>
-	<<elseif $args[0].belly >= 600000>>
-		<<set $deadliness -= 25>>
-	<<elseif $args[0].belly >= 450000>>
-		<<set $deadliness -= 15>>
-	<<elseif $args[0].belly >= 300000>>
-		<<set $deadliness -= 10>>
-	<<elseif $args[0].belly >= 150000>>
-		<<set $deadliness -= 8>>
-	<<elseif $args[0].belly >= 100000>>
-		<<set $deadliness -= 7>>
-	<<elseif $args[0].belly >= 10000>>
-		<<set $deadliness -= 3>>
-	<<elseif $args[0].belly >= 5000>>
-		<<set $deadliness -= 2>>
-	<<else>>
-		<<set $deadliness -= 1>>
-	<</if>>
-<</if>>
-<<if $args[0].labor == 1>>
-	<<set $deadliness -= 15>>
-<<elseif $args[0].preg >= 40 && $args[0].pregControl != "labor supressors">>
-	<<set $deadliness -= 5>>
-<</if>>
-
-<<if $args[0].balls >= 15>>
-	<<set $deadliness -= 1>>
-<</if>>
-<<if $args[0].dick >= 10>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $args[0].amp == 0>>
-	<<if !canWalk($args[0])>>
-		<<set $deadliness -= 20>>
-	<</if>>
-<<elseif $args[0].amp == 1>>
-	<<set $deadliness -= 20>>
-<<elseif $args[0].amp == -5>>
-	<<set $deadliness += 10>>
-<<elseif $args[0].amp == -4>>
-	<<set $deadliness += 5>>
-<<else>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if !canSee($args[0])>>
-	<<set $deadliness -= 8>>
-<<elseif ($args[0].eyes == -1 && !["corrective glasses", "corrective contacts"].includes($args[0].eyewear)) || ($args[0].eyes == 1 && ["blurring glasses", "blurring contacts"].includes($args[0].eyewear))>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if !canHear($args[0])>>
-	<<set $deadliness -= 4>>
-<<elseif ($args[0].hears == -1 && !["hearing aids"].includes($args[0].earwear)) || ($args[0].hears == 0 && ["muffling ear plugs"].includes($args[0].earwear))>>
-	<<set $deadliness -= 1>>
-<</if>>
-
-<<if $deadliness < 1>>
-	<<set $deadliness = 1>>
-<</if>>
-
-<</widget>>
-
 <<widget "slaveCost">>
 
-<<run Beauty($args[0])>>
-<<set FResult($args[0])>>
+<<set $beauty = Beauty($args[0])>>
+<<set $FResult = FResult($args[0])>>
 
 <<set $slaveCost = ($beauty*$FResult)>>