diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 48e3f4b3c3dce16ce2a4e2a06510eec064cc28f7..9f9929337b7b6379f603d30b75ef03de1d54e7b3 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -621,7 +621,7 @@ window.milkAmount = function(slave) {
 	if (!slave) {
 		return null;
 	} else {
-		calcs = slave.boobs-slave.boobsImplant
+		calcs = slave.boobs-slave.boobsImplant-slave.boobsMilk
 		if (calcs > 40000) {
 			milk = (158+((calcs-10000)/600))
 		} else if (calcs > 25000) {
@@ -655,6 +655,7 @@ window.milkAmount = function(slave) {
 		milk *= (1+(slave.health/50))
 		milk *= (1+(slave.weight/500))
 		milk *= (1+(slave.lactationAdaptation/500))
+		milk += (slave.boobsMilk/10)
 		milk = Math.trunc(milk)
 		milk = Math.clamp(milk,1,1000000000000000000)
 		return milk
@@ -1993,7 +1994,7 @@ window.adjustFatherProperty = function(actor, property, newValue) {
 
 /* not to be used until that last part is defined. It may become slave.boobWomb.volume or some shit */
 window.getBaseBoobs = function(slave) {
-	return slave.boobs-slave.boobsImplant-slave.boobsWombVolume;
+	return slave.boobs-slave.boobsImplant-slave.boobsMilk-slave.boobsWombVolume;
 }
 
 /*:: SetBellySize [script]*/
@@ -4407,6 +4408,20 @@ window.removeDuplicates = function removeDuplicates(array) {
 	return [...new Set(array)];
 }
 
+window.induceLactation = function induceLactation(slave) {
+	let pronouns = getPronouns(slave);
+	let r = ``;
+	if (slave.induceLactation >= 10) {
+		if (jsRandom(1,100) < slave.induceLactation) {
+			r += `${His} breasts have been stimulated often enough to @@.lime;induce lactation.@@`
+			slave.induceLactation = 0;
+			slave.lactationDuration = 2;
+			slave.lactation = 1;
+		}
+	}
+	return r;
+}
+
 /*:: Span Macro JS [script]*/
 
 /*
@@ -6229,7 +6244,7 @@ if(eventSlave.fetish != "mindbroken") {
 				}
 
 				if(eventSlave.lactation > 0) {
-					if((eventSlave.boobs-eventSlave.boobsImplant) > 6000) {
+					if((eventSlave.boobs-eventSlave.boobsImplant-slave.boobsMilk) > 6000) {
 						if(eventSlave.assignment == "get milked") {
 							State.variables.events.push("RE legendary cow");
 						}
@@ -13106,6 +13121,11 @@ window.saServant = function saServant(slave) {
 			t += `and disobedient, ${he} is restrained to serve `;
 		}
 		t += `as a drink dispenser at mealtimes, and makes a meaningful contribution to ${his} fellow slaves' nutrition in concert with the feeding systems.`;
+		slave.lactationDuration = 2;
+		if (slave.boobsMilk > 0) {
+			slave.boobs -= slave.boobsMilk;
+			slave.boobsMilk = 0;
+		}
 	}
 
 	if (V.showVignettes == 1 && (slave.assignment === Job.SERVANT || slave.assignment === Job.SERVER)) {
@@ -15403,7 +15423,7 @@ window.DefaultRules = (function() {
 				} else if ((slave.boobs > parseInt(rule.growth_boobs)+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) {
 					_priority = {
 						drug: "breast redistributors",
-						weight: (1+((slave.boobs-slave.boobsImplant-rule.growth_boobs)/rule.growth_boobs)) };
+						weight: (1+((slave.boobs-slave.boobsImplant-slave.boobsMilk-rule.growth_boobs)/rule.growth_boobs)) };
 					_priorities.push(_priority);
 				}
 			}
@@ -15537,7 +15557,7 @@ window.DefaultRules = (function() {
 			}
 			if (V.arcologies[0].FSSlimnessEnthusiastResearch == 1) {
 				if (rule.growth_boobs != "no default setting") {
-					if (slave.boobs-slave.boobsImplant > parseInt(rule.growth_boobs)+200 && slave.weight < 100) {
+					if (slave.boobs-slave.boobsImplant-slave.boobsMilk > parseInt(rule.growth_boobs)+200 && slave.weight < 100) {
 						if (slave.drugs != "breast redistributors") {
 							slave.drugs = "breast redistributors";
 							r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
@@ -33127,6 +33147,7 @@ window.BaseSlave = function BaseSlave() {
 		shoulders: 0,
 		shouldersImplant: 0,
 		boobs: 0,
+		boobsMilk: 0,
 		boobsImplant: 0,
 		boobsImplantType: 0,
 		boobShape: "normal",
@@ -33138,6 +33159,8 @@ window.BaseSlave = function BaseSlave() {
 		areolaeShape: "circle",
 		boobsTat: 0,
 		lactation: 0,
+		lactationDuration: 0,
+		induceLactation: 0,
 		lactationAdaptation: 0,
 		milk: 0,
 		cum: 0,
@@ -36146,6 +36169,7 @@ window.slaveBoobsDatatypeCleanup = function slaveBoobsDatatypeCleanup(slave) {
 		slave.areolaeShape = "circle";
 	}
 	slave.lactation = Math.clamp(+slave.lactation, 0, 2) || 0;
+	slave.boobsMilk = Math.Max(+slave.boobsMilk, 0) || 0;
 	slave.lactationAdaptation = Math.clamp(+slave.lactationAdaptation, 0, 100) || 0;
 };
 
@@ -37140,6 +37164,8 @@ window.PCDatatypeCleanup = function PCDatatypeCleanup() {
 	PC.staminaPills = Math.clamp(+PC.staminaPills, 0, 1) || 0;
 	PC.storedCum = Math.max(+PC.storedCum, 0) || 0;
 	PC.mpreg = 0; /* So knockMeUp() may be used with the PC */
+	PC.lactation = Math.max(+PC.lactation, 0) || 0;
+	PC.lactationDuration = Math.max(+PC.lactationDuration, 0) || 0;
 
 	if (PC.age !== undefined) {
 		delete PC.age;
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 2332d9b39547b3c76a0622fbfa6a73287eade1ac..dd40052393f20a458f65c406d9bb01505ba27694 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1417,6 +1417,11 @@ slave boob size
 4700-5099 - S cup
 5100-10499- massive
 
+boobsMilk:
+
+breast engorgement from unmilked tits
+accepts int
+
 boobsImplant:
 
 slave implant size
@@ -1517,6 +1522,18 @@ slave lactation
 1 - natural
 2 - implant
 
+lactationDuration:
+
+how many more weeks until lactation dries up
+usually 2 as interactions and lact. implant reset it to 2
+accepts int
+
+induceLactation:
+
+odds of inducing lactation
+begins trying on breast play if over 10
+accepts int
+
 lactationAdaptation:
 
 0  - 10  - not used to producing milk (no bonuses)
diff --git a/src/endWeek/saServant.tw b/src/endWeek/saServant.tw
index 4b12c87a3ff8e45f9ba6725c5ee78c4793d64424..dab7851af7354f7f175a79ca68fe02ae73a0b645 100644
--- a/src/endWeek/saServant.tw
+++ b/src/endWeek/saServant.tw
@@ -104,6 +104,11 @@ window.saServant = function saServant(slave) {
 			t += `and disobedient, ${he} is restrained to serve `;
 		}
 		t += `as a drink dispenser at mealtimes, and makes a meaningful contribution to ${his} fellow slaves' nutrition in concert with the feeding systems.`;
+		slave.lactationDuration = 2;
+		if (slave.boobsMilk > 0) {
+			slave.boobs -= slave.boobsMilk;
+			slave.boobsMilk = 0;
+		}
 	}
 
 	if (V.showVignettes == 1 && (slave.assignment === Job.SERVANT || slave.assignment === Job.SERVER)) {
diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw
index 823cef231fc0865d828d99f5c0849e8a21f06e3e..f967bfd5286e10b3121c6aa8195485920b6399b3 100644
--- a/src/js/DefaultRules.tw
+++ b/src/js/DefaultRules.tw
@@ -1017,7 +1017,7 @@ window.DefaultRules = (function() {
 				} else if ((slave.boobs > parseInt(rule.growth_boobs)+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch == 1)) {
 					_priority = {
 						drug: "breast redistributors",
-						weight: (1+((slave.boobs-slave.boobsImplant-rule.growth_boobs)/rule.growth_boobs)) };
+						weight: (1+((slave.boobs-slave.boobsImplant-slave.boobsMilk-rule.growth_boobs)/rule.growth_boobs)) };
 					_priorities.push(_priority);
 				}
 			}
@@ -1151,7 +1151,7 @@ window.DefaultRules = (function() {
 			}
 			if (V.arcologies[0].FSSlimnessEnthusiastResearch == 1) {
 				if (rule.growth_boobs != "no default setting") {
-					if (slave.boobs-slave.boobsImplant > parseInt(rule.growth_boobs)+200 && slave.weight < 100) {
+					if (slave.boobs-slave.boobsImplant-slave.boobsMilk > parseInt(rule.growth_boobs)+200 && slave.weight < 100) {
 						if (slave.drugs != "breast redistributors") {
 							slave.drugs = "breast redistributors";
 							r += `<br>${slave.slaveName} has been put on ${slave.drugs}.`;
diff --git a/src/js/datatypeCleanupJS.tw b/src/js/datatypeCleanupJS.tw
index 3879d13b9bdfe197e6e6b5d6deefb047682468bb..c8dc0db4426b99d4d27403e82a1c1e742dd7822d 100644
--- a/src/js/datatypeCleanupJS.tw
+++ b/src/js/datatypeCleanupJS.tw
@@ -177,6 +177,7 @@ window.slaveBoobsDatatypeCleanup = function slaveBoobsDatatypeCleanup(slave) {
 		slave.areolaeShape = "circle";
 	}
 	slave.lactation = Math.clamp(+slave.lactation, 0, 2) || 0;
+	slave.boobsMilk = Math.Max(+slave.boobsMilk, 0) || 0;
 	slave.lactationAdaptation = Math.clamp(+slave.lactationAdaptation, 0, 100) || 0;
 };
 
@@ -1171,6 +1172,8 @@ window.PCDatatypeCleanup = function PCDatatypeCleanup() {
 	PC.staminaPills = Math.clamp(+PC.staminaPills, 0, 1) || 0;
 	PC.storedCum = Math.max(+PC.storedCum, 0) || 0;
 	PC.mpreg = 0; /* So knockMeUp() may be used with the PC */
+	PC.lactation = Math.max(+PC.lactation, 0) || 0;
+	PC.lactationDuration = Math.max(+PC.lactationDuration, 0) || 0;
 	
 	if (PC.age !== undefined) {
 		delete PC.age;
diff --git a/src/js/pregJS.tw b/src/js/pregJS.tw
index 9ef54e189296dd59563b7a722e47e3ea484fd862..98fbdbc3f825fb3ea59a19c567573fec4fd5467c 100644
--- a/src/js/pregJS.tw
+++ b/src/js/pregJS.tw
@@ -303,5 +303,5 @@ window.adjustFatherProperty = function(actor, property, newValue) {
 
 /* not to be used until that last part is defined. It may become slave.boobWomb.volume or some shit */
 window.getBaseBoobs = function(slave) {
-	return slave.boobs-slave.boobsImplant-slave.boobsWombVolume;
+	return slave.boobs-slave.boobsImplant-slave.boobsMilk-slave.boobsWombVolume;
 }
diff --git a/src/js/slaveGenerationJS.tw b/src/js/slaveGenerationJS.tw
index 81909bb0b411fdd20135d521a9cff2cd0ebf8d7a..94a529a73aa81aff069273a4144bd9b895250bcf 100644
--- a/src/js/slaveGenerationJS.tw
+++ b/src/js/slaveGenerationJS.tw
@@ -1512,6 +1512,7 @@ window.BaseSlave = function BaseSlave() {
 		shoulders: 0,
 		shouldersImplant: 0,
 		boobs: 0,
+		boobsMilk: 0,
 		boobsImplant: 0,
 		boobsImplantType: 0,
 		boobShape: "normal",
@@ -1523,6 +1524,8 @@ window.BaseSlave = function BaseSlave() {
 		areolaeShape: "circle",
 		boobsTat: 0,
 		lactation: 0,
+		lactationDuration: 0,
+		induceLactation: 0,
 		lactationAdaptation: 0,
 		milk: 0,
 		cum: 0,
diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw
index e42d3627a269030f92590ae273657d5c46dbff1e..a14f49208530e956c2665a7c1666d7d0162f040b 100644
--- a/src/js/storyJS.tw
+++ b/src/js/storyJS.tw
@@ -619,7 +619,7 @@ window.milkAmount = function(slave) {
 	if (!slave) {
 		return null;
 	} else {
-		calcs = slave.boobs-slave.boobsImplant
+		calcs = slave.boobs-slave.boobsImplant-slave.boobsMilk
 		if (calcs > 40000) {
 			milk = (158+((calcs-10000)/600))
 		} else if (calcs > 25000) {
@@ -653,6 +653,7 @@ window.milkAmount = function(slave) {
 		milk *= (1+(slave.health/50))
 		milk *= (1+(slave.weight/500))
 		milk *= (1+(slave.lactationAdaptation/500))
+		milk += (slave.boobsMilk/10)
 		milk = Math.trunc(milk)
 		milk = Math.clamp(milk,1,1000000000000000000)
 		return milk
diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw
index bfbaae8ae70690ce63e278088008d951ade4190f..f9a00b93e16b5585e0c98f519509fa25bb219952 100644
--- a/src/js/utilJS.tw
+++ b/src/js/utilJS.tw
@@ -1051,4 +1051,18 @@ window.ordinalSuffix = function ordinalSuffix(i) {
 
 window.removeDuplicates = function removeDuplicates(array) {
 	return [...new Set(array)];
+}
+
+window.induceLactation = function induceLactation(slave) {
+	let pronouns = getPronouns(slave);
+	let r = ``;
+	if (slave.induceLactation >= 10) {
+		if (jsRandom(1,100) < slave.induceLactation) {
+			r += `${His} breasts have been stimulated often enough to @@.lime;induce lactation.@@`
+			slave.induceLactation = 0;
+			slave.lactationDuration = 2;
+			slave.lactation = 1;
+		}
+	}
+	return r;
 }
\ No newline at end of file
diff --git a/src/npc/fSlaveImpregConsummate.tw b/src/npc/fSlaveImpregConsummate.tw
index a6e8b489dfc0d77cd563456f714d329ac298cd04..6affda51e71212a1a904956e778e450dee56e0e1 100644
--- a/src/npc/fSlaveImpregConsummate.tw
+++ b/src/npc/fSlaveImpregConsummate.tw
@@ -362,9 +362,9 @@ $activeSlave.slaveName and $impregnatrix.slaveName are likely to produce
 	middle height,
 <</if>>
 
-<<if (($activeSlave.boobs+$impregnatrix.boobs-$activeSlave.boobsImplant-$impregnatrix.boobsImplant) > 1500)>>
+<<if (($activeSlave.boobs+$impregnatrix.boobs-$activeSlave.boobsImplant-$impregnatrix.boobsImplant-$impregnatrix.boobsMilk) > 1500)>>
 	big-titted
-<<elseif (($activeSlave.boobs+$impregnatrix.boobs-$activeSlave.boobsImplant-$impregnatrix.boobsImplant) < 700)>>
+<<elseif (($activeSlave.boobs+$impregnatrix.boobs-$activeSlave.boobsImplant-$impregnatrix.boobsImplant-$impregnatrix.boobsMilk) < 700)>>
 	flat-chested
 <<else>>
 	moderately-breasted
diff --git a/src/pregmod/saAgent.tw b/src/pregmod/saAgent.tw
index 7ce552d6ebdaa0194c3c5466aee1abc6c1a340c9..af25ce2c30453159039bbbed2f68da18b8d9d251 100644
--- a/src/pregmod/saAgent.tw
+++ b/src/pregmod/saAgent.tw
@@ -224,6 +224,9 @@
 					<<set $slaves[$i].lactation = 1>>
 				<</if>>
 			<</if>>
+			<<if $slaves[$i].lactation == 1>>
+				<<set $slaves[$i].lactationDuration = 2>>
+			<</if>>
 		<</if>>
 	<</if>> /* closes .preg >= 10 */
 <</if>> /* END PREG EFFECTS */
@@ -431,6 +434,33 @@
 
 <<run SetBellySize($slaves[$i])>> /*Actually it's now better to set belly size without checking of any conditions. Just to be sure. Should correct forgotten variables too. */
 
+<<if ($slaves[$i].lactation == 1)>>
+	<<if $slaves[$i].fetish != "boobs">>
+		<<if $slaves[$i].lactationDuration == 0>>
+			<<set $slaves[$i].boobs -= $slaves[$i].boobsMilk>>
+			<<set $slaves[$i].boobsMilk = 0, $slaves[$i].lactation = 0>>
+		<<elseif $slaves[$i].lactationDuration == 1>>
+			<<set $slaves[$i].boobsMilk += 10*$slaves[$i].lactationAdaptation>>
+			<<set $slaves[$i].boobs += $slaves[$i].boobsMilk>>
+		<<else>>
+			<<set $slaves[$i].lactationDuration-->>
+		<</if>>
+	<<else>>
+		<<set $slaves[$i].lactationDuration = 2>>
+	<</if>>
+<<elseif $slaves[$i].lactation == 2>>
+	<<set $slaves[$i].lactationDuration = 2>>
+<<elseif $slaves[$i].fetish == "boobs" && $slaves[$i].boobs-$slaves[$i].boobsImplants >= 2000>>
+	<<set $slaves[$i].induceLactation += 2>>
+	<<if $slaves[$i].lactationDuration >= 20>>
+		<<set $slaves[$i].induceLactation = 0, $slaves[$i].lactationDuration = 2, $slaves[$i].lactation = 1>>
+	<</if>>
+<</if>>
+
+<<if $slaves[$i].induceLactation > 0>>
+	<<set $slaves[$i].induceLactation-->>
+<</if>>
+
 <<if ($slaves[$i].hStyle != "shaved" && $slaves[$i].bald != 1 && $slaves[$i].haircuts == 0) && ($slaves[$i].hLength < 150)>>
 	<<set $slaves[$i].hLength += 1>>
 <</if>>
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index 72bc9a5d5320bc748f5f1cf75ff45849e4b7d020..4a6f3aa76192f81a6261c8e4b1e03d936a471604 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -1,7 +1,7 @@
 :: pregmod widgets [nobr widget]
 
 <<widget "initPC">>
-	<<set $PC = {name: "Anonymous", surname: 0, title: 1, ID: -1, pronoun: "he", possessive: "him", object: "his", dick: 1, vagina: 0, preg: 0, pregType: 0, pregWeek: 0, pregKnown: 0, belly: 0, bellyPreg: 0, mpreg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, trading: 0, warfare: 0, slaving: 0, engineering: 0, medicine: 0, hacking: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", markings: "none", eyeColor: "blue", origEye: "blue", pupil: "circular", sclerae: "white", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0, birthCitizen: 0, birthSelf: 0, birthLab: 0, slavesFathered: 0, slavesKnockedUp: 0, intelligence: 100, face: 100, actualAge: 35, physicalAge: 35, visualAge: 35, boobsImplant: 0, butt: 0, buttImplant: 0, balls: 0, ballsImplant: 0, ageImplant: 0, newVag: 0, reservedChildren: 0, reservedChildrenNursery: 0, fertDrugs: 0, forcedFertDrugs: 0, staminaPills: 0, ovaryAge: 35, eggType: "human", ballType: "human", storedCum: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", fetish: "none", pubicHStyle: "hairless", underArmHStyle: "hairless", geneticQuirks: {macromastia: 0, gigantomastia: 0, fertility: 0, hyperFertility: 0, superfetation: 0, gigantism: 0, dwarfism: 0, pFace: 0, uFace: 0, albinism: 0, rearLipedema: 0, wellHung: 0, wGain: 0, wLoss: 0, androgyny: 0}}>>
+	<<set $PC = {name: "Anonymous", surname: 0, title: 1, ID: -1, pronoun: "he", possessive: "him", object: "his", dick: 1, vagina: 0, preg: 0, pregType: 0, pregWeek: 0, pregKnown: 0, belly: 0, bellyPreg: 0, mpreg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, lactation: 0, lactationDuration: 0, career: "capitalist", rumor: "wealth", birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, trading: 0, warfare: 0, slaving: 0, engineering: 0, medicine: 0, hacking: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", markings: "none", eyeColor: "blue", origEye: "blue", pupil: "circular", sclerae: "white", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0, birthCitizen: 0, birthSelf: 0, birthLab: 0, slavesFathered: 0, slavesKnockedUp: 0, intelligence: 100, face: 100, actualAge: 35, physicalAge: 35, visualAge: 35, boobsImplant: 0, butt: 0, buttImplant: 0, balls: 0, ballsImplant: 0, ageImplant: 0, newVag: 0, reservedChildren: 0, reservedChildrenNursery: 0, fertDrugs: 0, forcedFertDrugs: 0, staminaPills: 0, ovaryAge: 35, eggType: "human", ballType: "human", storedCum: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", fetish: "none", pubicHStyle: "hairless", underArmHStyle: "hairless", geneticQuirks: {macromastia: 0, gigantomastia: 0, fertility: 0, hyperFertility: 0, superfetation: 0, gigantism: 0, dwarfism: 0, pFace: 0, uFace: 0, albinism: 0, rearLipedema: 0, wellHung: 0, wGain: 0, wLoss: 0, androgyny: 0}}>>
 
 	<<set WombInit($PC)>>
 
@@ -110,6 +110,19 @@
 <<if def $args[0].superfetation>>
 	<<unset $args[0].superfetation>>
 <</if>>
+<<if ndef $args[0].lactationDuration>>
+	<<if $args[0].lactation == 0>>
+		<<set $args[0].lactationDuration = 0>>
+	<<else>>
+		<<set $args[0].lactationDuration = 2>>
+	<</if>>
+<</if>>
+<<if ndef $args[0].induceLactation>>
+	<<set $args[0].induceLactation = 0>>
+<</if>>
+<<if ndef $args[0].wombImplant>>
+	<<set $args[0].wombImplant = "none">>
+<</if>>
 
 <</widget>>
 
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index 7471800d36de1f2a7d6272e51fea8414d347f7de..8e5a2a03b8ac488430d71e11c2be577b070d50f6 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -319,7 +319,7 @@
 <<for _dI = 0; _dI < _DL; _dI++>>
 	<<set $i = $slaveIndices[$DairyiIDs[_dI]]>>
 	/* Special attention section */
-	<<if ($legendaryCowID == 0) && ($slaves[$i].lactation > 0) && (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 6000) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>>
+	<<if ($legendaryCowID == 0) && ($slaves[$i].lactation > 0) && (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 6000) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>>
 		<<set $legendaryCowID = $slaves[$i].ID>>
 	<</if>>
 	<<if ($legendaryBallsID == 0) && ($slaves[$i].dick != 0) && ($slaves[$i].balls > 5 || ($slaves[$i].balls > 4 && $slaves[$i].prostate > 1)) && ($slaves[$i].devotion > 50) && ($slaves[$i].prestige == 0)>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 51168ffc16452ee199a8d666a2d263f6ac8d6110..642407500e09d9d38b4563a9fdbbd8bae4333a89 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -498,9 +498,9 @@ Work on her chest:
 		<<if $activeSlave.nipples == "fuckable">>
 			[[Restore their shape and function|Surgery Degradation][$activeSlave.nipples = "huge",$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "areolae"]]
 		<<else>>
-			<<if $activeSlave.boobs < 500>>
+			<<if $activeSlave.boobs-$activeSlave.boobsMilk < 500>>
 				//$His breasts are too small to support reshaping $his nipples to be penetratable//
-			<<elseif $activeSlave.boobs-$activeSlave.boobsImplant < 500>>
+			<<elseif $activeSlave.boobs-$activeSlave.boobsImplant-$activeSlave.boobsMilk < 500>>
 				//$His implants are too large to support reshaping $his nipples to be penetratable//
 			<<elseif $activeSlave.nipples != "huge">>
 				//$His nipples are too small to be made fuckable//
@@ -1701,7 +1701,7 @@ Work on $him structurally:
 		$He is no longer in $his native body.
 	<</if>>
 	<<if $activeSlave.indenture == -1>>
-		[[Swap " + $his + " body with another of your stock's|Slave Slave Swap Workaround]]
+		[[Swap " + $his + " body with another of your stock|Slave Slave Swap Workaround]]
 	<<else>>
 		//Indentured servants must remain in their own bodies.//
 	<</if>>
diff --git a/src/uncategorized/saDiet.tw b/src/uncategorized/saDiet.tw
index 4da1b7854b534491ef2f72314dd37bde10f58a68..d53bb0a964940e978c441b4750f0cb78828c2768 100644
--- a/src/uncategorized/saDiet.tw
+++ b/src/uncategorized/saDiet.tw
@@ -114,7 +114,7 @@
 		$He @@.lime;loses weight.@@
 	<</if>>
 	<<set $slaves[$i].weight -= _weightLoss+($feeder*2)>>
-	<<if $slaves[$i].boobs-$slaves[$i].boobsImplant >= 200>>
+	<<if $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200>>
 		<<if (($slaves[$i].geneMods.NCS == 0) && (random(1,_assetLoss) <= 1+$feeder))>>
 			@@.orange;$His breasts get a little smaller.@@
 			<<set $slaves[$i].boobs -= 50>>
@@ -357,7 +357,7 @@
 		<<set $slaves[$i].muscles += 2>>
 	<</if>>
 	<<if ((($slaves[$i].geneMods.NCS == 0) && (random(1,100) > 90)) || (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 45)))>>
-		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 100)))>>
+		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 100)))>>
 			<<if ($slaves[$i].geneMods.NCS == 0)>>
 				@@.orange;$His breasts get a little smaller.@@
 				<<set $slaves[$i].boobs -= 50>>
@@ -423,7 +423,7 @@
 			<<set $slaves[$i].muscles -= 2>>
 		<</if>>
 		<<if ((($slaves[$i].geneMods.NCS == 0) && (random(1,100) > 90)) || (($slaves[$i].geneMods.NCS == 1) && (random(1,100) > 45)))>>
-			<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 100)))>>
+			<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 100)))>>
 				<<if ($slaves[$i].geneMods.NCS == 0)>>
 					@@.orange;$His breasts get a little smaller.@@
 					<<set $slaves[$i].boobs -= 50>>
@@ -459,7 +459,7 @@
 			Since $he is rather weak, $his routine slowly tones $his soft muscles.
 			<<set $slaves[$i].muscles++>>
 		<</if>>
-		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 100)))>>
+		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 100)))>>
 			<<if ($slaves[$i].geneMods.NCS == 0)>>
 				@@.orange;$His breasts get a little smaller.@@
 				<<set $slaves[$i].boobs -= 50>>
@@ -643,7 +643,7 @@
 			$His balls @@.lime;swell@@ due to the male hormones in $his diet.
 			<<set $slaves[$i].balls += 1>>
 		<</if>>
-		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant > 400)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 20)))>>
+		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 400)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 20)))>>
 			$His breasts @@.orange;lose some mass@@ from the lack of estrogen in $his diet.
 			<<set $slaves[$i].boobs -= 10>>
 			<<if ($slaves[$i].geneMods.NCS == 1)>>
