diff --git a/src/endWeek/minorInjuryResponse.js b/src/endWeek/minorInjuryResponse.js
index 100effe755afd04c40b13caf23ef55edb6c01370..49416c41d34eb5deeac9ad4e2bbc6b82899b3c98 100644
--- a/src/endWeek/minorInjuryResponse.js
+++ b/src/endWeek/minorInjuryResponse.js
@@ -1,6 +1,6 @@
 /**
  * @param {App.Entity.SlaveState} slave
- *
+ * @returns {string}
  */
 window.minorInjuryResponse = function minorInjuryResponse(slave) {
 	const arcology = State.variables.arcologies[0];
diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js
index f5d7758ebb6313db13b3ed383253592fc68b4de5..7c8177caa9197a0e1727ae633b0df099d77df770 100644
--- a/src/endWeek/saChoosesOwnClothes.js
+++ b/src/endWeek/saChoosesOwnClothes.js
@@ -3,6 +3,7 @@ window.saChoosesOwnClothes = (function() {
 	let V;
 	let player;
 	let r;
+	/* eslint-disable */
 	let pronouns;
 	let he;
 	let him;
@@ -12,11 +13,12 @@ window.saChoosesOwnClothes = (function() {
 	let boy;
 	let He;
 	let His;
+	/* eslint-enable */
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
 	function saChoosesOwnClothes(slave) {
 		V = State.variables;
 		player = V.PC;
@@ -94,10 +96,10 @@ window.saChoosesOwnClothes = (function() {
 		return r;
 	}
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}	// I think
+	 */
 	function todaysOutfit(slave) {
 		const clothing = [];
 		let chosenClothing;
@@ -954,7 +956,7 @@ window.saChoosesOwnClothes = (function() {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {string}
  */
 	function todaysShoes(slave) {
 		const shoes = [];
@@ -1000,13 +1002,15 @@ window.saChoosesOwnClothes = (function() {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {string}
  */
 	function todaysCollar(slave) {
 		const neck = [];
 
 		if (slave.fetish === "mindbroken") {
+			//
 		} else if (slave.devotion <= 20) {
+			//
 		} else {
 			if (V.arcologies[0].FSEgyptianRevivalist > 0) {
 				neck.push({text: `dons a wesekh to support your ancient Egyptian pretensions,`, collar: "ancient Egyptian"});
@@ -1030,7 +1034,7 @@ window.saChoosesOwnClothes = (function() {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {string}
  */
 	function todaysCorset(slave) {
 		const belly = [];
diff --git a/src/endWeek/saPorn.js b/src/endWeek/saPorn.js
index 6b9039691bd8185a37e14d394c33f8d613fea333..93ab5aa36c52c40b03030d04339859f23b79298d 100644
--- a/src/endWeek/saPorn.js
+++ b/src/endWeek/saPorn.js
@@ -2,7 +2,7 @@
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {object}
  */
 window.getHighestPorn = function(slave) {
 	let max = {value: 0, type: "none"};
diff --git a/src/endWeek/saRest.js b/src/endWeek/saRest.js
index 28a8de20c23c4cf8b6316774f7b8c2fe7184c505..e40028c941241cfa3295492f285e6afce5e6e0ef 100644
--- a/src/endWeek/saRest.js
+++ b/src/endWeek/saRest.js
@@ -1,9 +1,10 @@
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {string}
  */
 window.saRest = function saRest(slave) {
 	const V = State.variables;
+	/* eslint-disable */
 	const pronouns = getPronouns(slave);
 	const he = pronouns.pronoun;
 	const him = pronouns.object;
@@ -13,6 +14,7 @@ window.saRest = function saRest(slave) {
 	const boy = pronouns.noun;
 	const He = capFirstChar(he);
 	const His = capFirstChar(his);
+	/* eslint-enable */
 
 	let t = " takes the week off.";
 
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 105403a5ed937484c4f8909e62b3711c37c9657d..8c5881d018ba370ea54d4564891362d215d6779b 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -20,7 +20,7 @@ window.saServeThePublic = (function saServeThePublic() {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {string}
  */
 	function saServeThePublic(slave) {
 		V = State.variables;
@@ -568,7 +568,7 @@ window.saServeThePublic = (function saServeThePublic() {
 			r += ` ${He}'s a better slut because public service is ${his} main sexual outlet.`;
 		}
 
-		//Someone double check this block
+		// Someone double check this block
 		if (V.familyTesting === 1) {
 			if (totalRelatives(slave) > 0) {
 				let children = [];
@@ -1345,7 +1345,7 @@ window.saServeThePublic = (function saServeThePublic() {
 			}
 		}
 		mammaryUse = 0;
-		//perhaps boost this for truly massive breasts
+		// perhaps boost this for truly massive breasts
 		if (slave.boobs > 10000) {
 			mammaryUse = (5 + V.mammaryUseWeight);
 		} else if (slave.boobs > 2000) {
diff --git a/src/endWeek/saStayConfined.js b/src/endWeek/saStayConfined.js
index 5848d748f0d08f70a3522a63760d3476e204bb29..7d701ea44b5c8ef96cc2ecc386fe68049a6ac63c 100644
--- a/src/endWeek/saStayConfined.js
+++ b/src/endWeek/saStayConfined.js
@@ -1,9 +1,10 @@
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {string}
  */
 window.saStayConfined = function saStayConfined(slave) {
 	const V = State.variables;
+	/* eslint-disable */
 	const pronouns = getPronouns(slave);
 	const he = pronouns.pronoun;
 	const him = pronouns.object;
@@ -13,6 +14,7 @@ window.saStayConfined = function saStayConfined(slave) {
 	const boy = pronouns.noun;
 	const He = capFirstChar(he);
 	const His = capFirstChar(his);
+	/* eslint-enable */
 
 	let t = "";
 
diff --git a/src/endWeek/saWorkAGloryHole.js b/src/endWeek/saWorkAGloryHole.js
index 3afe34199c98785387534c523f611812243c4205..008051f98dd494aa29a70b16ebf12c01df0730aa 100644
--- a/src/endWeek/saWorkAGloryHole.js
+++ b/src/endWeek/saWorkAGloryHole.js
@@ -6,14 +6,15 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 	let beauty;
 	let FResult;
 	let pronouns;
+	// eslint-disable-next-line no-unused-vars
 	let he, him, his, hers, himself, boy, He, His;
 
 	return saWorkAGloryHole;
 
-/**
- * @param {App.Entity.SlaveState} slave
- * 
- */
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
 	function saWorkAGloryHole(slave) {
 		V = State.variables;
 		T = State.temporary;
@@ -89,7 +90,7 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
  * 
  */
 	function physicalEffects(slave) {
-		//check usage counts for these — more fucks should be more damaging
+		// check usage counts for these — more fucks should be more damaging
 		if (slave.curatives > 0 || slave.inflationType === "curative") {
 			r += ` The drugs ${he}'s `;
 			if (slave.inflationType === "curative") {
@@ -366,7 +367,7 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 			cervixPump += (20 * analUse);
 		}
 
-		//this may need improvement with the new system
+		// this may need improvement with the new system
 		if (slave.need) {
 			if (slave.fetishKnown) {
 				switch (slave.fetish) {
diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index bdcb7e84640a1307aeac520c76a28116b3845213..1ae16e7eca844c2236cffef864879ace96bdd4a9 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -881,7 +881,7 @@ window.generateGenetics = (function() {
 			}
 		}
 
-		//rear lipedema
+		// rear lipedema
 		if (father !== 0) {
 			if (mother.geneticQuirks.rearLipedema === 2 && father.geneticQuirks.rearLipedema === 2) {
 				if (jsRandom(1, 4) >= 3) {
diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index 99effdc05e0e485f15bf47c5411a236f3f7a3414..6afe22b99c25010cb051197a950f57645788914e 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -253,6 +253,8 @@ window.emptyDefaultRule = function emptyDefaultRule() {
 			selectedSlaves: [],
 			excludedSlaves: [],
 		},
+		/* eslint-disable */
+		// TODO: rename properties in snake_case to camelCase?
 		set: {
 			releaseRules: "no default setting",
 			toyHole: "no default setting",
@@ -380,6 +382,7 @@ window.emptyDefaultRule = function emptyDefaultRule() {
 			skinColor: "no default setting",
 			inflationType: "no default setting",
 		}
+		/* eslint-enable */
 	};
 	return rule;
 };
diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js
index 2156a0afcf4da12e525ca3bdc50cbff6411455dd..34b7736c125996b2072c674228742826505cb2ba 100644
--- a/src/js/rulesAutosurgery.js
+++ b/src/js/rulesAutosurgery.js
@@ -1,3 +1,4 @@
+/* eslint-disable camelcase */
 window.rulesAutosurgery = (function() {
 	"use strict";
 	let V;
@@ -572,7 +573,7 @@ window.rulesAutosurgery = (function() {
 		}
 	}
 
-/**
+	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {Object} thisSurgery
 	 * @param {string[]} surgeries
@@ -590,7 +591,6 @@ window.rulesAutosurgery = (function() {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
  */
 	function bellyIn(slave) {
 		// less hacky version of calling surgery degradation silently
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index ad1157efded76b1c1e18fe7b3873e4cfc156bdd4..848ec9b4fd61a1b19266d09b795df5fb6686e526 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -18,7 +18,7 @@ window.SlaveStatsChecker = (function() {
 	/* call as SlaveStatsChecker.modScore() */
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {number} // I think
  */
 	function modScore(slave) {
 		const V = State.variables;
@@ -30,7 +30,7 @@ window.SlaveStatsChecker = (function() {
 	/* call as SlaveStatsChecker.piercingScore() */
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {number}
  */
 	function piercingScore(slave) {
 		let score = 0;
@@ -84,7 +84,7 @@ window.SlaveStatsChecker = (function() {
 	/* call as SlaveStatsChecker.tatScore() */
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {number}
  */
 	function tatScore(slave) {
 		let score = 0;
@@ -148,7 +148,7 @@ window.SlaveStatsChecker = (function() {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isSlim = function (slave) {
 	let slim = false;
@@ -180,7 +180,7 @@ window.isSlim = function (slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {number}
  */
 window.slimPass = function (slave) {
 	let slimPass = 0;
@@ -209,7 +209,7 @@ window.slimPass = function (slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isStacked = function(slave) {
 	return (slave.butt > 4) && (slave.boobs > 800);
@@ -217,7 +217,7 @@ window.isStacked = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isModded = function(slave) {
 	const tatScore = SlaveStatsChecker.tatScore(slave);
@@ -229,7 +229,7 @@ window.isModded = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isUnmodded = function(slave) {
 	return (!isModded(slave) && (slave.corsetPiercing === 0) && (SlaveStatsChecker.piercingScore(slave) < 3) && (SlaveStatsChecker.tatScore(slave) < 2));
@@ -237,7 +237,7 @@ window.isUnmodded = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isXY = function(slave) {
 	return (slave.dick > 0);
@@ -245,7 +245,7 @@ window.isXY = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isYoung = function(slave) {
 	return (slave.visualAge < 30);
@@ -253,7 +253,7 @@ window.isYoung = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isPreg = function(slave) {
 	return ((slave.bellyPreg >= 5000) || (slave.bellyImplant >= 5000));
@@ -261,7 +261,7 @@ window.isPreg = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isNotPreg = function(slave) {
 	return (!isPreg(slave) && (slave.belly < 100) && (slave.weight < 30) && !setup.fakeBellies.includes(slave.bellyAccessory));
@@ -269,7 +269,7 @@ window.isNotPreg = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 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));
@@ -277,7 +277,7 @@ window.isPure = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isSurgicallyImproved = function(slave) {
 	return ((slave.boobsImplant > 0) && (slave.buttImplant > 0) && (slave.waist < -10) && (slave.lipsImplant > 0));
@@ -285,7 +285,7 @@ window.isSurgicallyImproved = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isFullyPotent = function(slave) {
 	if (!slave) {
@@ -298,7 +298,7 @@ window.isFullyPotent = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canGetPregnant = function(slave) {
 	if (!slave) {
@@ -317,7 +317,7 @@ window.canGetPregnant = function(slave) {
 
 /** contraceptives (.preg === -1) do not negate this function
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isFertile = function(slave) {
 	if (!slave) {
@@ -360,7 +360,7 @@ window.isFertile = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canAchieveErection = function(slave) {
 	if (!slave) {
@@ -373,7 +373,7 @@ window.canAchieveErection = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canPenetrate = function(slave) {
 	if (!slave) {
@@ -390,7 +390,7 @@ window.canPenetrate = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canSee = function(slave) {
 	if (!slave) {
@@ -401,7 +401,7 @@ window.canSee = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canHear = function(slave) {
 	if (!slave) {
@@ -412,7 +412,7 @@ window.canHear = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canSmell = function(slave) {
 	if (!slave) {
@@ -423,7 +423,7 @@ window.canSmell = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canTaste = function(slave) {
 	if (!slave) {
@@ -434,7 +434,7 @@ window.canTaste = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canWalk = function(slave) {
 	if (!slave) {
@@ -467,7 +467,7 @@ window.canWalk = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canTalk = function(slave) {
 	if (!slave) {
@@ -492,7 +492,7 @@ window.canTalk = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canDoAnal = function(slave) {
 	if (!slave) {
@@ -505,7 +505,7 @@ window.canDoAnal = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.canDoVaginal = function(slave) {
 	if (!slave) {
@@ -520,7 +520,7 @@ window.canDoVaginal = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.tooFatSlave = function(slave) {
 	if (!slave) {
@@ -539,7 +539,7 @@ window.tooFatSlave = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.tooBigBreasts = function(slave) {
 	if (!slave) {
@@ -558,7 +558,7 @@ window.tooBigBreasts = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.tooBigBelly = function(slave) {
 	if (!slave) {
@@ -577,7 +577,7 @@ window.tooBigBelly = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.tooBigBalls = function(slave) {
 	if (!slave) {
@@ -594,7 +594,7 @@ window.tooBigBalls = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.tooBigDick = function(slave) {
 	if (!slave) {
@@ -611,7 +611,7 @@ window.tooBigDick = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.tooBigButt = function(slave) {
 	if (!slave) {
@@ -626,7 +626,7 @@ window.tooBigButt = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {boolean}
  */
 window.isVegetable = function(slave) {
 	slave = slave || State.variables.activeSlave;
diff --git a/src/js/vignettes.js b/src/js/vignettes.js
index 1285f4a44cb8ebc19b195b1fad8c6b3b0f99044f..6f8de776b568fed3a46ac26511fd8b19beab43aa 100644
--- a/src/js/vignettes.js
+++ b/src/js/vignettes.js
@@ -1,7 +1,7 @@
 /* eslint-disable no-undef */
 /**
  * @param {App.Entity.SlaveState} slave
- * 
+ * @returns {string}
  */
 window.GetVignette = function GetVignette(slave) {
 	const V = State.variables;