diff --git a/src/js/utilsFC.js b/src/js/utilsFC.js
index b9d78538af1a29e290e297228842f5f813d9d36e..027493e3581d47792cd4c05ab4108728bd65432e 100644
--- a/src/js/utilsFC.js
+++ b/src/js/utilsFC.js
@@ -1579,13 +1579,36 @@ globalThis.lengthToEitherUnit = function(length) {
 globalThis.induceLactation = function(slave) {
 	const {His} = getPronouns(slave);
 	let r = "";
-	if (slave.induceLactation >= 10) {
-		if (jsRandom(1, 100) < slave.induceLactation) {
-			r += `${His} breasts have been stimulated often enough to <span class="lime">induce lactation.</span>`;
-			slave.induceLactation = 0;
-			slave.lactationDuration = 2;
-			slave.lactation = 1;
-		}
+	let lactationStartChance = jsRandom(10, 100);
+	if (slave.boobs < 300) {
+		lactationStartChance *= 1.5;
+	} else if (slave.boobs < 400 || slave.boobs >= 5000) {
+		lactationStartChance *= 1.2;
+	}
+	if (slave.pubertyXX === 0) {
+		lactationStartChance *= 1.5;
+	}
+	if (slave.preg > (slave.pregData.normalBirth / 1.33)) {
+		lactationStartChance *= .5;
+	}
+	if (slave.health.condition < -20) {
+		lactationStartChance *= 2;
+	}
+	if (slave.weight <= -30) {
+		lactationStartChance *= 1.5;
+	}
+	if (slave.boobsImplant > 0) {
+		lactationStartChance *= (1 + (slave.boobsImplant / slave.boobs));
+	}
+	if (slave.lactationAdaptation > 0) {
+		lactationStartChance = (lactationStartChance / (slave.lactationAdaptation / 10));
+	}
+	lactationStartChance = Math.floor(lactationStartChance);
+	if (slave.induceLactation >= lactationStartChance) {
+		r += `${His} breasts have been stimulated often enough to <span class="lime">induce lactation.</span>`;
+		slave.induceLactation = 0;
+		slave.lactationDuration = 2;
+		slave.lactation = 1;
 	}
 	return r;
 };