@@ -663,7 +663,7 @@
 			Hormonal changes encourage $his body to @@.lime;gain muscle.@@
 			<<set $slaves[$i].muscles += 1>>
 		<</if>>
-		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant > 500)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 20)))>>
+		<<if ((($slaves[$i].geneMods.NCS == 0) && ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 500)) || (($slaves[$i].geneMods.NCS == 1) && ($slaves[$i].boobs > 20)))>>
 			$His breasts @@.orange;lose some mass@@ from the lack of estrogen in $his diet.
 			<<set $slaves[$i].boobs -= 10>>
 			<<if ($slaves[$i].geneMods.NCS == 1)>>
@@ -694,7 +694,7 @@
 			$His balls @@.lime;swell@@ due to the male hormones in $his diet.
 			<<set $slaves[$i].balls += 1>>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 300)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 300)>>
 			$His breasts @@.orange;lose some mass@@ to better suit $his body chemistry.
 			<<set $slaves[$i].boobs -= 10>>
 		<</if>>
@@ -866,7 +866,7 @@
 										<<elseif $slaves[$i].dietCum == 1>>
 											<<if random(1,3) == 3>>
 												$He has trouble keeping $his disgusting food down; $he loses weight.
-												<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)>>
+												<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200)>>
 													@@.orange;$His breasts get a little smaller.@@
 													<<set $slaves[$i].boobs -= 50>>
 												<<elseif ($slaves[$i].butt > 1)>>
