diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index 61394fb0521c19d3df7e7fc86a463d7e9b3fc54f..95bd4516422ef6f728b77f89a515fe8a0774baf0 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -567,6 +567,7 @@ App.Data.resetOnNGPlus = {
 	nurseryGrowthStimsSetting: 0,
 	MadamIgnoresFlaws: 0,
 	farmyardBreeding: 0,
+	farmyardRestraints: 0,
 	farmyardShows: 0,
 	DJignoresFlaws: 0,
 	slaveFightingBG: 0,
diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js
index ff5d6f7a9ef6719cf484ea00e7a7fb2aad5c1b4f..dac4a52c36cf272898ff8916b618777694942bab 100644
--- a/src/endWeek/saWorkTheFarm.js
+++ b/src/endWeek/saWorkTheFarm.js
@@ -2,9 +2,9 @@
 
 /**
  * @param {App.Entity.SlaveState} slave
- * @returns {string}
+ * @returns {DocumentFragment}
  */
-App.SlaveAssignment.workTheFarm = function (slave) {
+App.SlaveAssignment.workTheFarm = function(slave) {
 	let frag = document.createDocumentFragment();
 
 	const
@@ -32,7 +32,7 @@ App.SlaveAssignment.workTheFarm = function (slave) {
 		r.push(health(slave));
 		r.push(sight(slave));
 		r.push(hearing(slave));
-		r.push(food(slave));
+		r.push(food());
 
 		r.push(slaveShows(slave));
 		r.push(longTermEffects(slave));
diff --git a/src/facilities/farmyard/farmyard.js b/src/facilities/farmyard/farmyard.js
index 787d3478c38e1f4fefc0fb54a7d4b6d838a5878c..dbc376eeab74c58e6bbf98f16402e498a82a6802 100644
--- a/src/facilities/farmyard/farmyard.js
+++ b/src/facilities/farmyard/farmyard.js
@@ -1,10 +1,10 @@
-App.Facilities.Farmyard.clearAnimalsBought = function () {
+App.Facilities.Farmyard.clearAnimalsBought = function() {
 	for (const i in V.animalsBought) {
 		V.animalsBought[i] = 0;
 	}
 };
 
-App.Facilities.Farmyard.upgrades = function () {
+App.Facilities.Farmyard.upgrades = function() {
 	const frag = new DocumentFragment(),
 
 		farmyardUpgrades = V.farmyardUpgrades,
@@ -145,7 +145,7 @@ App.Facilities.Farmyard.upgrades = function () {
 	return frag;
 };
 
-App.Facilities.Farmyard.animalHousing = function () {
+App.Facilities.Farmyard.animalHousing = function() {
 	const frag = new DocumentFragment(),
 
 		baseCost = Math.trunc(5000 * V.upgradeMultiplierArcology),
diff --git a/src/facilities/farmyard/food/foodAmount.js b/src/facilities/farmyard/food/foodAmount.js
index 6b7c0a78e255b6ded345ecb28d585ef77c2cf4cd..af0650ff655820872849bdab1d2a43bf34bd86fc 100644
--- a/src/facilities/farmyard/food/foodAmount.js
+++ b/src/facilities/farmyard/food/foodAmount.js
@@ -2,7 +2,7 @@
  * @param {App.Entity.SlaveState} slave
  * @returns {number}
  */
-App.Facilities.Farmyard.foodAmount = function (slave) {
+App.Facilities.Farmyard.foodAmount = function(slave) {
 	let food = 150;
 
 	if (!slave) {
@@ -80,7 +80,7 @@ App.Facilities.Farmyard.foodAmount = function (slave) {
 	}
 
 	food *= restEffects(slave, 20);
-	food = Math.clamp(Math.max(food, 1));
+	food = Math.trunc(Math.max(food, 1));
 
 	return food;
 };
diff --git a/src/facilities/farmyard/shows/farmShowsIncome.js b/src/facilities/farmyard/shows/farmShowsIncome.js
index 57fb3be93b44d547687c34b1c86a7e8c7e2496ac..f80c965449435cfc3a0d8bfc0563f561d8d50390 100644
--- a/src/facilities/farmyard/shows/farmShowsIncome.js
+++ b/src/facilities/farmyard/shows/farmShowsIncome.js
@@ -2,10 +2,10 @@
  * @param {App.Entity.SlaveState} slave
  * @returns {number}
  */
-App.Facilities.Farmyard.farmShowsIncome = function (slave) {
+App.Facilities.Farmyard.farmShowsIncome = function(slave) {
 	const
 		arcology = V.arcologies[0],
-		heavyMods = SlaveStatsChecker.modScore(slave) > 20,
+		heavyMods = SlaveStatsChecker.modScore(slave).total > 20,
 
 		sexualQuirks = ["perverted", "unflinching"],
 		behavioralQuirks = ["sinful"],
diff --git a/src/facilities/farmyard/shows/saFarmyardShows.js b/src/facilities/farmyard/shows/saFarmyardShows.js
index 151ee6879f457c93af67dad050f3e6c5be9536da..7efaf5cb0bd6789d29a64535b1c22fb6f909fdba 100644
--- a/src/facilities/farmyard/shows/saFarmyardShows.js
+++ b/src/facilities/farmyard/shows/saFarmyardShows.js
@@ -4,7 +4,7 @@
  * @param {App.Entity.SlaveState} slave
  * @returns {string}
  */
-App.Facilities.Farmyard.putOnShows = function (slave) {
+App.Facilities.Farmyard.putOnShows = function(slave) {
 	const
 		{ he, him, his, hers, He, His } = getPronouns(slave),
 		incomeStats = getSlaveStatisticData(slave, V.facility.farmyard),
@@ -12,7 +12,9 @@ App.Facilities.Farmyard.putOnShows = function (slave) {
 		_beautiful = beautiful(slave),
 		_pretty = pretty(slave),
 
-		heavyMods = SlaveStatsChecker.modScore(slave) > 20;
+		heavyMods = SlaveStatsChecker.modScore(slave).total > 20;
+
+	let r = [];
 
 	incomeStats.income += App.Facilities.Farmyard.farmShowsIncome(slave);
 
@@ -188,9 +190,9 @@ App.Facilities.Farmyard.putOnShows = function (slave) {
 	// FIXME: marked for review
 	if (arcology.FSPhysicalIdealist !== "unset") {
 		if (genderLawPass(slave)) {
-			r.push(`The fact that ${slave.slaveName} has what is considered the ideal form also <span class="reputation inc">helps ${him} attract attention</span>, and so ${he} earns a bit more.`);
+			r.push(`The fact that ${slave.slaveName} has what is considered the ideal form also <span class="reputation inc">helps ${him} attract attention,</span> and so ${he} earns a bit more.`);
 		} else {
-			r.push(`${His} form isn't exactly what ${arcology.name}'s citizens consider ideal, and so ${he} doesn't <span class="reputation dec">earn as much</span>.`);
+			r.push(`${His} form isn't exactly what ${arcology.name}'s citizens consider ideal, and so ${he} doesn't <span class="reputation dec">earn as much.</span>`);
 		}
 	}
 
@@ -370,7 +372,7 @@ App.Facilities.Farmyard.putOnShows = function (slave) {
 				if (slave.fetishKnown) {
 					r.push(`${He} is so submissive that ${he} willingly accepts ${his} position as an animal's fucktoy and <span class="reputation inc">is able to put on a decent show</span>.`);
 				} else {
-					r.push(`${V.Headgirl ? `${V.Headgirl.slaveName} notices` : `You notice`} that ${slave.slaveName} seems to have really taken to ${his} position as a fucktoy for animals. <span class="lightcoral">${He}'s a submissive!</span>`);
+					r.push(`${S.HeadGirl ? `${S.HeadGirl.slaveName} notices` : `You notice`} that ${slave.slaveName} seems to have really taken to ${his} position as a fucktoy for animals. <span class="lightcoral">${He}'s a submissive!</span>`);
 				}
 			} else {
 				if (slave.fetishKnown) {