diff --git a/src/endWeek/saHormonesEffects.js b/src/endWeek/saHormonesEffects.js
new file mode 100644
index 0000000000000000000000000000000000000000..1df9d2efbb81f15dfecfdb625a949c90dc9f9873
--- /dev/null
+++ b/src/endWeek/saHormonesEffects.js
@@ -0,0 +1,1144 @@
+window.saHormonesEffects = (function saHormonesEffects() {
+	"use strict";
+
+	let r;
+
+	// eslint-disable-next-line no-unused-vars
+	let he, him, his, hers, himself, girl, loli, He, His;
+
+	let gigantomastiaMod;
+	let rearLipedemaMod;
+	let boobSize;
+	let buttSize;
+	let normBreasts;
+	let normButt;
+	let faceValue;
+	let faceInc;
+	let faceDec;
+
+	return saHormonesEffects;
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {string}
+	 */
+	function saHormonesEffects(slave) {
+		r = [];
+		gigantomastiaMod = slave.geneticQuirks.gigantomastia === 2 ? (slave.geneticQuirks.macromastia === 2 ? 3 : 2) : 1;
+		rearLipedemaMod = slave.geneticQuirks.rearLipedema === 2 ? 1 : 0;
+		boobSize = slave.boobs - slave.boobsImplant - slave.boobsMilk;
+		buttSize = slave.butt - slave.buttImplant;
+		faceValue = slave.face - slave.faceImplant;
+
+		({
+			// eslint-disable-next-line no-unused-vars
+			he, him, his, hers, himself, girl, He, His, loli
+		} = getPronouns(slave));
+
+		hormoneBalance(slave);
+		if (V.hormoneUpgradeMood === 0) {
+			moodConflict(slave);
+		}
+		if (slave.physicalAge >= 18 || V.loliGrow === 0 || slave.geneMods.NCS === 1) {
+			hormonesEffects(slave);
+		}
+		if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
+			hormoneReactions(slave);
+		}
+
+		return r.join(" ");
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function hormoneBalance(slave) {
+		if (slave.hormoneBalance <= -400) {
+			r.push(`${His} hormone balance is overwhelmingly masculine.`);
+		} else if (slave.hormoneBalance <= -300) {
+			r.push(`${His} hormone balance is extremely masculine.`);
+		} else if (slave.hormoneBalance <= -200) {
+			r.push(`${His} hormone balance is heavily masculine.`);
+		} else if (slave.hormoneBalance <= -100) {
+			r.push(`${His} hormone balance is very masculine.`);
+		} else if (slave.hormoneBalance < -20) {
+			r.push(`${His} hormone balance is masculine.`);
+		} else if (slave.hormoneBalance >= 400) {
+			r.push(`${His} hormone balance is overwhelmingly feminine.`);
+		} else if (slave.hormoneBalance >= 300) {
+			r.push(`${His} hormone balance is extremely feminine.`);
+		} else if (slave.hormoneBalance >= 200) {
+			r.push(`${His} hormone balance is heavily feminine.`);
+		} else if (slave.hormoneBalance >= 100) {
+			r.push(`${His} hormone balance is very feminine.`);
+		} else if (slave.hormoneBalance > 20) {
+			r.push(`${His} hormone balance is feminine.`);
+		} else {
+			r.push(`${He} has a neutral hormone balance.`);
+		}
+		if (Math.abs(slave.hormones) > 1) {
+			slave.chem += 0.5;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function moodConflict(slave) {
+		if (slave.hormoneBalance > 20 && slave.genes === "XY" && slave.balls !== 0 && slave.ballType !== "sterile") {
+			r.push(`${His} feminine hormonal balance conflicts with ${his} natural hormones,`);
+			if (slave.devotion > 50) {
+				r.push(`but ${he}'s a good enough slave to suppress the occasional moodiness.`);
+			} else {
+				r.push(`causing <span class="mediumorchid">occasional moodiness.</span>`);
+				slave.devotion -= 1;
+			}
+			if (slave.energy > 10) {
+				r.push(`It also has the unfortunate consequence of <span class="red">damaging ${his} libido.</span>`);
+				slave.energy--;
+			}
+			if (slave.attrXX > 50 || slave.attrXY > 50) {
+				r.push(`Even more troubling, ${his} sexual confusion <span class="red">leaves ${him} finding others less attractive.</span>`);
+				if (slave.attrXX > 50) {
+					slave.attrXX--;
+				}
+				if (slave.attrXY > 50) {
+					slave.attrXY--;
+				}
+			}
+		}
+		if (slave.hormoneBalance < -20 && slave.genes === "XX" && (slave.ovaries !== 0 || slave.mpreg !== 0)) {
+			r.push(`${His} masculine hormonal balance conflicts with ${his} natural hormones,`);
+			if (slave.devotion > 50) {
+				r.push(`but ${he}'s a good enough slave to suppress the occasional moodiness.`);
+			} else {
+				r.push(`causing <span class="mediumorchid">occasional moodiness.</span>`);
+				slave.devotion -= 1;
+			}
+			if (slave.energy > 10) {
+				r.push(`It also has the unfortunate consequence of <span class="red">damaging ${his} libido.</span>`);
+				slave.energy--;
+			}
+			if (slave.attrXX > 50 || slave.attrXY > 50) {
+				r.push(`Even more troubling, ${his} sexual confusion <span class="red">leaves ${him} finding others less attractive.</span>`);
+				if (slave.attrXX > 50) {
+					slave.attrXX--;
+				}
+				if (slave.attrXY > 50) {
+					slave.attrXY--;
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function hormonesEffects(slave) {
+		if (Math.abs(slave.hormoneBalance) >= 50) {
+			if (slave.hormoneBalance > 30 && slave.geneMods.NCS !== 1) {
+				/* 'Expected' breast size based on weight for feminine-bodied slaves */
+				normBreasts = Math.trunc((100 + (slave.weight + 100) * 5 + 2 * slave.lactationAdaptation) * (0.85 + slave.hormoneBalance / 400) * gigantomastiaMod);
+				normButt = ((slave.weight + 100) * .025 * (0.9 + slave.hormoneBalance / 600) * (rearLipedemaMod / 2 + 1));
+			}
+
+			if (slave.hormoneBalance >= 350) {
+				if ((slave.geneMods.NCS === 1)) {
+					if ((slave.shoulders + Math.abs(slave.shouldersImplant)) > -1 && slave.shoulders > -2 && jsRandom(1, 100) < (40 + (20 * V.hormoneUpgradePower))) {
+						r.push(`Feminine hormones team up with ${his} <span class="orange">NCS</span> to cause <span class="lime">${his} shoulders to shrink into a more childlike narrowness</span> than before.`);
+						slave.shoulders--;
+					}
+				} else if (slave.physicalAge < 25) {
+					if (slave.shoulders + Math.abs(slave.shouldersImplant) > -1 && slave.shoulders > -2 && jsRandom(1, 100) < 20 + (10 * V.hormoneUpgradePower)) {
+						r.push(`${His} body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause <span class="lime">${his} shoulders to develop into a more feminine narrowness</span> than they would have done naturally.`);
+						slave.shoulders--;
+					}
+					if (slave.geneMods.NCS === 0 && slave.hips - (Math.abs(slave.hipsImplant)) < 1 && slave.hips < 2 && jsRandom(1, 100) <= 20 + (10 * V.hormoneUpgradePower)) {
+						r.push(`${His} body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause <span class="lime">${his} hips to develop more broadly</span> than they would have done naturally.`);
+						slave.hips++;
+					}
+				}
+
+				if (slave.faceImplant < 5) {
+					if (slave.faceShape === "masculine") {
+						r.push(`Hormonal effects cause <span class="orange">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike`);
+						}
+						r.push(`androgyny.</span>`);
+						slave.faceShape = "androgynous";
+					} else if (slave.faceShape === "androgynous" && slave.geneticQuirks.androgyny !== 2) {
+						r.push(`Hormonal effects cause <span class="lime">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike normalcy`);
+						} else {
+							r.push(`femininity`);
+						}
+						r.push(`. < /span>`);
+						slave.faceShape = "normal";
+					} else if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.faceShape === "normal") {
+						r.push(`Hormonal effects cause <span class="lime">${his} face to soften into childlike cuteness.</span>`);
+						slave.faceShape = "cute";
+					}
+				}
+				if (faceValue < 0 && slave.face < 75) {
+					r.push(`Hormonal effects cause <span class="lime">${his} facial structure to soften and become less unattractive.</span>`);
+					faceInc = 1 + V.hormoneUpgradePower;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						faceInc *= 2;
+					}
+					faceIncrease(slave, faceInc);
+				}
+
+				if (slave.voice < 3 && slave.voice > 0) {
+					r.push(`Hormonal effects cause <span class="lime">${his} voice to become higher and more`);
+					if (slave.geneMods.NCS === 1) {
+						r.push(`childlike.</span>`);
+					} else {
+						r.push(`feminine.</span>`);
+					}
+					slave.voice++;
+				}
+
+				if (slave.muscles > 10 && slave.diet !== "muscle building" && slave.drugs !== "steroids") {
+					r.push(`Hormonal effects <span class="orange">reduce ${his} musculature.</span>`);
+					slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					}
+				}
+				if (slave.waist > -30) {
+					r.push(`Hormonal effects cause ${his} <span class="lime">waist to narrow.</span>`);
+					slave.waist -= 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (boobSize < 0.9 * normBreasts) {
+						/* Grow to 90% of normBreasts */
+						r.push(`Hormonal effects cause <span class="lime">a small amount of natural breast growth.</span>`);
+						slave.boobs += 25;
+					}
+					if (slave.nipples === "tiny") {
+						r.push(`Hormonal effects cause ${his} tiny <span class="lime">nipples to grow to a more normal size.</span>`);
+						slave.nipples = "cute";
+					}
+					if (buttSize < Math.trunc(4.5 * normButt) / 5) {
+						/* 90% of normButt, rounded down to the next increment of .2 */
+						r.push(`Hormonal effects cause <span class="lime">the natural size of ${his} butt to increase.</span>`);
+						slave.butt += 0.2;
+					}
+				} else {
+					r.push(`${His} <span class="orange">NCS</span> blocks asset growth despite the fact that ${his} body is swimming in hormones.`);
+				}
+				if (slave.vagina > -1 && slave.ovaries !== 0 && slave.vaginaLube < 2) {
+					r.push(`Hormonal effects cause <span class="lime">${his} vagina to produce more copious natural lubricant.</span>`);
+					slave.vaginaLube++;
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (slave.dick > 1) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.dick > 2) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} dick to atrophy a lot.</span>`);
+							slave.dick -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} dick to atrophy.</span>`);
+						}
+						slave.dick--;
+					}
+					if (slave.balls > 1) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.balls > 2) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} testicles to atrophy a lot.</span>`);
+							slave.balls -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} testicles to atrophy.</span>`);
+						}
+						slave.balls--;
+					}
+					if (slave.clit > 0) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.clit > 1) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} clit to shrink down greatly.</span>`);
+							slave.clit -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} clit to shrink significantly.</span>`);
+						}
+						slave.clit--;
+					}
+				}
+
+				if (slave.devotion <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="hotpink">docile.</span>`);
+					slave.devotion++;
+				}
+				if (slave.trust <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="mediumaquamarine">trusting.</span>`);
+					slave.trust++;
+				}
+				if (slave.attrXY < 100) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to men.</span>`);
+					slave.attrXY += 2 + V.hormoneUpgradePower;
+				}
+			} else if (slave.hormoneBalance >= 300) {
+				if (slave.faceImplant < 5) {
+					if (slave.faceShape === "masculine") {
+						r.push(`Hormonal effects cause <span class="orange">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike`);
+						}
+						r.push(`androgyny.</span>`);
+						slave.faceShape = "androgynous";
+					} else if (slave.faceShape === "androgynous" && slave.geneticQuirks.androgyny !== 2) {
+						r.push(`Hormonal effects cause <span class="lime">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike normalcy.</span>`);
+						} else {
+							r.push(`femininity.</span>`);
+						}
+						slave.faceShape = "normal";
+					} else if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.faceShape === "normal") {
+						r.push(`Hormonal effects cause <span class="lime">${his} face to soften into childlike cuteness.</span>`);
+						slave.faceShape = "cute";
+					}
+				}
+				if (faceValue < 0 && slave.face < 60) {
+					r.push(`Hormonal effects cause <span class="lime">${his} facial structure to soften and become less unattractive.</span>`);
+					faceInc = 1 + V.hormoneUpgradePower;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						faceInc *= 2;
+					}
+					faceIncrease(slave, faceInc);
+				}
+
+				if (slave.voice < 3 && slave.voice > 0) {
+					r.push(`Hormonal effects cause <span class="lime">${his} voice to become higher and more`);
+					if (slave.geneMods.NCS === 1) {
+						r.push(`childlike.</span>`);
+					} else {
+						r.push(`feminine.</span>`);
+					}
+					slave.voice++;
+				}
+
+				if (slave.muscles > 30 && slave.diet !== "muscle building" && slave.drugs !== "steroids") {
+					r.push(`Hormonal effects <span class="orange">reduce ${his} musculature.</span>`);
+					slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					}
+				}
+				if (slave.waist > -10) {
+					r.push(`Hormonal effects cause ${his} <span class="lime">waist to narrow.</span>`);
+					slave.waist -= 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (boobSize < 0.8 * normBreasts) {
+						/* Grow to 80% of expected */
+						r.push(`Hormonal effects cause <span class="lime">a small amount of natural breast growth.</span>`);
+						slave.boobs += 25;
+					}
+					if (slave.nipples === "tiny") {
+						r.push(`Hormonal effects cause ${his} tiny <span class="lime">nipples to grow to a more normal size.</span>`);
+						slave.nipples = "cute";
+					}
+					if (buttSize < Math.trunc(4 * normButt) / 5) {
+						/* 80% of normButt, rounded down to the next increment of .2 */
+						r.push(`Hormonal effects cause <span class="lime">the natural size of ${his} butt to increase.</span>`);
+						slave.butt += 0.2;
+					}
+				}
+				if (slave.vagina > -1 && slave.ovaries !== 0 && slave.vaginaLube < 2) {
+					r.push(`Hormonal effects cause <span class="lime">${his} vagina to produce more copious natural lubricant.</span>`);
+					slave.vaginaLube++;
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (slave.dick > 1) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.dick > 2) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} dick to atrophy a lot.</span>`);
+							slave.dick -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} dick to atrophy.</span>`);
+						}
+						slave.dick--;
+					}
+					if (slave.balls > 1) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.balls > 2) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} testicles to atrophy a lot.</span>`);
+							slave.balls -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} testicles to atrophy.</span>`);
+						}
+						slave.balls--;
+					}
+					if (slave.clit > 0) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.clit > 1) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} clit to shrink down greatly.</span>`);
+							slave.clit -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} clit to shrink significantly.</span>`);
+						}
+						slave.clit--;
+					}
+				}
+
+				if (slave.devotion <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="hotpink">docile.</span>`);
+					slave.devotion++;
+				}
+				if (slave.trust <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="mediumaquamarine">trusting.</span>`);
+					slave.trust++;
+				}
+				if (slave.attrXY < 100) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to men.</span>`);
+					slave.attrXY += 2 + V.hormoneUpgradePower;
+				}
+			} else if (slave.hormoneBalance >= 250) {
+				if (slave.faceImplant < 5) {
+					if (slave.faceShape === "masculine") {
+						r.push(`Hormonal effects cause <span class="orange">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike`);
+						}
+						r.push(`androgyny.</span>`);
+						slave.faceShape = "androgynous";
+					} else if (slave.faceShape === "androgynous" && slave.geneticQuirks.androgyny !== 2) {
+						r.push(`Hormonal effects cause <span class="lime">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike normalcy.</span>`);
+						} else {
+							r.push(`femininity.</span>`);
+						}
+						slave.faceShape = "normal";
+					} else if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.faceShape === "normal") {
+						r.push(`Hormonal effects cause <span class="lime">${his} face to soften into childlike cuteness.</span>`);
+						slave.faceShape = "cute";
+					}
+				}
+				if (faceValue < 0 && slave.face < 30) {
+					r.push(`Hormonal effects cause <span class="lime">${his} facial structure to soften and become less unattractive.</span>`);
+					faceInc = 1 + V.hormoneUpgradePower;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						faceInc *= 2;
+					}
+					faceIncrease(slave, faceInc);
+				}
+
+				if (slave.voice < 2 && slave.voice > 0) {
+					r.push(`Hormonal effects cause <span class="lime">${his} voice to become higher and more`);
+					if (slave.geneMods.NCS === 1) {
+						r.push(`childlike.</span>`);
+					} else {
+						r.push(`feminine.</span>`);
+					}
+					slave.voice++;
+				}
+
+				if (slave.muscles > 30 && slave.diet !== "muscle building" && slave.drugs !== "steroids") {
+					r.push(`Hormonal effects <span class="orange">reduce ${his} musculature.</span>`);
+					slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					}
+				}
+				if (slave.waist > 0) {
+					r.push(`Hormonal effects cause ${his} <span class="lime">waist to narrow.</span>`);
+					slave.waist -= 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (boobSize < 0.7 * normBreasts) {
+						/* Grow to 70% of expected */
+						r.push(`Hormonal effects cause <span class="lime">a small amount of natural breast growth.</span>`);
+						slave.boobs += 25;
+					}
+					if (slave.nipples === "tiny") {
+						r.push(`Hormonal effects cause ${his} tiny <span class="lime">nipples to grow to a more normal size.</span>`);
+						slave.nipples = "cute";
+					}
+					if (buttSize < Math.trunc(3.5 * normButt) / 5) {
+						/* 70% of normButt, rounded down to the next increment of .2 */
+						r.push(`Hormonal effects cause <span class="lime">the natural size of ${his} butt to increase.</span>`);
+						slave.butt += 0.2;
+					}
+				}
+				if (slave.vagina > -1 && slave.ovaries !== 0 && slave.vaginaLube < 1) {
+					r.push(`Hormonal effects cause <span class="lime">${his} vagina to produce more copious natural lubricant.</span>`);
+					slave.vaginaLube++;
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (slave.dick > 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} dick to atrophy a lot.</span>`);
+							slave.dick -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} dick to atrophy.</span>`);
+						}
+						slave.dick--;
+					}
+					if (slave.balls > 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} testicles to atrophy a lot.</span>`);
+							slave.balls -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} testicles to atrophy.</span>`);
+						}
+						slave.balls--;
+					}
+					if (slave.clit > 1) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} clit to shrink down greatly.</span>`);
+							slave.clit -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} clit to shrink significantly.</span>`);
+						}
+						slave.clit--;
+					}
+				}
+
+				if (slave.devotion <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="hotpink">docile.</span>`);
+					slave.devotion++;
+				}
+				if (slave.trust <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="mediumaquamarine">trusting.</span>`);
+					slave.trust++;
+				}
+				if (slave.attrXY < 95) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to men.</span>`);
+					slave.attrXY += 2 + V.hormoneUpgradePower;
+				}
+			} else if (slave.hormoneBalance >= 200) {
+				if (slave.faceImplant < 5) {
+					if (slave.faceShape === "masculine") {
+						r.push(`Hormonal effects cause <span class="orange">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike`);
+						}
+						r.push(`androgyny.</span>`);
+						slave.faceShape = "androgynous";
+					} else if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.faceShape === "androgynous" && slave.geneticQuirks.androgyny !== 2) {
+						r.push(`Hormonal effects cause <span class="lime">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike normalcy.</span>`);
+						} else {
+							r.push(`femininity.</span>`);
+						}
+						slave.faceShape = "normal";
+					}
+				}
+				if (faceValue < 0 && slave.face < 0) {
+					r.push(`Hormonal effects cause <span class="lime">${his} facial structure to soften and become less unattractive.</span>`);
+					faceInc = 1 + V.hormoneUpgradePower;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						faceInc *= 2;
+					}
+					faceIncrease(slave, faceInc);
+				}
+
+				if (slave.voice < 2 && slave.voice > 0) {
+					r.push(`Hormonal effects cause <span class="lime">${his} voice to become higher and more`);
+					if (slave.geneMods.NCS === 1) {
+						r.push(`childlike.</span>`);
+					} else {
+						r.push(`feminine.</span>`);
+					}
+					slave.voice++;
+				}
+
+				if (slave.muscles > 30 && slave.diet !== "muscle building" && slave.drugs !== "steroids") {
+					r.push(`Hormonal effects <span class="orange">reduce ${his} musculature.</span>`);
+					slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+						slave.muscles -= 2 + V.hormoneUpgradePower + slave.geneticQuirks.mLoss;
+					}
+				}
+				if (slave.waist > 10) {
+					r.push(`Hormonal effects cause ${his} <span class="lime">waist to narrow.</span>`);
+					slave.waist -= 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (boobSize < 0.6 * normBreasts) {
+						/* Grow to 60% of expected */
+						r.push(`Hormonal effects cause <span class="lime">a small amount of natural breast growth.</span>`);
+						slave.boobs += 25;
+					}
+					if (slave.nipples === "tiny") {
+						r.push(`Hormonal effects cause ${his} tiny <span class="lime">nipples to grow to a more normal size.</span>`);
+						slave.nipples = "cute";
+					}
+					if (buttSize < Math.trunc(3 * normButt) / 5) {
+						/* 60% of normButt, rounded down to the next increment of .2 */
+						r.push(`Hormonal effects cause <span class="lime">the natural size of ${his} butt to increase.</span>`);
+						slave.butt += 0.2;
+					}
+				}
+				if (slave.vagina > -1 && slave.ovaries !== 0 && slave.vaginaLube < 1) {
+					r.push(`Hormonal effects cause <span class="lime">${his} vagina to produce more copious natural lubricant.</span>`);
+					slave.vaginaLube++;
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (slave.dick > 3) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} dick to atrophy a lot.</span>`);
+							slave.dick -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} dick to atrophy.</span>`);
+							slave.dick--;
+						}
+					}
+					if (slave.balls > 3) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} testicles to atrophy a lot.</span>`);
+							slave.balls -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} testicles to atrophy.</span>`);
+						}
+						slave.balls--;
+					}
+					if (slave.clit > 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} clit to shrink down greatly.</span>`);
+							slave.clit -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">${his} clit to shrink significantly.</span>`);
+						}
+						slave.clit--;
+					}
+				}
+
+				if (slave.devotion <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="hotpink">docile.</span>`);
+					slave.devotion++;
+				}
+				if (slave.trust <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="mediumaquamarine">trusting.</span>`);
+					slave.trust++;
+				}
+				if (slave.attrXY < 90) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to men.</span>`);
+					slave.attrXY += 2 + V.hormoneUpgradePower;
+				}
+			} else if (slave.hormoneBalance >= 100) {
+				if (slave.faceImplant < 5) {
+					if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && slave.faceShape === "masculine") {
+						r.push(`Hormonal effects cause <span class="orange">${his} face to soften into`);
+						if (slave.geneMods.NCS === 1) {
+							r.push(`childlike`);
+						}
+						r.push(`androgyny.</span>`);
+						slave.faceShape = "androgynous";
+					}
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (boobSize < 0.5 * normBreasts) {
+						/* Grow to 50% of expected */
+						r.push(`Hormonal effects cause <span class="lime">a small amount of natural breast growth.</span>`);
+						slave.boobs += 25;
+					}
+				}
+
+				if (slave.devotion <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="hotpink">docile.</span>`);
+					slave.devotion++;
+				}
+				if (slave.trust <= 20) {
+					r.push(`Hormonal effects make ${him} a bit more <span class="mediumaquamarine">trusting.</span>`);
+					slave.trust++;
+				}
+				if (slave.attrXY < 80) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to men.</span>`);
+					slave.attrXY += 2 + V.hormoneUpgradePower;
+				}
+			} else if (slave.hormoneBalance >= 50) {
+				if (slave.attrXY < 70) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to men.</span>`);
+					slave.attrXY += 2 + V.hormoneUpgradePower;
+				}
+			} else if (slave.hormoneBalance <= -350) {
+				if (slave.geneMods.NCS === 1) {
+					if (slave.hips + Math.abs(slave.hipsImplant) > -1 && slave.hips > -2 && jsRandom(1, 100 <= (20 + (10 * V.hormoneUpgradePower)))) {
+						r.push(`Masculine hormones team up with ${his} <span class="orange">NCS</span> to cause <span class="lime">${his} hips to shrink into a more childlike narrowness</span> than before.`);
+						slave.hips -= 1;
+					}
+				} else if (slave.physicalAge < 25) {
+					if ((slave.shoulders - (Math.abs(slave.shouldersImplant)) < 1) && (slave.shoulders < 2) && (jsRandom(1, 100) < 20 + (10 * V.hormoneUpgradePower))) {
+						r.push(`${His} body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause <span class="orange">${his} shoulders to develop a more masculine wideness</span> than they would have done naturally.`);
+						slave.shoulders += 1;
+					}
+					if ((slave.hips + (Math.abs(slave.hipsImplant)) > -1) && (slave.hips > -2) && (jsRandom(1, 100) <= 20 + (10 * V.hormoneUpgradePower))) {
+						r.push(`${His} body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause <span class="orange">${his} hips to develop more narrowly</span> than they would have done naturally.`);
+						slave.hips -= 1;
+					}
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (slave.faceImplant < 5) {
+						if (slave.geneticQuirks.androgyny !== 2) {
+							if (slave.faceShape === "androgynous") {
+								r.push(`Hormonal effects cause <span class="orange">${his} face to harden into masculinity.</span>`);
+								slave.faceShape = "masculine";
+							} else if (slave.faceShape !== "masculine") {
+								r.push(`Hormonal effects cause <span class="orange">${his} face to harden into androgyny.</span>`);
+								slave.faceShape = "androgynous";
+							}
+						}
+					}
+					if (faceValue > 0 && faceValue < 100) {
+						r.push(`Hormonal effects cause <span class="orange">${his} facial structure to harden and become less attractive.</span>`);
+						faceDec = 1 + V.hormoneUpgradePower;
+						slave.face = Math.trunc(slave.face - faceDec, -100, 100);
+					}
+					if (slave.voice > 1) {
+						r.push(`Hormonal effects cause <span class="orange">${his} voice to become deeper and less feminine.</span>`);
+						slave.voice--;
+					}
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (buttSize > 1 && rearLipedemaMod !== 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && buttSize > 2) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} butt to decrease a lot.</span>`);
+							slave.butt -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} butt to decrease.</span>`);
+						}
+						slave.butt--;
+					}
+					if (boobSize > 100 * gigantomastiaMod && gigantomastiaMod !== 3) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && boobSize > 200) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} tits to shrink a lot.</span>`);
+							slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} tits to shrink.</span>`);
+						}
+						slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+					}
+				}
+				if (slave.geneMods.NCS === 1 && slave.nipples === "tiny") {
+					/* nothing, just don't advance to cute */
+				} else if (slave.nipples !== "cute" && slave.nipples !== "fuckable") {
+					r.push(`Hormonal effects cause ${his} <span class="orange">nipples to shrink to a more masculine size.</span>`);
+					slave.nipples = "cute";
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (slave.dick > 0 && slave.dick < 5) {
+						r.push(`Hormonal effects add <span class="lime">a bit more heft to ${his} penis.</span>`);
+						slave.dick++;
+					}
+					if (slave.balls > 0 && slave.balls < 5) {
+						r.push(`Hormonal effects cause <span class="lime">${his} balls to hang a little heavier.</span>`);
+						slave.balls++;
+					}
+
+					if (slave.clit < 5 && slave.dick === 0) {
+						r.push(`Hormonal effects cause <span class="lime">${his} clit to grow significantly.</span>`);
+						slave.clit++;
+					}
+					if (slave.vagina > -1 && slave.vaginaLube > 0) {
+						r.push(`Hormonal effects cause <span class="orange">${his} vagina to produce less natural lubricant.</span>`);
+						slave.vaginaLube--;
+					}
+
+					if (slave.muscles <= 50 && slave.diet !== "slimming") {
+						r.push(`Hormonal effects <span class="lime">build up ${his} musculature.</span>`);
+						slave.muscles += 2 + V.hormoneUpgradePower + slave.geneticQuirks.mGain;
+					}
+					if (slave.waist < 80) {
+						r.push(`Hormonal effects cause ${his} <span class="orange">waist to broaden.</span>`);
+						slave.waist += 2 + V.hormoneUpgradePower;
+					}
+				}
+
+				if (slave.attrXX < 100) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to women.</span>`);
+					slave.attrXX += 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.devotion > 20 && slave.trust <= 20) {
+					r.push(`Hormonal effects <span class="mediumorchid">make ${him} a bit less docile.</span>`);
+					slave.devotion -= 1;
+				}
+			} else if (slave.hormoneBalance <= -300) {
+				if (slave.geneMods.NCS === 0) {
+					if (slave.faceImplant < 5) {
+						if (slave.geneticQuirks.androgyny !== 2) {
+							if (slave.faceShape === "androgynous") {
+								r.push(`Hormonal effects cause <span class="orange">${his} face to harden into masculinity.</span>`);
+								slave.faceShape = "masculine";
+							} else if (slave.faceShape !== "masculine") {
+								r.push(`Hormonal effects cause <span class="orange">${his} face to harden into androgyny.</span>`);
+								slave.faceShape = "androgynous";
+							}
+						}
+					}
+					if (faceValue > 0 && faceValue < 100) {
+						r.push(`Hormonal effects cause <span class="orange">${his} facial structure to harden and become less attractive.</span>`);
+						faceDec = 1 + V.hormoneUpgradePower;
+						slave.face = Math.trunc(slave.face - faceDec, -100, 100);
+					}
+
+					if (slave.voice > 1) {
+						r.push(`Hormonal effects cause <span class="orange">${his} voice to become deeper and less feminine.</span>`);
+						slave.voice--;
+					}
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (buttSize > 1 && rearLipedemaMod !== 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50 && buttSize > 2) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} butt to decrease a lot.</span>`);
+							slave.butt -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} butt to decrease.</span>`);
+						}
+						slave.butt--;
+					}
+					if (boobSize > 300 * gigantomastiaMod && gigantomastiaMod !== 3) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} tits to shrink a lot.</span>`);
+							slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} tits to shrink.</span>`);
+						}
+						slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+					}
+				}
+				if (slave.geneMods.NCS === 1 && slave.nipples === "tiny") {
+					/* nothing, just don't advance to cute */
+				} else if (slave.nipples !== "cute" && slave.nipples !== "fuckable") {
+					r.push(`Hormonal effects cause ${his} <span class="orange">nipples to shrink to a more masculine size.</span>`);
+					slave.nipples = "cute";
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (slave.dick > 0 && slave.dick < 5) {
+						r.push(`Hormonal effects add <span class="lime">a bit more heft to ${his} penis.</span>`);
+						slave.dick++;
+					}
+					if (slave.balls > 0 && slave.balls < 5 && slave.ballType !== "sterile") {
+						r.push(`Hormonal effects cause <span class="lime">${his} balls to hang a little heavier.</span>`);
+						slave.balls++;
+					}
+
+					if (slave.clit < 4 && slave.dick === 0) {
+						r.push(`Hormonal effects cause <span class="lime">${his} clit to grow significantly.</span>`);
+						slave.clit++;
+					}
+					if (slave.vagina > -1 && slave.vaginaLube > 0) {
+						r.push(`Hormonal effects cause <span class="orange">${his} vagina to produce less natural lubricant.</span>`);
+						slave.vaginaLube--;
+					}
+
+					if (slave.muscles <= 50 && slave.diet !== "slimming") {
+						r.push(`Hormonal effects <span class="lime">build up ${his} musculature.</span>`);
+						slave.muscles += 2 + V.hormoneUpgradePower + slave.geneticQuirks.mGain;
+					}
+					if (slave.waist < 40) {
+						r.push(`Hormonal effects cause ${his} <span class="orange">waist to broaden.</span>`);
+						slave.waist += 2 + V.hormoneUpgradePower;
+					}
+				}
+
+				if (slave.attrXX < 100) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to women.</span>`);
+					slave.attrXX += 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.devotion > 20 && slave.trust <= 20) {
+					r.push(`Hormonal effects <span class="mediumorchid">make ${him} a bit less docile.</span>`);
+					slave.devotion -= 1;
+				}
+			} else if (slave.hormoneBalance <= -250) {
+				if (slave.geneMods.NCS === 0) {
+					if (slave.faceImplant < 5) {
+						if (slave.faceShape !== "masculine" && slave.faceShape !== "androgynous") {
+							r.push(`Hormonal effects cause <span class="orange">${his} face to harden into androgyny.</span>`);
+							slave.faceShape = "androgynous";
+						}
+					}
+					if (faceValue > 20 && faceValue < 100) {
+						r.push(`Hormonal effects cause <span class="orange">${his} facial structure to harden and become less attractive.</span>`);
+						faceDec = 1 + V.hormoneUpgradePower;
+						slave.face = Math.trunc(slave.face - faceDec, -100, 100);
+					}
+
+					if (slave.voice > 1) {
+						r.push(`Hormonal effects cause <span class="orange">${his} voice to become deeper and less feminine.</span>`);
+						slave.voice--;
+					}
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (buttSize > 2 && rearLipedemaMod !== 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} butt to decrease a lot.</span>`);
+							slave.butt -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} butt to decrease.</span>`);
+						}
+						slave.butt--;
+					}
+					if (boobSize > 400 * gigantomastiaMod && gigantomastiaMod !== 3) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} tits to shrink a lot.</span>`);
+							slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} tits to shrink.</span>`);
+						}
+						slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+					}
+				}
+				if (slave.geneMods.NCS === 1 && slave.nipples === "tiny") {
+					/* nothing, just don't advance to cute */
+				} else if (slave.nipples !== "cute" && slave.nipples !== "fuckable") {
+					r.push(`Hormonal effects cause ${his} <span class="orange">nipples to shrink to a more masculine size.</span>`);
+					slave.nipples = "cute";
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (slave.dick > 0 && slave.dick < 4) {
+						r.push(`Hormonal effects add <span class="lime">a bit more heft to ${his} penis.</span>`);
+						slave.dick++;
+					}
+					if (slave.balls > 0 && slave.balls < 4 && slave.ballType !== "sterile") {
+						r.push(`Hormonal effects cause <span class="lime">${his} balls to hang a little heavier.</span>`);
+						slave.balls++;
+					}
+
+					if (slave.clit < 3 && slave.dick === 0) {
+						r.push(`Hormonal effects cause <span class="lime">${his} clit to grow significantly.</span>`);
+						slave.clit++;
+					}
+					if (slave.vagina > -1 && slave.vaginaLube > 0) {
+						r.push(`Hormonal effects cause <span class="orange">${his} vagina to produce less natural lubricant.</span>`);
+						slave.vaginaLube--;
+					}
+
+					if (slave.muscles <= 35 && slave.diet !== "slimming") {
+						r.push(`Hormonal effects <span class="lime">build up ${his} musculature.</span>`);
+						slave.muscles += 2 + V.hormoneUpgradePower + slave.geneticQuirks.mGain;
+					}
+					if (slave.waist < 25) {
+						r.push(`Hormonal effects cause ${his} <span class="orange">waist to broaden.</span>`);
+						slave.waist += 2 + V.hormoneUpgradePower;
+					}
+				}
+
+				if (slave.attrXX < 95) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to women.</span>`);
+					slave.attrXX += 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.devotion > 20 && slave.trust <= 20) {
+					r.push(`Hormonal effects <span class="mediumorchid">make ${him} a bit less docile.</span>`);
+					slave.devotion -= 1;
+				}
+			} else if (slave.hormoneBalance <= -200) {
+				if (slave.geneMods.NCS === 0) {
+					if (slave.faceImplant < 5) {
+						if (slave.faceShape !== "masculine" && slave.faceShape !== "androgynous") {
+							r.push(`Hormonal effects cause <span class="orange">${his} face to harden into androgyny.</span>`);
+							slave.faceShape = "androgynous";
+						}
+					}
+					if (faceValue > 40 && faceValue < 100) {
+						r.push(`Hormonal effects cause <span class="orange">${his} facial structure to harden and become less attractive.</span>`);
+						faceDec = 1 + V.hormoneUpgradePower;
+						slave.face = Math.trunc(slave.face - faceDec, -100, 100);
+					}
+
+					if (slave.voice > 2) {
+						r.push(`Hormonal effects cause <span class="orange">${his} voice to become deeper and less feminine.</span>`);
+						slave.voice--;
+					}
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (buttSize > 3 && rearLipedemaMod !== 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} butt to decrease a lot.</span>`);
+							slave.butt -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} butt to decrease.</span>`);
+						}
+						slave.butt--;
+					}
+					if (boobSize > 600 * gigantomastiaMod && gigantomastiaMod !== 3) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} tits to shrink a lot.</span>`);
+							slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} tits to shrink.</span>`);
+						}
+						slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+					}
+				}
+				if (slave.nipples === "huge" || slave.nipples === "puffy") {
+					r.push(`Hormonal effects cause ${his} big <span class="orange">nipples to shrink to a more reasonable size.</span>`);
+					slave.nipples = "cute";
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (slave.dick > 0 && slave.dick < 3) {
+						r.push(`Hormonal effects add <span class="lime">a bit more heft to ${his} penis.</span>`);
+						slave.dick++;
+					}
+					if (slave.balls > 0 && slave.balls < 3 && slave.ballType !== "sterile") {
+						r.push(`Hormonal effects cause <span class="lime">${his} balls to hang a little heavier.</span>`);
+						slave.balls++;
+					}
+
+					if (slave.clit < 2 && slave.dick === 0) {
+						r.push(`Hormonal effects cause <span class="lime">${his} clit to grow significantly.</span>`);
+						slave.clit++;
+					}
+					if (slave.vagina > -1 && slave.vaginaLube > 0) {
+						r.push(`Hormonal effects cause <span class="orange">${his} vagina to produce less natural lubricant.</span>`);
+						slave.vaginaLube--;
+					}
+
+					if (slave.muscles <= 15 && slave.diet !== "slimming") {
+						r.push(`Hormonal effects <span class="lime">build up ${his} musculature.</span>`);
+						slave.muscles += 2 + V.hormoneUpgradePower + slave.geneticQuirks.mGain;
+					}
+					if (slave.waist < 9) {
+						r.push(`Hormonal effects cause ${his} <span class="orange">waist to broaden.</span>`);
+						slave.waist += 2 + V.hormoneUpgradePower;
+					}
+				}
+
+				if (slave.attrXX < 90) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to women.</span>`);
+					slave.attrXX += 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.devotion > 20 && slave.trust <= 20) {
+					r.push(`Hormonal effects <span class="mediumorchid">make ${him} a bit less docile.</span>`);
+					slave.devotion -= 1;
+				}
+			} else if (slave.hormoneBalance <= -100) {
+				if (slave.geneMods.NCS === 0) {
+					if (faceValue && faceValue < 100) {
+						r.push(`Hormonal effects cause <span class="orange">${his} facial structure to harden and become less attractive.</span>`);
+						faceDec = 1 + V.hormoneUpgradePower;
+						slave.face = Math.trunc(slave.face - faceDec, -100, 100);
+					}
+
+					if (slave.voice > 2) {
+						r.push(`Hormonal effects cause <span class="orange">${his} voice to become deeper and less feminine.</span>`);
+						slave.voice--;
+					}
+				}
+
+				if (V.hormoneUpgradeShrinkage === 0) {
+					if (buttSize > 4 && rearLipedemaMod !== 2) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} butt to decrease a lot.</span>`);
+							slave.butt -= 1;
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} butt to decrease.</span>`);
+						}
+						slave.butt--;
+					}
+					if (boobSize > 800 * gigantomastiaMod && gigantomastiaMod !== 3) {
+						if (slave.geneMods.NCS === 1 && jsRandom(1, 100) > 50) {
+							r.push(`Hormonal effects work with ${his} <span class="orange">NCS</span> and cause <span class="orange">${his} tits to shrink a lot.</span>`);
+							slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+						} else {
+							r.push(`Hormonal effects cause <span class="orange">the natural size of ${his} tits to shrink.</span>`);
+						}
+						slave.boobs -= 10 + (15 * V.hormoneUpgradePower);
+					}
+				}
+
+				if (slave.geneMods.NCS === 0) {
+					if (slave.muscles < 0 && slave.diet !== "slimming") {
+						r.push(`Hormonal effects <span class="lime">build up ${his} musculature.</span>`);
+						slave.muscles += 2 + V.hormoneUpgradePower + slave.geneticQuirks.mGain;
+					}
+
+					if (slave.waist < 0) {
+						r.push(`Hormonal effects cause ${his} <span class="orange">waist to broaden.</span>`);
+						slave.waist += 2 + V.hormoneUpgradePower;
+					}
+
+					if (slave.dick > 0 && slave.dick < 2) {
+						r.push(`Hormonal effects cause <span class="lime">${his} micropenis to return to a more normal size.</span>`);
+						slave.dick++;
+					}
+					if (slave.balls > 0 && slave.balls < 2) {
+						r.push(`Hormonal effects cause <span class="lime">${his} balls to drop.</span>`);
+						slave.balls++;
+					}
+
+					if (slave.clit < 1 && slave.dick === 0) {
+						r.push(`Hormonal effects cause <span class="lime">${his} clit to grow significantly.</span>`);
+						slave.clit++;
+					}
+					if (slave.vagina > -1 && slave.vaginaLube > 1) {
+						r.push(`Hormonal effects cause <span class="orange">${his} vagina to produce less natural lubricant.</span>`);
+						slave.vaginaLube--;
+					}
+				}
+
+				if (slave.attrXX < 80) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to women.</span>`);
+					slave.attrXX += 2 + V.hormoneUpgradePower;
+				}
+
+				if (slave.devotion > 20 && slave.trust <= 20) {
+					r.push(`Hormonal effects <span class="mediumorchid">make ${him} a bit less docile.</span>`);
+					slave.devotion -= 1;
+				}
+			} else if (slave.hormoneBalance <= -50) {
+				if (slave.attrXX < 70) {
+					r.push(`Hormonal effects cause ${him} to become <span class="green">more attracted to women.</span>`);
+					slave.attrXX += 2 + V.hormoneUpgradePower;
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function hormoneReactions(slave) {
+		if (slave.hormoneBalance <= 20 && slave.hormones < 1) {
+			if (slave.dick > 0) {
+				if (slave.devotion > 20) {
+					if ((slave.boobs < 800 && slave.butt < 3) || (slave.faceShape === "masculine") || (slave.shoulders > slave.hips) || (slave.balls > 4)) {
+						if (slave.career === "a Futanari Sister") {
+							r.push(`${He} wishes ${he} were more feminine, but isn't unhappy to be off hormones, since ${he} likes being a stiff dicked futa.`);
+						} else if (slave.fetish === "buttslut" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
+							r.push(`${He} wishes ${he} were more feminine, but ${he} loves getting fucked in the butt so much that it doesn't much bother ${him}.`);
+						} else if (slave.fetish === "sadist" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
+							r.push(`Life is easier for effeminate slaves, but ${he} loves abusing other slaves so much that ${he} likes being able to get hard.`);
+						} else if (slave.fetish === "dom" && slave.fetishStrength > 60 && slave.fetishKnown === 1) {
+							r.push(`Life is easier for effeminate slaves, but ${he} loves dominating other girls so much that ${he} likes being able to get hard.`);
+						} else if (slave.energy > 95) {
+							r.push(`${He} wishes ${he} were more feminine, but ${he} loves getting fucked like a good little sex slave so much that ${he} doesn't think about it much.`);
+						} else if (slave.devotion <= 30) {
+							r.push(`Life is easier for effeminate slaves, so <span class="mediumorchid">${he}'s a little unhappy</span> that ${he} isn't getting hormones to make ${him} more feminine.`);
+							slave.devotion -= 2;
+						} else if (slave.devotion <= 50) {
+							r.push(`${He} wants to be a good slave girl, so <span class="mediumorchid">${he}'s a little unhappy</span> that ${he} isn't getting hormones to make ${him} look more feminine.`);
+							slave.devotion -= 2;
+						} else {
+							r.push(`${He} wishes ${he} were more feminine, but ${he} accepts your judgment in not giving ${him} hormones to make that happen.`);
+						}
+					}
+				}
+			}
+		}
+	}
+})();
diff --git a/src/uncategorized/saHormoneEffects.tw b/src/uncategorized/saHormoneEffects.tw
deleted file mode 100644
index cef6f69a45d1cb99979895bb827456a5491171cb..0000000000000000000000000000000000000000
--- a/src/uncategorized/saHormoneEffects.tw
+++ /dev/null
@@ -1,1030 +0,0 @@
-:: SA hormone effects [nobr]
-
-<<if $slaves[$i].hormoneBalance <= -400>>
-	$His hormone balance is overwhelmingly masculine.
-<<elseif $slaves[$i].hormoneBalance <= -300>>
-	$His hormone balance is extremely masculine.
-<<elseif $slaves[$i].hormoneBalance <= -200>>
-	$His hormone balance is heavily masculine.
-<<elseif $slaves[$i].hormoneBalance <= -100>>
-	$His hormone balance is very masculine.
-<<elseif $slaves[$i].hormoneBalance < -20>>
-	$His hormone balance is masculine.
-<<elseif $slaves[$i].hormoneBalance >= 400>>
-	$His hormone balance is overwhelmingly feminine.
-<<elseif $slaves[$i].hormoneBalance >= 300>>
-	$His hormone balance is extremely feminine.
-<<elseif $slaves[$i].hormoneBalance >= 200>>
-	$His hormone balance is heavily feminine.
-<<elseif $slaves[$i].hormoneBalance >= 100>>
-	$His hormone balance is very feminine.
-<<elseif $slaves[$i].hormoneBalance > 20>>
-	$His hormone balance is feminine.
-<<else>>
-	$He has a neutral hormone balance.
-<</if>>
-
-<<if $hormoneUpgradeMood == 0>>
-	<<if $slaves[$i].hormoneBalance > 20 && $slaves[$i].genes == "XY" && $slaves[$i].balls != 0 && $slaves[$i].ballType != "sterile">>
-		$His feminine hormonal balance conflicts with $his natural hormones,
-		<<if $slaves[$i].devotion > 50>>
-			but $he's a good enough slave to suppress the occasional moodiness.
-		<<else>>
-			causing @@.mediumorchid;occasional moodiness.@@
-			<<set $slaves[$i].devotion -= 1>>
-		<</if>>
-		<<if $slaves[$i].energy > 10>>
-			It also has the unfortunate consequence of @@.red;damaging $his libido.@@
-			<<set $slaves[$i].energy-->>
-		<</if>>
-		<<if $slaves[$i].attrXX > 50 || $slaves[$i].attrXY > 50>>
-			Even more troubling, $his sexual confusion @@.red;leaves $him finding others less attractive.@@
-			<<if $slaves[$i].attrXX > 50>>
-				<<set $slaves[$i].attrXX-->>
-			<</if>>
-			<<if $slaves[$i].attrXY > 50>>
-				<<set $slaves[$i].attrXY-->>
-			<</if>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].hormoneBalance < -20 && $slaves[$i].genes == "XX" && ($slaves[$i].ovaries != 0 || $slaves[$i].mpreg != 0)>>
-		$His masculine hormonal balance conflicts with $his natural hormones,
-		<<if $slaves[$i].devotion > 50>>
-			but $he's a good enough slave to suppress the occasional moodiness.
-		<<else>>
-			causing @@.mediumorchid;occasional moodiness.@@
-			<<set $slaves[$i].devotion -= 1>>
-		<</if>>
-		<<if $slaves[$i].energy > 10>>
-			It also has the unfortunate consequence of @@.red;damaging $his libido.@@
-			<<set $slaves[$i].energy-->>
-		<</if>>
-		<<if $slaves[$i].attrXX > 50 || $slaves[$i].attrXY > 50>>
-			Even more troubling, $his sexual confusion @@.red;leaves $him finding others less attractive.@@
-			<<if $slaves[$i].attrXX > 50>>
-				<<set $slaves[$i].attrXX-->>
-			<</if>>
-			<<if $slaves[$i].attrXY > 50>>
-				<<set $slaves[$i].attrXY-->>
-			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-
-/* quirk modifiers */
-<<set _rearQuirk = $slaves[$i].geneticQuirks.rearLipedema == 2 ? 2 : 0>>
-<<set _gigantomastiaMod = $slaves[$i].geneticQuirks.gigantomastia == 2 ? ($slaves[$i].geneticQuirks.macromastia == 2 ? 3 : 2) : 1>>
-
-<<if $slaves[$i].physicalAge >= 18 || $loliGrow == 0 || $slaves[$i].geneMods.NCS == 1>>
-<<if Math.abs($slaves[$i].hormoneBalance) >= 50>>
-<<set _effBreastSize = ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk)>>
-<<set _effButtSize = ($slaves[$i].butt-$slaves[$i].buttImplant)>>
-<<if $slaves[$i].hormoneBalance > 30 && $slaves[$i].geneMods.NCS != 1>>		/* 'Expected' breast size based on weight for feminine-bodied slaves */
-	<<set _normBreasts = Math.trunc((100 + ($slaves[$i].weight + 100)*5 + 2*$slaves[$i].lactationAdaptation)*(0.85+$slaves[$i].hormoneBalance/400)*_gigantomastiaMod)>>
-	<<set _normButt = (($slaves[$i].weight + 100)*.025*(0.9+$slaves[$i].hormoneBalance/600)*(_rearQuirk/2 + 1))>>
-<</if>>
-
-<<if $slaves[$i].hormoneBalance >= 350>>
-
-	<<if ($slaves[$i].geneMods.NCS == 1)>>
-		<<if ($slaves[$i].shoulders+(Math.abs($slaves[$i].shouldersImplant)) > -1) && ($slaves[$i].shoulders > -2) && (random(1,100) < 40+(20*$hormoneUpgradePower))>>
-			Feminine hormones team up with $his @@.orange;NCS@@ to cause @@.lime;$his shoulders to shrink into a more childlike narrowness@@ than before.
-			<<set $slaves[$i].shoulders-->>
-		<</if>>
-	<<elseif ($slaves[$i].physicalAge < 25)>>
-		<<if ($slaves[$i].shoulders+(Math.abs($slaves[$i].shouldersImplant)) > -1) && ($slaves[$i].shoulders > -2) && (random(1,100) < 20+(10*$hormoneUpgradePower))>>
-			$His body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause @@.lime;$his shoulders to develop into a more feminine narrowness@@ than they would have done naturally.
-			<<set $slaves[$i].shoulders-->>
-		<</if>>
-		<<if ($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].hips-(Math.abs($slaves[$i].hipsImplant)) < 1) && ($slaves[$i].hips < 2) && (random(1,100) <= 20+(10*$hormoneUpgradePower))>>
-			$His body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause @@.lime;$his hips to develop more broadly@@ than they would have done naturally.
-			<<set $slaves[$i].hips++>>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].faceImplant < 5>>
-		<<if ($slaves[$i].faceShape == "masculine")>>
-			Hormonal effects cause @@.orange;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike <</if>>androgyny.@@
-			<<set $slaves[$i].faceShape = "androgynous">>
-		<<elseif ($slaves[$i].faceShape == "androgynous" && $slaves[$i].geneticQuirks.androgyny != 2)>>
-			Hormonal effects cause @@.lime;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike normalcy<<else>>femininity<</if>>.@@
-			<<set $slaves[$i].faceShape = "normal">>
-		<<elseif (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].faceShape == "normal"))>>
-			Hormonal effects cause @@.lime;$his face to soften into childlike cuteness.@@
-			<<set $slaves[$i].faceShape = "cute">>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].face-$slaves[$i].faceImplant < 0) && ($slaves[$i].face < 75)>>
-		Hormonal effects cause @@.lime;$his facial structure to soften and become less unattractive.@@
-		<<set _faceInc = 1+$hormoneUpgradePower>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set _faceInc *= 2>>
-		<</if>>
-		<<= faceIncrease($slaves[$i], _faceInc)>>
-	<</if>>
-
-	<<if ($slaves[$i].voice < 3) && ($slaves[$i].voice > 0)>>
-		Hormonal effects cause @@.lime;$his voice to become higher and more <<if $slaves[$i].geneMods.NCS == 1>>childlike<<else>>feminine<</if>>.@@
-		<<set $slaves[$i].voice++>>
-	<</if>>
-
-	<<if $slaves[$i].muscles > 10 && $slaves[$i].diet != "muscle building" && $slaves[$i].drugs != "steroids">>
-		Hormonal effects @@.orange;reduce $his musculature.@@
-		<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].waist > -30>>
-		Hormonal effects cause $his @@.lime;waist to narrow.@@
-		<<set $slaves[$i].waist -= 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if _effBreastSize < 0.9*_normBreasts>>	/* Grow to 90% of normBreasts */
-			Hormonal effects cause @@.lime;a small amount of natural breast growth.@@
-			<<set $slaves[$i].boobs += 25>>
-		<</if>>
-		<<if $slaves[$i].nipples == "tiny">>
-			Hormonal effects cause $his tiny @@.lime;nipples to grow to a more normal size.@@
-			<<set $slaves[$i].nipples = "cute">>
-		<</if>>
-		<<if _effButtSize < Math.trunc(4.5*_normButt)/5>>	/* 90% of normButt, rounded down to the next increment of .2 */
-			Hormonal effects cause @@.lime;the natural size of $his butt to increase.@@
-			<<set $slaves[$i].butt += 0.2>>
-		<</if>>
-	<<else>>
-		$His @@.orange;NCS@@ blocks asset growth despite the fact that $his body is swimming in hormones.
-	<</if>>
-	<<if $slaves[$i].vagina > -1 && $slaves[$i].ovaries != 0 && $slaves[$i].vaginaLube < 2>>
-		Hormonal effects cause @@.lime;$his vagina to produce more copious natural lubricant.@@
-		<<set $slaves[$i].vaginaLube++>>
-	<</if>>
-
-	<<if $hormoneUpgradeShrinkage == 0>>
-		<<if $slaves[$i].dick > 1>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].dick > 2))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his dick to atrophy a lot.@@
-				<<set $slaves[$i].dick -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his dick to atrophy.@@
-			<</if>>
-			<<set $slaves[$i].dick-->>
-		<</if>>
-		<<if $slaves[$i].balls > 1>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].balls > 2))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his testicles to atrophy a lot.@@
-				<<set $slaves[$i].balls -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his testicles to atrophy.@@
-			<</if>>
-			<<set $slaves[$i].balls-->>
-		<</if>>
-		<<if $slaves[$i].clit > 0>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].clit > 1))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his clit to shrink down greatly.@@
-				<<set $slaves[$i].clit -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his clit to shrink significantly.@@
-			<</if>>
-			<<set $slaves[$i].clit-->>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].devotion <= 20>>
-		Hormonal effects make $him a bit more @@.hotpink;docile.@@
-		<<set $slaves[$i].devotion++>>
-	<</if>>
-	<<if $slaves[$i].trust <= 20>>
-		Hormonal effects make $him a bit more @@.mediumaquamarine;trusting.@@
-		<<set $slaves[$i].trust++>>
-	<</if>>
-	<<if $slaves[$i].attrXY < 100>>
-		Hormonal effects cause $him to become @@.green;more attracted to men.@@
-		<<set $slaves[$i].attrXY += 2+$hormoneUpgradePower>>
-	<</if>>
-<<elseif $slaves[$i].hormoneBalance >= 300>>
-
-	<<if $slaves[$i].faceImplant < 5>>
-		<<if ($slaves[$i].faceShape == "masculine")>>
-			Hormonal effects cause @@.orange;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike <</if>>androgyny.@@
-			<<set $slaves[$i].faceShape = "androgynous">>
-		<<elseif ($slaves[$i].faceShape == "androgynous" && $slaves[$i].geneticQuirks.androgyny != 2)>>
-			Hormonal effects cause @@.lime;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike normalcy<<else>>femininity<</if>>.@@
-			<<set $slaves[$i].faceShape = "normal">>
-		<<elseif (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].faceShape == "normal"))>>
-			Hormonal effects cause @@.lime;$his face to soften into childlike cuteness.@@
-			<<set $slaves[$i].faceShape = "cute">>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].face-$slaves[$i].faceImplant < 0) && ($slaves[$i].face < 60)>>
-		Hormonal effects cause @@.lime;$his facial structure to soften and become less unattractive.@@
-		<<set _faceInc = 1+$hormoneUpgradePower>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set _faceInc *= 2>>
-		<</if>>
-		<<= faceIncrease($slaves[$i], _faceInc)>>
-	<</if>>
-
-	<<if ($slaves[$i].voice < 3) && ($slaves[$i].voice > 0)>>
-		Hormonal effects cause @@.lime;$his voice to become higher and more <<if $slaves[$i].geneMods.NCS == 1>>childlike<<else>>feminine<</if>>.@@
-		<<set $slaves[$i].voice++>>
-	<</if>>
-
-	<<if $slaves[$i].muscles > 30 && $slaves[$i].diet != "muscle building" && $slaves[$i].drugs != "steroids">>
-		Hormonal effects @@.orange;reduce $his musculature.@@
-		<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].waist > -10>>
-		Hormonal effects cause $his @@.lime;waist to narrow.@@
-		<<set $slaves[$i].waist -= 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if _effBreastSize < 0.8*_normBreasts>>	/* Grow to 80% of expected */
-			Hormonal effects cause @@.lime;a small amount of natural breast growth.@@
-			<<set $slaves[$i].boobs += 25>>
-		<</if>>
-		<<if $slaves[$i].nipples == "tiny">>
-			Hormonal effects cause $his tiny @@.lime;nipples to grow to a more normal size.@@
-			<<set $slaves[$i].nipples = "cute">>
-		<</if>>
-		<<if _effButtSize < Math.trunc(4*_normButt)/5>>	/* 80% of normButt, rounded down to the next increment of .2 */
-			Hormonal effects cause @@.lime;the natural size of $his butt to increase.@@
-			<<set $slaves[$i].butt += 0.2>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].vagina > -1 && $slaves[$i].ovaries != 0 && $slaves[$i].vaginaLube < 2>>
-		Hormonal effects cause @@.lime;$his vagina to produce more copious natural lubricant.@@
-		<<set $slaves[$i].vaginaLube++>>
-	<</if>>
-
-	<<if $hormoneUpgradeShrinkage == 0>>
-		<<if $slaves[$i].dick > 1>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].dick > 2))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his dick to atrophy a lot.@@
-				<<set $slaves[$i].dick -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his dick to atrophy.@@
-			<</if>>
-			<<set $slaves[$i].dick-->>
-		<</if>>
-		<<if $slaves[$i].balls > 1>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].balls > 2))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his testicles to atrophy a lot.@@
-				<<set $slaves[$i].balls -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his testicles to atrophy.@@
-			<</if>>
-			<<set $slaves[$i].balls-->>
-		<</if>>
-		<<if $slaves[$i].clit > 0>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].clit > 1))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his clit to shrink down greatly.@@
-				<<set $slaves[$i].clit -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his clit to shrink significantly.@@
-			<</if>>
-			<<set $slaves[$i].clit-->>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].devotion <= 20>>
-		Hormonal effects make $him a bit more @@.hotpink;docile.@@
-		<<set $slaves[$i].devotion++>>
-	<</if>>
-	<<if $slaves[$i].trust <= 20>>
-		Hormonal effects make $him a bit more @@.mediumaquamarine;trusting.@@
-		<<set $slaves[$i].trust++>>
-	<</if>>
-	<<if $slaves[$i].attrXY < 100>>
-		Hormonal effects cause $him to become @@.green;more attracted to men.@@
-		<<set $slaves[$i].attrXY += 2+$hormoneUpgradePower>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance >= 250>>
-
-	<<if $slaves[$i].faceImplant < 5>>
-		<<if ($slaves[$i].faceShape == "masculine")>>
-			Hormonal effects cause @@.orange;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike <</if>>androgyny.@@
-			<<set $slaves[$i].faceShape = "androgynous">>
-		<<elseif ($slaves[$i].faceShape == "androgynous" && $slaves[$i].geneticQuirks.androgyny != 2)>>
-			Hormonal effects cause @@.lime;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike normalcy<<else>>femininity<</if>>.@@
-			<<set $slaves[$i].faceShape = "normal">>
-		<<elseif ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].faceShape == "normal")>>
-			Hormonal effects cause @@.lime;$his face to soften into childlike cuteness.@@
-			<<set $slaves[$i].faceShape = "cute">>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].face-$slaves[$i].faceImplant < 0) && ($slaves[$i].face < 30)>>
-		Hormonal effects cause @@.lime;$his facial structure to soften and become less unattractive.@@
-		<<set _faceInc = 1+$hormoneUpgradePower>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set _faceInc *= 2>>
-		<</if>>
-		<<= faceIncrease($slaves[$i], _faceInc)>>
-	<</if>>
-
-	<<if ($slaves[$i].voice < 2) && ($slaves[$i].voice > 0)>>
-		Hormonal effects cause @@.lime;$his voice to become higher and more <<if $slaves[$i].geneMods.NCS == 1>>childlike<<else>>feminine<</if>>.@@
-		<<set $slaves[$i].voice++>>
-	<</if>>
-
-	<<if $slaves[$i].muscles > 30 && $slaves[$i].diet != "muscle building" && $slaves[$i].drugs != "steroids">>
-		Hormonal effects @@.orange;reduce $his musculature.@@
-		<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].waist > 0>>
-		Hormonal effects cause $his @@.lime;waist to narrow.@@
-		<<set $slaves[$i].waist -= 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if _effBreastSize < 0.7*_normBreasts>>	/* Grow to 70% of expected */
-			Hormonal effects cause @@.lime;a small amount of natural breast growth.@@
-			<<set $slaves[$i].boobs += 25>>
-		<</if>>
-		<<if $slaves[$i].nipples == "tiny">>
-			Hormonal effects cause $his tiny @@.lime;nipples to grow to a more normal size.@@
-			<<set $slaves[$i].nipples = "cute">>
-		<</if>>
-		<<if _effButtSize < Math.trunc(3.5*_normButt)/5>>	/* 70% of normButt, rounded down to the next increment of .2 */
-			Hormonal effects cause @@.lime;the natural size of $his butt to increase.@@
-			<<set $slaves[$i].butt += 0.2>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].vagina > -1 && $slaves[$i].ovaries != 0 && $slaves[$i].vaginaLube < 1>>
-		Hormonal effects cause @@.lime;$his vagina to produce more copious natural lubricant.@@
-		<<set $slaves[$i].vaginaLube++>>
-	<</if>>
-
-	<<if $hormoneUpgradeShrinkage == 0>>
-		<<if $slaves[$i].dick > 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his dick to atrophy a lot.@@
-				<<set $slaves[$i].dick -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his dick to atrophy.@@
-			<</if>>
-			<<set $slaves[$i].dick-->>
-		<</if>>
-		<<if $slaves[$i].balls > 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his testicles to atrophy a lot.@@
-				<<set $slaves[$i].balls -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his testicles to atrophy.@@
-			<</if>>
-			<<set $slaves[$i].balls-->>
-		<</if>>
-		<<if $slaves[$i].clit > 1>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his clit to shrink down greatly.@@
-				<<set $slaves[$i].clit -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his clit to shrink significantly.@@
-			<</if>>
-			<<set $slaves[$i].clit-->>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].devotion <= 20>>
-		Hormonal effects make $him a bit more @@.hotpink;docile.@@
-		<<set $slaves[$i].devotion++>>
-	<</if>>
-	<<if $slaves[$i].trust <= 20>>
-		Hormonal effects make $him a bit more @@.mediumaquamarine;trusting.@@
-		<<set $slaves[$i].trust++>>
-	<</if>>
-	<<if $slaves[$i].attrXY < 95>>
-		Hormonal effects cause $him to become @@.green;more attracted to men.@@
-		<<set $slaves[$i].attrXY += 2+$hormoneUpgradePower>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance >= 200>>
-
-	<<if $slaves[$i].faceImplant < 5>>
-		<<if ($slaves[$i].faceShape == "masculine")>>
-			Hormonal effects cause @@.orange;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike <</if>>androgyny.@@
-			<<set $slaves[$i].faceShape = "androgynous">>
-		<<elseif ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].faceShape == "androgynous" && $slaves[$i].geneticQuirks.androgyny != 2)>>
-			Hormonal effects cause @@.lime;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike normalcy<<else>>femininity<</if>>.@@
-			<<set $slaves[$i].faceShape = "normal">>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].face-$slaves[$i].faceImplant < 0) && ($slaves[$i].face < 0)>>
-		Hormonal effects cause @@.lime;$his facial structure to soften and become less unattractive.@@
-		<<set _faceInc = 1+$hormoneUpgradePower>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set _faceInc *= 2>>
-		<</if>>
-		<<= faceIncrease($slaves[$i], _faceInc)>>
-	<</if>>
-
-	<<if ($slaves[$i].voice < 2) && ($slaves[$i].voice > 0)>>
-		Hormonal effects cause @@.lime;$his voice to become higher and more <<if $slaves[$i].geneMods.NCS == 1>>childlike<<else>>feminine<</if>>.@@
-		<<set $slaves[$i].voice++>>
-	<</if>>
-
-	<<if $slaves[$i].muscles > 30 && $slaves[$i].diet != "muscle building" && $slaves[$i].drugs != "steroids">>
-		Hormonal effects @@.orange;reduce $his musculature.@@
-		<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50)>>
-			<<set $slaves[$i].muscles -= 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mLoss>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].waist > 10>>
-		Hormonal effects cause $his @@.lime;waist to narrow.@@
-		<<set $slaves[$i].waist -= 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if _effBreastSize < 0.6*_normBreasts>>	/* Grow to 60% of expected */
-			Hormonal effects cause @@.lime;a small amount of natural breast growth.@@
-			<<set $slaves[$i].boobs += 25>>
-		<</if>>
-		<<if $slaves[$i].nipples == "tiny">>
-			Hormonal effects cause $his tiny @@.lime;nipples to grow to a more normal size.@@
-			<<set $slaves[$i].nipples = "cute">>
-		<</if>>
-		<<if _effButtSize < Math.trunc(3*_normButt)/5>>	/* 60% of normButt, rounded down to the next increment of .2 */
-			Hormonal effects cause @@.lime;the natural size of $his butt to increase.@@
-			<<set $slaves[$i].butt += 0.2>>
-		<</if>>
-	<</if>>
-	<<if $slaves[$i].vagina > -1 && $slaves[$i].ovaries != 0 && $slaves[$i].vaginaLube < 1>>
-		Hormonal effects cause @@.lime;$his vagina to produce more copious natural lubricant.@@
-		<<set $slaves[$i].vaginaLube++>>
-	<</if>>
-
-	<<if $hormoneUpgradeShrinkage == 0>>
-		<<if $slaves[$i].dick > 3>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his dick to atrophy a lot.@@
-				<<set $slaves[$i].dick -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his dick to atrophy.@@
-				<<set $slaves[$i].dick-->>
-			<</if>>
-		<</if>>
-		<<if $slaves[$i].balls > 3>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his testicles to atrophy a lot.@@
-				<<set $slaves[$i].balls -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his testicles to atrophy.@@
-			<</if>>
-			<<set $slaves[$i].balls-->>
-		<</if>>
-		<<if $slaves[$i].clit > 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his clit to shrink down greatly.@@
-				<<set $slaves[$i].clit -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;$his clit to shrink significantly.@@
-			<</if>>
-			<<set $slaves[$i].clit-->>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].devotion <= 20>>
-		Hormonal effects make $him a bit more @@.hotpink;docile.@@
-		<<set $slaves[$i].devotion++>>
-	<</if>>
-	<<if $slaves[$i].trust <= 20>>
-		Hormonal effects make $him a bit more @@.mediumaquamarine;trusting.@@
-		<<set $slaves[$i].trust++>>
-	<</if>>
-	<<if $slaves[$i].attrXY < 90>>
-		Hormonal effects cause $him to become @@.green;more attracted to men.@@
-		<<set $slaves[$i].attrXY += 2+$hormoneUpgradePower>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance >= 100>>
-
-	<<if $slaves[$i].faceImplant < 5>>
-		<<if ($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].faceShape == "masculine")>>
-			Hormonal effects cause @@.orange;$his face to soften into <<if $slaves[$i].geneMods.NCS == 1>>childlike <</if>>androgyny.@@
-			<<set $slaves[$i].faceShape = "androgynous">>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if _effBreastSize < 0.5*_normBreasts>>	/* Grow to 50% of expected */
-			Hormonal effects cause @@.lime;a small amount of natural breast growth.@@
-			<<set $slaves[$i].boobs += 25>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].devotion <= 20)>>
-		Hormonal effects make $him a bit more @@.hotpink;docile.@@
-		<<set $slaves[$i].devotion++>>
-	<</if>>
-	<<if ($slaves[$i].trust <= 20)>>
-		Hormonal effects make $him a bit more @@.mediumaquamarine;trusting.@@
-		<<set $slaves[$i].trust++>>
-	<</if>>
-	<<if ($slaves[$i].attrXY < 80)>>
-		Hormonal effects cause $him to become @@.green;more attracted to men.@@
-		<<set $slaves[$i].attrXY += 2+$hormoneUpgradePower>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance >= 50>>
-	<<if ($slaves[$i].attrXY < 70)>>
-		Hormonal effects cause $him to become @@.green;more attracted to men.@@
-		<<set $slaves[$i].attrXY += 2+$hormoneUpgradePower>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance <= -350>>
-	<<if ($slaves[$i].geneMods.NCS == 1)>>
-		<<if ($slaves[$i].hips+(Math.abs($slaves[$i].hipsImplant)) > -1) && ($slaves[$i].hips > -2) && (random(1,100) <= 20+(10*$hormoneUpgradePower))>>
-			Masculine hormones team up with $his @@.orange;NCS@@ to cause @@.lime;$his hips to shrink into a more childlike narrowness@@ than before.
-			<<set $slaves[$i].hips -= 1>>
-		<</if>>
-	<<elseif ($slaves[$i].physicalAge < 25)>>
-		<<if ($slaves[$i].shoulders-(Math.abs($slaves[$i].shouldersImplant)) < 1) && ($slaves[$i].shoulders < 2) && (random(1,100) < 20+(10*$hormoneUpgradePower))>>
-			$His body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause @@.orange;$his shoulders to develop a more masculine wideness@@ than they would have done naturally.
-			<<set $slaves[$i].shoulders += 1>>
-		<</if>>
-		<<if ($slaves[$i].hips+(Math.abs($slaves[$i].hipsImplant)) > -1) && ($slaves[$i].hips > -2) && (random(1,100) <= 20+(10*$hormoneUpgradePower))>>
-			$His body has not yet found its final bone structure, which typically happens in the mid-twenties. Hormonal effects cause @@.orange;$his hips to develop more narrowly@@ than they would have done naturally.
-			<<set $slaves[$i].hips -= 1>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].geneMods.NCS == 0)>>
-		<<if $slaves[$i].faceImplant < 5>>
-			<<if $slaves[$i].geneticQuirks.androgyny != 2>>
-				<<if ($slaves[$i].faceShape == "androgynous")>>
-					Hormonal effects cause @@.orange;$his face to harden into masculinity.@@
-					<<set $slaves[$i].faceShape = "masculine">>
-				<<elseif ($slaves[$i].faceShape != "masculine")>>
-					Hormonal effects cause @@.orange;$his face to harden into androgyny.@@
-					<<set $slaves[$i].faceShape = "androgynous">>
-				<</if>>
-			<</if>>
-		<</if>>
-		<<if (($slaves[$i].face-$slaves[$i].faceImplant > 0) && ($slaves[$i].face-$slaves[$i].faceImplant < 100))>>
-			Hormonal effects cause @@.orange;$his facial structure to harden and become less attractive.@@
-			<<set _faceDec = 1+$hormoneUpgradePower>>
-			<<set $slaves[$i].face = Math.trunc($slaves[$i].face-_faceDec,-100,100)>>
-		<</if>>
-		<<if ($slaves[$i].voice > 1)>>
-			Hormonal effects cause @@.orange;$his voice to become deeper and less feminine.@@
-			<<set $slaves[$i].voice-->>
-		<</if>>
-	<</if>>
-
-	<<if ($hormoneUpgradeShrinkage == 0)>>
-		<<if (($slaves[$i].butt-$slaves[$i].buttImplant) > 1) && _rearQuirk != 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].butt > 2))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his butt to decrease a lot.@@
-				<<set $slaves[$i].butt -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his butt to decrease.@@
-			<</if>>
-			<<set $slaves[$i].butt-->>
-		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 100*_gigantomastiaMod && _gigantomastiaMod != 3)>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].boobsImplant > 200))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his tits to shrink a lot.@@
-				<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his tits to shrink.@@
-			<</if>>
-			<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].nipples == "tiny")>>
-		/* nothing, just don't advance to cute */
-	<<elseif ($slaves[$i].nipples != "cute") && ($slaves[$i].nipples != "fuckable")>>
-		Hormonal effects cause $his @@.orange;nipples to shrink to a more masculine size.@@
-		<<set $slaves[$i].nipples = "cute">>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if ($slaves[$i].dick > 0) && ($slaves[$i].dick < 5)>>
-			Hormonal effects add @@.lime;a bit more heft to $his penis.@@
-			<<set $slaves[$i].dick++>>
-		<</if>>
-		<<if ($slaves[$i].balls > 0) && ($slaves[$i].balls < 5)>>
-			Hormonal effects cause @@.lime;$his balls to hang a little heavier.@@
-			<<set $slaves[$i].balls++>>
-		<</if>>
-
-		<<if ($slaves[$i].clit < 5) && ($slaves[$i].dick == 0)>>
-			Hormonal effects cause @@.lime;$his clit to grow significantly.@@
-			<<set $slaves[$i].clit++>>
-		<</if>>
-		<<if ($slaves[$i].vagina > -1) && ($slaves[$i].vaginaLube > 0)>>
-			Hormonal effects cause @@.orange;$his vagina to produce less natural lubricant.@@
-			<<set $slaves[$i].vaginaLube-->>
-		<</if>>
-
-		<<if ($slaves[$i].muscles <= 50) && ($slaves[$i].diet != "slimming")>>
-			Hormonal effects @@.lime;build up $his musculature.@@
-			<<set $slaves[$i].muscles += 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mGain>>
-		<</if>>
-		<<if ($slaves[$i].waist < 80)>>
-			Hormonal effects cause $his @@.orange;waist to broaden.@@
-			<<set $slaves[$i].waist += 2+$hormoneUpgradePower>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].attrXX < 100)>>
-		Hormonal effects cause $him to become @@.green;more attracted to women.@@
-		<<set $slaves[$i].attrXX += 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if ($slaves[$i].devotion > 20) && $slaves[$i].trust <= 20>>
-		Hormonal effects @@.mediumorchid;make $him a bit less docile.@@
-		<<set $slaves[$i].devotion -= 1>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance <= -300>>
-	<<if ($slaves[$i].geneMods.NCS == 0)>>
-		<<if $slaves[$i].faceImplant < 5>>
-			<<if $slaves[$i].geneticQuirks.androgyny != 2>>
-				<<if ($slaves[$i].faceShape == "androgynous")>>
-					Hormonal effects cause @@.orange;$his face to harden into masculinity.@@
-					<<set $slaves[$i].faceShape = "masculine">>
-				<<elseif ($slaves[$i].faceShape != "masculine")>>
-					Hormonal effects cause @@.orange;$his face to harden into androgyny.@@
-					<<set $slaves[$i].faceShape = "androgynous">>
-				<</if>>
-			<</if>>
-		<</if>>
-		<<if (($slaves[$i].face-$slaves[$i].faceImplant > 0) && ($slaves[$i].face-$slaves[$i].faceImplant < 100))>>
-			Hormonal effects cause @@.orange;$his facial structure to harden and become less attractive.@@
-			<<set _faceDec = 1+$hormoneUpgradePower>>
-			<<set $slaves[$i].face = Math.trunc($slaves[$i].face-_faceDec,-100,100)>>
-		<</if>>
-
-		<<if ($slaves[$i].voice > 1)>>
-			Hormonal effects cause @@.orange;$his voice to become deeper and less feminine.@@
-			<<set $slaves[$i].voice-->>
-		<</if>>
-	<</if>>
-
-	<<if ($hormoneUpgradeShrinkage == 0)>>
-		<<if (($slaves[$i].butt-$slaves[$i].buttImplant) > 1) && _rearQuirk != 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50) && ($slaves[$i].butt > 2))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his butt to decrease a lot.@@
-				<<set $slaves[$i].butt -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his butt to decrease.@@
-			<</if>>
-			<<set $slaves[$i].butt-->>
-		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 300*_gigantomastiaMod && _gigantomastiaMod != 3)>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his tits to shrink a lot.@@
-				<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his tits to shrink.@@
-			<</if>>
-			<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].nipples == "tiny")>>
-		/* nothing, just don't advance to cute */
-	<<elseif ($slaves[$i].nipples != "cute") && ($slaves[$i].nipples != "fuckable")>>
-		Hormonal effects cause $his @@.orange;nipples to shrink to a more masculine size.@@
-		<<set $slaves[$i].nipples = "cute">>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if ($slaves[$i].dick > 0) && ($slaves[$i].dick < 5)>>
-			Hormonal effects add @@.lime;a bit more heft to $his penis.@@
-			<<set $slaves[$i].dick++>>
-		<</if>>
-		<<if ($slaves[$i].balls > 0) && ($slaves[$i].balls < 5) && $slaves[$i].ballType != "sterile">>
-			Hormonal effects cause @@.lime;$his balls to hang a little heavier.@@
-			<<set $slaves[$i].balls++>>
-		<</if>>
-
-		<<if ($slaves[$i].clit < 4) && ($slaves[$i].dick == 0)>>
-			Hormonal effects cause @@.lime;$his clit to grow significantly.@@
-			<<set $slaves[$i].clit++>>
-		<</if>>
-		<<if ($slaves[$i].vagina > -1) && ($slaves[$i].vaginaLube > 0)>>
-			Hormonal effects cause @@.orange;$his vagina to produce less natural lubricant.@@
-			<<set $slaves[$i].vaginaLube-->>
-		<</if>>
-
-		<<if ($slaves[$i].muscles <= 50) && ($slaves[$i].diet != "slimming")>>
-			Hormonal effects @@.lime;build up $his musculature.@@
-			<<set $slaves[$i].muscles += 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mGain>>
-		<</if>>
-		<<if ($slaves[$i].waist < 40)>>
-			Hormonal effects cause $his @@.orange;waist to broaden.@@
-			<<set $slaves[$i].waist += 2+$hormoneUpgradePower>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].attrXX < 100)>>
-		Hormonal effects cause $him to become @@.green;more attracted to women.@@
-		<<set $slaves[$i].attrXX += 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if ($slaves[$i].devotion > 20) && $slaves[$i].trust <= 20>>
-		Hormonal effects @@.mediumorchid;make $him a bit less docile.@@
-		<<set $slaves[$i].devotion -= 1>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance <= -250>>
-	<<if ($slaves[$i].geneMods.NCS == 0)>>
-		<<if $slaves[$i].faceImplant < 5>>
-			<<if $slaves[$i].faceShape != "masculine" && $slaves[$i].faceShape != "androgynous">>
-				Hormonal effects cause @@.orange;$his face to harden into androgyny.@@
-				<<set $slaves[$i].faceShape = "androgynous">>
-			<</if>>
-		<</if>>
-		<<if (($slaves[$i].face-$slaves[$i].faceImplant > 20) && ($slaves[$i].face-$slaves[$i].faceImplant < 100))>>
-			Hormonal effects cause @@.orange;$his facial structure to harden and become less attractive.@@
-			<<set _faceDec = 1+$hormoneUpgradePower>>
-			<<set $slaves[$i].face = Math.trunc($slaves[$i].face-_faceDec,-100,100)>>
-		<</if>>
-
-		<<if ($slaves[$i].voice > 1)>>
-			Hormonal effects cause @@.orange;$his voice to become deeper and less feminine.@@
-			<<set $slaves[$i].voice-->>
-		<</if>>
-	<</if>>
-
-	<<if ($hormoneUpgradeShrinkage == 0)>>
-		<<if (($slaves[$i].butt-$slaves[$i].buttImplant) > 2) && _rearQuirk != 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his butt to decrease a lot.@@
-				<<set $slaves[$i].butt -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his butt to decrease.@@
-			<</if>>
-			<<set $slaves[$i].butt-->>
-		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 400*_gigantomastiaMod && _gigantomastiaMod != 3)>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his tits to shrink a lot.@@
-				<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his tits to shrink.@@
-			<</if>>
-			<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].nipples == "tiny")>>
-		/* nothing, just don't advance to cute */
-	<<elseif ($slaves[$i].nipples != "cute") && ($slaves[$i].nipples != "fuckable")>>
-		Hormonal effects cause $his @@.orange;nipples to shrink to a more masculine size.@@
-		<<set $slaves[$i].nipples = "cute">>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if ($slaves[$i].dick > 0) && ($slaves[$i].dick < 4)>>
-			Hormonal effects add @@.lime;a bit more heft to $his penis.@@
-			<<set $slaves[$i].dick++>>
-		<</if>>
-		<<if ($slaves[$i].balls > 0) && ($slaves[$i].balls < 4) && $slaves[$i].ballType != "sterile">>
-			Hormonal effects cause @@.lime;$his balls to hang a little heavier.@@
-			<<set $slaves[$i].balls++>>
-		<</if>>
-
-		<<if ($slaves[$i].clit < 3) && ($slaves[$i].dick == 0)>>
-			Hormonal effects cause @@.lime;$his clit to grow significantly.@@
-			<<set $slaves[$i].clit++>>
-		<</if>>
-		<<if ($slaves[$i].vagina > -1) && ($slaves[$i].vaginaLube > 0)>>
-			Hormonal effects cause @@.orange;$his vagina to produce less natural lubricant.@@
-			<<set $slaves[$i].vaginaLube-->>
-		<</if>>
-
-		<<if ($slaves[$i].muscles <= 35) && ($slaves[$i].diet != "slimming")>>
-			Hormonal effects @@.lime;build up $his musculature.@@
-			<<set $slaves[$i].muscles += 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mGain>>
-		<</if>>
-		<<if ($slaves[$i].waist < 25)>>
-			Hormonal effects cause $his @@.orange;waist to broaden.@@
-			<<set $slaves[$i].waist += 2+$hormoneUpgradePower>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].attrXX < 95)>>
-		Hormonal effects cause $him to become @@.green;more attracted to women.@@
-		<<set $slaves[$i].attrXX += 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if ($slaves[$i].devotion > 20) && $slaves[$i].trust <= 20>>
-		Hormonal effects @@.mediumorchid;make $him a bit less docile.@@
-		<<set $slaves[$i].devotion -= 1>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance <= -200>>
-	<<if ($slaves[$i].geneMods.NCS == 0)>>
-		<<if $slaves[$i].faceImplant < 5>>
-			<<if $slaves[$i].faceShape != "masculine" && $slaves[$i].faceShape != "androgynous">>
-				Hormonal effects cause @@.orange;$his face to harden into androgyny.@@
-				<<set $slaves[$i].faceShape = "androgynous">>
-			<</if>>
-		<</if>>
-		<<if (($slaves[$i].face-$slaves[$i].faceImplant > 40) && ($slaves[$i].face-$slaves[$i].faceImplant < 100))>>
-			Hormonal effects cause @@.orange;$his facial structure to harden and become less attractive.@@
-			<<set _faceDec = 1+$hormoneUpgradePower>>
-			<<set $slaves[$i].face = Math.trunc($slaves[$i].face-_faceDec,-100,100)>>
-		<</if>>
-
-		<<if ($slaves[$i].voice > 2)>>
-			Hormonal effects cause @@.orange;$his voice to become deeper and less feminine.@@
-			<<set $slaves[$i].voice-->>
-		<</if>>
-	<</if>>
-
-	<<if ($hormoneUpgradeShrinkage == 0)>>
-		<<if (($slaves[$i].butt-$slaves[$i].buttImplant) > 3) && _rearQuirk != 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his butt to decrease a lot.@@
-				<<set $slaves[$i].butt -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his butt to decrease.@@
-			<</if>>
-			<<set $slaves[$i].butt-->>
-		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 600*_gigantomastiaMod && _gigantomastiaMod != 3)>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his tits to shrink a lot.@@
-				<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his tits to shrink.@@
-			<</if>>
-			<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-		<</if>>
-	<</if>>
-	<<if ($slaves[$i].nipples == "huge") || $slaves[$i].nipples == "puffy">>
-		Hormonal effects cause $his big @@.orange;nipples to shrink to a more reasonable size.@@
-		<<set $slaves[$i].nipples = "cute">>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if ($slaves[$i].dick > 0) && ($slaves[$i].dick < 3)>>
-			Hormonal effects add @@.lime;a bit more heft to $his penis.@@
-			<<set $slaves[$i].dick++>>
-		<</if>>
-		<<if ($slaves[$i].balls > 0) && ($slaves[$i].balls < 3) && $slaves[$i].ballType != "sterile">>
-			Hormonal effects cause @@.lime;$his balls to hang a little heavier.@@
-			<<set $slaves[$i].balls++>>
-		<</if>>
-
-		<<if ($slaves[$i].clit < 2) && ($slaves[$i].dick == 0)>>
-			Hormonal effects cause @@.lime;$his clit to grow significantly.@@
-			<<set $slaves[$i].clit++>>
-		<</if>>
-		<<if ($slaves[$i].vagina > -1) && ($slaves[$i].vaginaLube > 0)>>
-			Hormonal effects cause @@.orange;$his vagina to produce less natural lubricant.@@
-			<<set $slaves[$i].vaginaLube-->>
-		<</if>>
-
-		<<if ($slaves[$i].muscles <= 15) && ($slaves[$i].diet != "slimming")>>
-			Hormonal effects @@.lime;build up $his musculature.@@
-			<<set $slaves[$i].muscles += 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mGain>>
-		<</if>>
-		<<if ($slaves[$i].waist < 9)>>
-			Hormonal effects cause $his @@.orange;waist to broaden.@@
-			<<set $slaves[$i].waist += 2+$hormoneUpgradePower>>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].attrXX < 90)>>
-		Hormonal effects cause $him to become @@.green;more attracted to women.@@
-		<<set $slaves[$i].attrXX += 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if ($slaves[$i].devotion > 20) && $slaves[$i].trust <= 20>>
-		Hormonal effects @@.mediumorchid;make $him a bit less docile.@@
-		<<set $slaves[$i].devotion -= 1>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance <= -100>>
-	<<if ($slaves[$i].geneMods.NCS == 0)>>
-		<<if (($slaves[$i].face-$slaves[$i].faceImplant > 60) && ($slaves[$i].face-$slaves[$i].faceImplant < 100))>>
-			Hormonal effects cause @@.orange;$his facial structure to harden and become less attractive.@@
-			<<set _faceDec = 1+$hormoneUpgradePower>>
-			<<set $slaves[$i].face = Math.trunc($slaves[$i].face-_faceDec,-100,100)>>
-		<</if>>
-
-		<<if ($slaves[$i].voice > 2)>>
-			Hormonal effects cause @@.orange;$his voice to become deeper and less feminine.@@
-			<<set $slaves[$i].voice-->>
-		<</if>>
-	<</if>>
-
-	<<if ($hormoneUpgradeShrinkage == 0)>>
-		<<if (($slaves[$i].butt-$slaves[$i].buttImplant) > 4) && _rearQuirk != 2>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his butt to decrease a lot.@@
-				<<set $slaves[$i].butt -= 1>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his butt to decrease.@@
-			<</if>>
-			<<set $slaves[$i].butt-->>
-		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 800*_gigantomastiaMod && _gigantomastiaMod != 3)>>
-			<<if (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 50))>>
-				Hormonal effects work with $his @@.orange;NCS@@ and cause @@.orange;$his tits to shrink a lot.@@
-				<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-			<<else>>
-				Hormonal effects cause @@.orange;the natural size of $his tits to shrink.@@
-			<</if>>
-			<<set $slaves[$i].boobs -= 10+(15*$hormoneUpgradePower)>>
-		<</if>>
-	<</if>>
-
-	<<if $slaves[$i].geneMods.NCS == 0>>
-		<<if ($slaves[$i].muscles < 0) && ($slaves[$i].diet != "slimming")>>
-			Hormonal effects @@.lime;build up $his musculature.@@
-			<<set $slaves[$i].muscles += 2+$hormoneUpgradePower+$slaves[$i].geneticQuirks.mGain>>
-		<</if>>
-
-		<<if ($slaves[$i].waist < 0)>>
-			Hormonal effects cause $his @@.orange;waist to broaden.@@
-			<<set $slaves[$i].waist += 2+$hormoneUpgradePower>>
-		<</if>>
-
-		<<if ($slaves[$i].dick > 0) && ($slaves[$i].dick < 2)>>
-			Hormonal effects cause @@.lime;$his micropenis to return to a more normal size.@@
-			<<set $slaves[$i].dick++>>
-		<</if>>
-		<<if ($slaves[$i].balls > 0) && ($slaves[$i].balls < 2)>>
-			Hormonal effects cause @@.lime;$his balls to drop.@@
-			<<set $slaves[$i].balls++>>
-		<</if>>
-
-		<<if ($slaves[$i].clit < 1) && ($slaves[$i].dick == 0)>>
-			Hormonal effects cause @@.lime;$his clit to grow significantly.@@
-			<<set $slaves[$i].clit++>>
-		<</if>>
-		<<if ($slaves[$i].vagina > -1) && ($slaves[$i].vaginaLube > 1)>>
-			Hormonal effects cause @@.orange;$his vagina to produce less natural lubricant.@@
-			<<set $slaves[$i].vaginaLube-->>
-		<</if>>
-	<</if>>
-
-	<<if ($slaves[$i].attrXX < 80)>>
-		Hormonal effects cause $him to become @@.green;more attracted to women.@@
-		<<set $slaves[$i].attrXX += 2+$hormoneUpgradePower>>
-	<</if>>
-
-	<<if ($slaves[$i].devotion > 20) && $slaves[$i].trust <= 20>>
-		Hormonal effects @@.mediumorchid;make $him a bit less docile.@@
-		<<set $slaves[$i].devotion -= 1>>
-	<</if>>
-
-<<elseif $slaves[$i].hormoneBalance <= -50>>
-	<<if ($slaves[$i].attrXX < 70)>>
-		Hormonal effects cause $him to become @@.green;more attracted to women.@@
-		<<set $slaves[$i].attrXX += 2+$hormoneUpgradePower>>
-	<</if>>
-
-<</if>>
-
-<</if>>
-<</if>>
-
-<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
-	<<if ($slaves[$i].hormoneBalance <= 20) && $slaves[$i].hormones < 1>>
-		<<if ($slaves[$i].dick > 0)>>
-			<<if ($slaves[$i].devotion > 20)>>
-				<<if ($slaves[$i].boobs < 800 && $slaves[$i].butt < 3) || ($slaves[$i].faceShape == "masculine") || ($slaves[$i].shoulders > $slaves[$i].hips) || ($slaves[$i].balls > 4)>>
-					<<if ($slaves[$i].career == "a Futanari Sister")>>
-						$He wishes $he were more feminine, but isn't unhappy to be off hormones, since $he likes being a stiff dicked futa.
-					<<elseif ($slaves[$i].fetish == "buttslut") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
-						$He wishes $he were more feminine, but $he loves getting fucked in the butt so much that it doesn't much bother $him.
-					<<elseif ($slaves[$i].fetish == "sadist") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
-						Life is easier for effeminate slaves, but $he loves abusing other slaves so much that $he likes being able to get hard.
-					<<elseif ($slaves[$i].fetish == "dom") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
-						Life is easier for effeminate slaves, but $he loves dominating other girls so much that $he likes being able to get hard.
-					<<elseif ($slaves[$i].energy > 95)>>
-						$He wishes $he were more feminine, but $he loves getting fucked like a good little sex slave so much that $he doesn't think about it much.
-					<<elseif ($slaves[$i].devotion <= 20)>>
-						Life is easier for effeminate slaves, so @@.mediumorchid;$he's a little unhappy@@ that $he isn't getting hormones to make $him more feminine.
-						<<set $slaves[$i].devotion -= 2>>
-					<<elseif ($slaves[$i].devotion <= 50)>>
-						$He wants to be a good slave girl, so @@.mediumorchid;$he's a little unhappy@@ that $he isn't getting hormones to make $him look more feminine.
-						<<set $slaves[$i].devotion -= 2>>
-					<<else>>
-						$He wishes $he were more feminine, but $he accepts your judgment in not giving $him hormones to make that happen.
-					<</if>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-
-<<if Math.abs($slaves[$i].hormones) > 1>>
-	<<set $slaves[$i].chem += 0.5>>
-<</if>>
-
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 3d41045f0333db2ead5414dea8ad205e79d3521b..0e86c9a17f55e3d6c32ea9909e183443b8d1ed32 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -3472,7 +3472,7 @@
 	<</if>>
 <</if>>
 <<if $slaves[$i].drugs != "hormone blockers">>
-	<<include "SA hormone effects">>
+	<<= saHormonesEffects($slaves[$i])>>
 <<elseif $slaves[$i].drugs == "hormone blockers">>
 	The hormone blockers $he is on suppress $his hormones, natural or not.
 	<<if $slaves[$i].energy > 20>>