@@ -1018,7 +1018,7 @@
 		<<set $slaves[$i].muscles += 9>>
 	<</if>>
 	<<if random(1,100) > 90>>
-	<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)>>
+	<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200)>>
 		@@.orange;$His breasts get a little smaller.@@
 		<<set $slaves[$i].boobs -= 50>>
 	<<elseif ($slaves[$i].butt > 1)>>
@@ -1042,7 +1042,7 @@
 		<<set $slaves[$i].muscles -= 9>>
 	<</if>>
 	<<if random(1,100) > 90>>
-	<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant >= 200)>>
+	<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 200)>>
 		@@.orange;$His breasts get a little smaller.@@
 		<<set $slaves[$i].boobs -= 50>>
 	<<elseif ($slaves[$i].butt > 1)>>
@@ -1155,7 +1155,7 @@
 			$His balls @@.lime;swell@@ due to the male hormones in $his diet.
 			<<set $slaves[$i].balls += 1>>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 400)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 400)>>
 			$His breasts @@.orange;lose some mass@@ from the lack of estrogen in $his diet.
 			<<set $slaves[$i].boobs -= 10>>
 		<</if>>
@@ -1164,7 +1164,7 @@
 			Hormonal changes encourage $his body to @@.lime;gain muscle.@@
 			<<set $slaves[$i].muscles += 1>>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 500)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 500)>>
 			$His breasts @@.orange;lose some mass@@ from the lack of estrogen in $his diet.
 			<<set $slaves[$i].boobs -= 10>>
 		<</if>>
@@ -1188,7 +1188,7 @@
 			$His balls @@.lime;swell@@ due to the male hormones in $his diet.
 			<<set $slaves[$i].balls += 1>>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 300)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 300)>>
 			$His breasts @@.orange;lose some mass@@ to better suit $his body chemistry.
 			<<set $slaves[$i].boobs -= 10>>
 		<</if>>
diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw
index a07cb00e326ded7f2b1b3d34243c7dae0dc6c7ee..07d5efc425bef3fbeb09878be00a0dae388316ae 100644
--- a/src/uncategorized/saDrugs.tw
+++ b/src/uncategorized/saDrugs.tw
@@ -999,25 +999,25 @@
 <<case "breast redistributors">>
 	$He receives @@.lime;direct injections of fat redistributors right into $his breasts,@@ causing $his body to begin moving fatty tissue from them to $his core<<if $slaves[$i].geneMods.NCS == 1>>, $his @@.orange;NCS@@ amplifies the effectiveness<</if>>.
 	<<set _factor = 0>>
-	<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant) <= 100>>
+	<<if ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) <= 100>>
 		$His natural breast tissue is now so thin that further drug use will fail to shrink it further; @@.yellow;$his drug regimen has been ended.@@
 		<<set $slaves[$i].drugs = "no drugs">>
 	<<elseif ($slaves[$i].weight >= 200)>>
 		$He is now so immensely obese $his health is greatly at risk; @@.yellow;$his drug regimen has been ended.@@
 		<<set $slaves[$i].drugs = "no drugs">>
-	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant) >= 20000>>
+	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) >= 20000>>
 		@@.lime;$His breasts shrink painfully,@@ becoming massively smaller while $his @@.orange;waistline swells tremendously.@@
 		<<set _factor = 20>>
-	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant) >= 10000>>
+	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) >= 10000>>
 		@@.lime;$His breasts shrink painfully,@@ becoming greatly smaller while $his @@.orange;waistline swells.@@
 		<<set _factor = 10>>
-	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant) >= 5000>>
+	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) >= 5000>>
 		@@.lime;$His breasts shrink painfully,@@ becoming smaller while $his @@.orange;waistline swells.@@
 		<<set _factor = 5>>
-	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant) >= 1000>>
+	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) >= 1000>>
 		@@.lime;$His breasts shrink painfully,@@ becoming smaller while $his @@.orange;waistline grows.@@
 		<<set _factor = 3>>
-	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant) > 100>>
+	<<elseif ($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 100>>
 		@@.lime;$His breasts shrink painfully,@@ becoming smaller while $his @@.orange;waistline grows slightly.@@
 		<<set _factor = 1>>
 	<</if>>
diff --git a/src/uncategorized/saGetMilked.tw b/src/uncategorized/saGetMilked.tw
index eae94c41fa7d1042f63107db81313389f2121bce..a275ebbcae8d32aaafa92c1f4342f112ffdec84e 100644
--- a/src/uncategorized/saGetMilked.tw
+++ b/src/uncategorized/saGetMilked.tw
@@ -54,6 +54,10 @@ gets milked this week.
 		<</if>>
 	<</if>>
 
+	<<if ($slaves[$i].boobsMilk > 0)>>
+		$He was in need of a good milking, too.
+	<</if>>
+	
 	<<if ($slaves[$i].devotion > 50)>>
 		$He's such a happy cow that $his mental state has a positive impact on $his production.
 	<<elseif ($slaves[$i].devotion < -50)>>
@@ -232,7 +236,10 @@ gets milked this week.
 			<<set $slaves[$i].areolae += 1>>
 		<</if>>
 	<</if>>
-
+	<<set $slaves[$i].lactationDuration = 2>>
+	<<if $slaves[$i].boobsMilk > 0>>
+		<<set $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>>
+	<</if>>
 
 <</if>> /* CLOSES BREAST MILKING */
 
diff --git a/src/uncategorized/saHormoneEffects.tw b/src/uncategorized/saHormoneEffects.tw
index f08cd80fca0dd8ac2ff4201d7c61132150025d55..ac801906589e1070ab13cb3ef8332dc802d22679 100644
--- a/src/uncategorized/saHormoneEffects.tw
+++ b/src/uncategorized/saHormoneEffects.tw
@@ -567,7 +567,7 @@
 			<</if>>
 			<<set $slaves[$i].butt-->>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 100)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 100)>>
 			<<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)>>
@@ -654,7 +654,7 @@
 			<</if>>
 			<<set $slaves[$i].butt-->>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 300)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 300)>>
 			<<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)>>
@@ -738,7 +738,7 @@
 			<</if>>
 			<<set $slaves[$i].butt-->>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 400)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 400)>>
 			<<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)>>
@@ -822,7 +822,7 @@
 			<</if>>
 			<<set $slaves[$i].butt-->>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 600)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 600)>>
 			<<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)>>
@@ -900,7 +900,7 @@
 			<</if>>
 			<<set $slaves[$i].butt-->>
 		<</if>>
-		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 800)>>
+		<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk) > 800)>>
 			<<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)>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 29ec9e110d31f1ce6aaffc3ea055352afc9e0bc3..cb635885b401d805965146f9683544ca18933ad4 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -3306,6 +3306,9 @@
 					<<set $slaves[$i].lactation = 1>>
 				<</if>>
 			<</if>>
+			<<if $slaves[$i].lactation == 1>>
+				<<set $slaves[$i].lactationDuration = 2>>
+			<</if>>
 		<</if>>
 	<</if>> /* closes .preg >= 10 */
 
@@ -5177,13 +5180,13 @@
 	<<if $slaves[$i].weight <= 10>>
 		<<if $slaves[$i].diet != "fattening">>
 			<<if $slaves[$i].weight < -95>>
-				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant > 750>>
+				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 750>>
 					$His desperately underweight body @@.orange;burns fat off $his plush boobs.@@
 					<<set $slaves[$i].boobs -= 50>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 3>>
 					$His desperately underweight body @@.orange;burns fat off $his plush butt.@@
 					<<set $slaves[$i].butt -= 0.4>>
-				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant > 500>>
+				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 500>>
 					$His desperately underweight body @@.orange;burns some fat off $his healthy boobs.@@
 					<<set $slaves[$i].boobs -= 25>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 2>>
@@ -5191,13 +5194,13 @@
 					<<set $slaves[$i].butt -= 0.2>>
 				<</if>>
 			<<elseif $slaves[$i].weight <= -30>>
-				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant > 1000>>
+				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 1000>>
 					$His underweight body @@.orange;burns fat off $his big boobs.@@
 					<<set $slaves[$i].boobs -= 50>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 4>>
 					$His underweight body @@.orange;burns fat off $his big butt.@@
 					<<set $slaves[$i].butt -= 0.4>>
-				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant > 750>>
+				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 750>>
 					$His underweight body @@.orange;burns some fat off $his plush boobs.@@
 					<<set $slaves[$i].boobs -= 25>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 3>>
@@ -5205,13 +5208,13 @@
 					<<set $slaves[$i].butt -= 0.2>>
 				<</if>>
 			<<elseif $slaves[$i].weight < -10>>
-				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant > 2000>>
+				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 2000>>
 					$His skinny body @@.orange;burns fat off $his huge boobs.@@
 					<<set $slaves[$i].boobs -= 50>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 6>>
 					$His skinny body @@.orange;burns fat off $his huge butt.@@
 					<<set $slaves[$i].butt -= 0.4>>
-				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant > 1000>>
+				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 1000>>
 					$His skinny body @@.orange;burns some fat off $his big boobs.@@
 					<<set $slaves[$i].boobs -= 25>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 4>>
@@ -5219,13 +5222,13 @@
 					<<set $slaves[$i].butt -= 0.2>>
 				<</if>>
 			<<else>>
-				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant > 5000>>
+				<<if $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 5000>>
 					$His thin body @@.orange;burns fat off $his monstrous boobs.@@
 					<<set $slaves[$i].boobs -= 50>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 8>>
 					$His thin body @@.orange;burns fat off $his monstrous butt.@@
 					<<set $slaves[$i].butt -= 0.4>>
-				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant > 2000>>
+				<<elseif $slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk > 2000>>
 					$His thin body @@.orange;burns some fat off $his huge boobs.@@
 					<<set $slaves[$i].boobs -= 25>>
 				<<elseif $slaves[$i].butt-$slaves[$i].buttImplant > 6>>
@@ -5636,10 +5639,10 @@
 	**	the slave's accumulated youthening is 6 or higher,
 	**	or by a 50% chance.
 	*/
-	<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant >= 5000) && (random(1,100) < 90))>>
+	<<if (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 5000) && (random(1,100) < 90))>>
 		$His @@.orange;NCS@@ has @@.orange;reduced the size of $his bouncing breasts.@@
 		<<set $slaves[$i].boobs -= Math.round($slaves[$i].boobs * .11), _countNCS++>>
-	<<elseif (($slaves[$i].boobs-$slaves[$i].boobsImplant <= 5000) && (!['tiny', 'cute', 'fuckable'].includes($slaves[$i].nipples)) && (random(1,100) < 30))>>
+	<<elseif (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk <= 5000) && (!['tiny', 'cute', 'fuckable'].includes($slaves[$i].nipples)) && (random(1,100) < 30))>>
 		<<if ('inverted' == $slaves[$i].nipples)>><<set _target = 'partially inverted'>>
 		<<elseif ('partially inverted' == $slaves[$i].nipples)>><<set _target = 'normal'>>
 		<<else>><<set _target = either('cute', 'tiny')>>
@@ -5650,7 +5653,7 @@
 			$His areolae also shrink down to a more normal size<<if ($slaves[$i].areolae > 3)>>, losing the surgical shape alteration<</if>>.
 			<<set $slaves[$i].areolae = 1, _countNCS++>>
 		<</if>>
-	<<elseif (($slaves[$i].boobs-$slaves[$i].boobsImplant >= 300) && (($slaves[$i].NCSyouthening >= 6) || (random(1,100) < 50)))>>
+	<<elseif (($slaves[$i].boobs-$slaves[$i].boobsImplant-$slaves[$i].boobsMilk >= 300) && (($slaves[$i].NCSyouthening >= 6) || (random(1,100) < 50)))>>
 		$His @@.orange;NCS@@ has @@.orange;reduced the size of $his tits.@@
 		<<set $slaves[$i].boobs -= Math.round($slaves[$i].boobs * .09), _countNCS++>>
 	<</if>>
@@ -6589,6 +6592,25 @@
 	<</if>>
 <</if>>
 
+/* LACTATION EFFECTS */
+
+<<if ($slaves[$i].lactation == 1)>>
+	<<if $slaves[$i].lactationDuration == 0>>
+		Without regular use, $his lactation has @@.orange;dried up.@@
+		<<set $slaves[$i].boobs -= $slaves[$i].boobsMilk>>
+		<<set $slaves[$i].boobsMilk = 0, $slaves[$i].lactation = 0>>
+	<<elseif $slaves[$i].lactationDuration == 1>>
+		Without release, $his breasts have become @@.lime;<<if $slaves[$i].lactationAdaptation > 50>>massively <</if>>engorged@@ with pent-up milk.
+		<<set $slaves[$i].boobsMilk += 10*$slaves[$i].lactationAdaptation>>
+		<<set $slaves[$i].boobs += $slaves[$i].boobsMilk>>
+	<<else>>
+		<<set $slaves[$i].lactationDuration-->>
+	<</if>>
+<</if>>
+<<if $slaves[$i].induceLactation > 0>>
+	<<set $slaves[$i].induceLactation-->>
+<</if>>
+
 <<if ($slaves[$i].boobs - ($slaves[$i].muscles*30) > 5000) && ($slaves[$i].boobs <= 8000) && ($slaves[$i].boobsImplant < 500) && ($slaves[$i].breastMesh != 1)>>
 	<<if $slaves[$i].physicalAge < random(10,200)>>
 		<<if $slaves[$i].boobShape == "perky">>
diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw
index a35a5c349f9c8b64979131cae4653550c72387c9..a5db5202221b224242095a75352f6f7a4e1c13a5 100644
--- a/src/uncategorized/saPleaseYou.tw
+++ b/src/uncategorized/saPleaseYou.tw
@@ -579,6 +579,15 @@ serves you this week.
 					<</if>>
 				<</if>>
 			<</if>>
+			<<if $slaves[$i].lactation > 0>>
+				<<set $slaves[$i].lactationDuration = 2>>
+				<<if $slaves[$i].boobsMilk > 0>>
+					<<set $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>>
+				<</if>>
+			<<else>>
+				<<set $slaves[$i].induceLactation += 2>>
+				<<= induceLactation($slaves[$i])>>
+			<</if>>
 			<<set $slaves[$i].mammaryCount += _mammaryUse, $mammaryTotal += _mammaryUse>>
 		<<else>>
 			You keep $him with you all week, using it as your personal sex toy
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 766bb4fd78d1779f1e893759e2013190d4ef63a1..d8d4bb687e6cec1c341dd49a8e14802d624f35ad 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1124,7 +1124,7 @@
 			<</if>>
 		<</if>>
 		<<if $arcologies[0].FSSlimnessEnthusiastResearch == 1>>
-			<<if ($activeSlave.boobs-$activeSlave.boobsImplant > 100)>>
+			<<if ($activeSlave.boobs-$activeSlave.boobsImplant-$activeSlave.boobsMilk > 100)>>
 				| <<link "Breast reducers">><<set $activeSlave.drugs = "breast redistributors">><<SlaveInteractDrugs>><</link>>
 			<<else>>
 				| Breast reducers
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index 92cedfac339f9e5c4737515f6b6bfe618f34d2df..5bb0980c29e44ebf9033b6a9f81c905458375d9c 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -2436,7 +2436,7 @@ As the remote surgery's long recovery cycle completes,
 	<<if $activeSlave.labia > 1>>
 		<<set _genitalChanges.push('labia'), $activeSlave.labia -= 1>>
 	<</if>>
-	<<if $activeSlave.boobs-$activeSlave.boobsImplant > 300>>
+	<<if $activeSlave.boobs-$activeSlave.boobsImplant-$activeSlave.boobsMilk > 300>>
 		<<set _genitalChanges.push('boobs'), $activeSlave.boobs -= Math.round($activeSlave.boobs * .1)>>
 	<</if>>
 	<<set _physicalChanges = []>>
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 4f82b632f31e99d760111d9660aa020e054cd694..238ff270e08d483b585d72098091160419a16f6d 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -1370,7 +1370,11 @@ $His
 	<<if ($activeSlave.assignment == "work in the dairy") && ($dairyRestraintsSetting > 1)>>
 		The transparent lines coming off the cups attached to each of $his nipples are white with a constant stream of milk.
 	<<elseif $activeSlave.lactation == 1>>
-		$His motherly breasts are full of milk.
+		<<if $activeSlave.boobsMilk > 0>>
+			$His breasts are painfully engorged with milk.
+		<<else>>
+			$His motherly breasts are full of milk.
+		<</if>>
 	<<elseif $activeSlave.fuckdoll > 0>>
 		$His overworked, overfull breasts press its nipples through the holes mercilessly.
 	<<else>>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index f7c9e1d51a000144aa349585f7b2e223d40549fa..c6b70f0620b1c5340935d951b74ca615bb6ecb20 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -150,7 +150,7 @@
 			<</if>>
 		<</if>>
 		<<if $arcologies[0].FSSlimnessEnthusiastResearch == 1>>
-			<<if ($activeSlave.boobs-$activeSlave.boobsImplant > 100)>>
+			<<if ($activeSlave.boobs-$activeSlave.boobsImplant-$activeSlave.boobsMilk > 100)>>
 				| <<link "Breast reducers">><<set $activeSlave.drugs = "breast redistributors">><<SlaveInteractDrugs>><</link>>
 			<<else>>
 				| Breast reducers