From 0d63d7dc88305bd12b7d8b405120f03c2ed16a76 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Tue, 1 Jan 2019 14:40:10 -0500
Subject: [PATCH] trio of ova implants, cloning finally fixed, and other
 cleaning and fixing

---
 devNotes/twine JS.txt                       |   4 +-
 slave variables documentation - Pregmod.txt |   3 +-
 src/SecExp/attackHandler.tw                 |  20 ++--
 src/SecExp/attackReport.tw                  |  20 ++--
 src/events/intro/introSummary.tw            |   2 +-
 src/init/setupVars.tw                       |   2 +
 src/init/storyInit.tw                       |   6 +-
 src/js/wombJS.tw                            |   2 +
 src/npc/startingGirls/startingGirls.tw      |   2 +-
 src/pregmod/geneLab.tw                      |  24 ++++-
 src/pregmod/implantManufactory.tw           |  49 ++++++---
 src/pregmod/organFarm.tw                    |   6 ++
 src/pregmod/organFarmOptions.tw             |  71 +++++++++++++
 src/pregmod/surrogacy.tw                    |   8 +-
 src/pregmod/theBlackMarket.tw               |  66 ++++++++++++
 src/uncategorized/BackwardsCompatibility.tw |   4 +-
 src/uncategorized/dispensary.tw             |  22 ----
 src/uncategorized/multiImplant.tw           |  34 ++++++
 src/uncategorized/remoteSurgery.tw          | 108 ++++++++++++--------
 src/uncategorized/saLongTermEffects.tw      |  21 ++++
 src/uncategorized/surgeryDegradation.tw     |  47 +++++++--
 src/utility/descriptionWidgetsFlesh.tw      |  18 +++-
 22 files changed, 415 insertions(+), 124 deletions(-)

diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index fc2ba55ec02..28305262425 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -11428,11 +11428,12 @@ window.WombImpregnateClone = function(actor, fCount, mother, motherOriginal, age
 			State.variables.missingParentID--;
 		}
 		if (mother.mother === 0 || (mother.mother < -1 && mother.mother >= -20 && mother.mother !== -3)) {
-			mother.father = State.variables.missingParentID;
+			mother.mother = State.variables.missingParentID;
 			State.variables.missingParentID--;
 		}
 
 		//gene corrections
+		tf.fatherID = -7;
 		tf.genetics.gender = mother.genes;
 		tf.genetics.mother = mother.mother;
 		tf.genetics.father = mother.father;
@@ -11457,6 +11458,7 @@ window.WombImpregnateClone = function(actor, fCount, mother, motherOriginal, age
 			if (actor.womb.length == 0) {
 				actor.pregWeek = age;
 				actor.preg = age;
+				actor.pregSource = -7;
 			}
 			actor.womb.push(tf);
 		} catch(err){
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 776c265a4e8..6f5d1763cac 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1778,13 +1778,14 @@ readyOva:
 
 Number of ready to be impregnated ova (override normal cases), default - 0. For delayed impregnations with multiples. Used onetime on next call of the SetPregType widget. After SetPregType use it to override .pregType, it set back to 0 automatically.
 
-ovaImplant: (future usage)
+ovaImplant:
 
 Ovary implant type.
 
 0 - no implants
 "fertility" - higher chance of twins (or more)
 "sympathy" - doubles eggs released
+"asexual" - self-fertilizing
 
 wombImplant:
 
diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw
index 8ef54638333..a196d0af740 100644
--- a/src/SecExp/attackHandler.tw
+++ b/src/SecExp/attackHandler.tw
@@ -242,7 +242,7 @@
 		<<set _mercMod += 0.10>>
 		<<set _SFMod += 0.10>>
 	<</if>>
-	<<if (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 95>>
+	<<if (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career) || setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 95>>
 		<<set _atkMod += 0.25>>
 		<<set _defMod += 0.25>>
 		<<set _tacChance += 0.50>>
@@ -250,7 +250,7 @@
 		<<set _atkMod += 0.20>>
 		<<set _defMod += 0.15>>
 		<<set _tacChance += 0.35>>
-	<<elseif (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 50>>
+	<<elseif (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career) || setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 50>>
 		<<set _atkMod += 0.15>>
 		<<set _defMod += 0.10>>
 		<<set _tacChance += 0.25>>
@@ -258,7 +258,7 @@
 		<<set _atkMod += 0.10>>
 		<<set _defMod += 0.10>>
 		<<set _tacChance += 0.20>>
-	<<elseif (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 15>>
+	<<elseif (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career) || setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 15>>
 		<<set _atkMod += 0.10>>
 		<<set _defMod += 0.05>>
 		<<set _tacChance += 0.15>>
@@ -266,7 +266,7 @@
 		<<set _atkMod += 0.5>>
 		<<set _defMod += 0.05>>
 		<<set _tacChance += 0.10>>
-	<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -50>>
+	<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career) && setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -50>>
 		<<set _atkMod -= 0.15>>
 		<<set _defMod -= 0.15>>
 		<<set _tacChance -= 0.30>>
@@ -274,7 +274,7 @@
 		<<set _atkMod -= 0.15>>
 		<<set _defMod -= 0.10>>
 		<<set _tacChance -= 0.25>>
-	<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -15>>
+	<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career) && setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -15>>
 		<<set _atkMod -= 0.10>>
 		<<set _defMod -= 0.10>>
 		<<set _tacChance -= 0.20>>
@@ -370,7 +370,7 @@
 		<<set _mercMod += 0.10>>
 		<<set _SFMod += 0.10>>
 	<</if>>
-	<<if (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 95>>
+	<<if (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career) || setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 95>>
 		<<set _atkMod += 0.25>>
 		<<set _defMod += 0.25>>
 		<<set _tacChance += 0.50>>
@@ -378,7 +378,7 @@
 		<<set _atkMod += 0.20>>
 		<<set _defMod += 0.15>>
 		<<set _tacChance += 0.35>>
-	<<elseif (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 50>>
+	<<elseif (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career) || setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 50>>
 		<<set _atkMod += 0.15>>
 		<<set _defMod += 0.10>>
 		<<set _tacChance += 0.25>>
@@ -386,7 +386,7 @@
 		<<set _atkMod += 0.10>>
 		<<set _defMod += 0.10>>
 		<<set _tacChance += 0.20>>
-	<<elseif (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 15>>
+	<<elseif (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career) || setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 15>>
 		<<set _atkMod += 0.10>>
 		<<set _defMod += 0.05>>
 		<<set _tacChance += 0.15>>
@@ -394,7 +394,7 @@
 		<<set _atkMod += 0.05>>
 		<<set _defMod += 0.05>>
 		<<set _tacChance += 0.10>>
-	<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -50>>
+	<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career) && setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -50>>
 		<<set _atkMod -= 0.15>>
 		<<set _defMod -= 0.15>>
 		<<set _tacChance -= 0.30>>
@@ -402,7 +402,7 @@
 		<<set _atkMod -= 0.15>>
 		<<set _defMod -= 0.10>>
 		<<set _tacChance -= 0.25>>
-	<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -15>>
+	<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career) && setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -15>>
 		<<set _atkMod -= 0.10>>
 		<<set _defMod -= 0.10>>
 		<<set _tacChance -= 0.20>>
diff --git a/src/SecExp/attackReport.tw b/src/SecExp/attackReport.tw
index 5db8b0df4bd..7973cf20a07 100644
--- a/src/SecExp/attackReport.tw
+++ b/src/SecExp/attackReport.tw
@@ -988,23 +988,23 @@
 				Your soldiers <<if $deployingSlaves == 1>>however,<</if>> are not enthusiastic to have a slave as a commander, but they trust you enough not to question your decision.
 			<</if>>
 		<</if>>
-		<<if (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 95>>
+		<<if (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career) || setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 95>>
 			With her experience and her great intellect, she is able to exploits the smallest of tactical advantages, making your troops very effective.
 		<<elseif $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 95>>
 			While she lacks experience, her great intellect allows her to seize and exploit any tactical advantage the battlefield offers her.
-		<<elseif (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 50>>
+		<<elseif (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career) || setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 50>>
 			Having both the experience and the intelligence, she performs admirably as your commander. Her competence greatly increases the efficiency of your troops.
 		<<elseif $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 50>>
 			Despite not having a lot of experience as a leader, her intelligence makes her a good commander, increasing the efficiency of your troops.
-		<<elseif setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 15>>
+		<<elseif (setup.bodyguardCareers.includes($Bodyguard.career) || setup.HGCareers.includes($Bodyguard.career) || setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) && $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 15>>
 			Thanks to her experience, she is a decent commander, competently guiding your troops through the battle.
 		<<elseif $Bodyguard.intelligence+$Bodyguard.intelligenceImplant > 15>>
 			Lacking experience, her performance as a commander is rather forgettable.
-		<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -50>>
+		<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career) && setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -50>>
 			Despite the experience she accumulated during her past career, her very low intelligence is a great disadvantage for your troops.
 		<<elseif $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -50>>
 			Without experience and low intelligence, she performs horribly as a commander, greatly affecting your troops.
-		<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -15>>
+		<<elseif !(setup.bodyguardCareers.includes($Bodyguard.career) && setup.HGCareers.includes($Bodyguard.career) && setup.secExCombatPrestige.includes($Bodyguard.prestigeDesc)) || $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -15>>
 			Despite the experience she accumulated during her past career, she lacks the intelligence to apply it quickly and effectively, making for a rather poor performance in the field.
 		<<elseif $Bodyguard.intelligence+$Bodyguard.intelligenceImplant < -15>>
 			She lacks the experience and the intelligence to be an effective commander, the performance of your troops suffers because of her poor leadership.
@@ -1124,23 +1124,23 @@
 				Your soldiers <<if $deployingSlaves == 1>>however<</if>> are not enthusiastic to have a slave as a commander, but they trust you enough not to question your decision.
 			<</if>>
 		<</if>>
-		<<if (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 95>>
+		<<if (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career) || setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 95>>
 			With her experience and her great intellect, she is able to exploits the smallest of tactical advantages, making your troops greatly effective.
 		<<elseif $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 95>>
 			While she lacks experience, her great intellect allows her to seize and exploit any tactical advantage the battlefield offers her.
-		<<elseif (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 50>>
+		<<elseif (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career) || setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 50>>
 			Having both the experience and the intelligence, she performs admirably as your commander. Her competence greatly increases the efficiency of your troops.
 		<<elseif $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 50>>
 			Despite not having a lot of experience as a leader, her intelligence makes her a good commander, increasing the efficiency of your troops.
-		<<elseif setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 15>>
+		<<elseif (setup.bodyguardCareers.includes($HeadGirl.career) || setup.HGCareers.includes($HeadGirl.career) || setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) && $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 15>>
 			Thanks to her experience, she is a decent commander, competently guiding your troops through the battle.
 		<<elseif $HeadGirl.intelligence+$HeadGirl.intelligenceImplant > 15>>
 			Lacking experience her performance as a commander is rather forgettable.
-		<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -50>>
+		<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career) && setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -50>>
 			Despite the experience she accumulated during her past career, her very low intelligence is a great disadvantage for your troops.
 		<<elseif $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -50>>
 			Without experience and low intelligence, she performs horribly as a commander, greatly affecting your troops.
-		<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -15>>
+		<<elseif !(setup.bodyguardCareers.includes($HeadGirl.career) && setup.HGCareers.includes($HeadGirl.career) && setup.secExCombatPrestige.includes($HeadGirl.prestigeDesc)) || $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -15>>
 			Despite the experience she accumulated during her past career, she lacks the intelligence to apply it quickly and effectively, making for a rather poor performance in the field.
 		<<elseif $HeadGirl.intelligence+$HeadGirl.intelligenceImplant < -15>>
 			She lacks the experience and the intelligence to be an effective commander, the performance of your troops suffers because of her poor leadership.
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 5a902bd4fdf..f2aa5f1139b 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -1179,4 +1179,4 @@ __''Mods''__
 <</if>>
 
 <br><br>
-[[Cheat Start|init Nationalities][$cash += 1000000,$girls = 3,$rep += 10000,$dojo += 1,$cheatMode = 1,$seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion",$sortSlavesOrder = "descending",$sortSlavesMain = 0,$rulesAssistantMain = 1,$abbreviateDevotion = 1,$abbreviateRules = 1,$abbreviateClothes = 2,$abbreviateHealth = 1,$abbreviateDiet = 1,$abbreviateDrugs = 1,$abbreviateRace = 1,$abbreviateNationality = 1,$abbreviateGenitalia = 1,$abbreviatePhysicals = 1,$abbreviateSkills = 1,$abbreviateMental = 2,$PC.trading = 100,$PC.warfare = 100,$PC.slaving = 100,$PC.engineering = 100,$PC.medicine = 100,$PC.hacking = 100]] | //Intended for debugging: may have unexpected effects//
+[[Cheat Start|init Nationalities][$cash += 1000000,$girls = 3,$rep = 20000,$dojo += 1,$cheatMode = 1,$seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion",$sortSlavesOrder = "descending",$sortSlavesMain = 0,$rulesAssistantMain = 1,$abbreviateDevotion = 1,$abbreviateRules = 1,$abbreviateClothes = 2,$abbreviateHealth = 1,$abbreviateDiet = 1,$abbreviateDrugs = 1,$abbreviateRace = 1,$abbreviateNationality = 1,$abbreviateGenitalia = 1,$abbreviatePhysicals = 1,$abbreviateSkills = 1,$abbreviateMental = 2,$PC.trading = 100,$PC.warfare = 100,$PC.slaving = 100,$PC.engineering = 100,$PC.medicine = 100,$PC.hacking = 100]] | //Intended for debugging: may have unexpected effects//
diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw
index 2d2b6798550..8078172630e 100644
--- a/src/init/setupVars.tw
+++ b/src/init/setupVars.tw
@@ -2103,6 +2103,8 @@ Then pick _namePool.random(), or display those names as possible choices, or do
 
 <<set setup.facilityHeads = ["be the Attendant", "be the DJ", "be the Farmer", "be the Madam", "be the Matron", "be the Milkmaid", "be the Nurse", "be the Schoolteacher", "be the Stewardess", "be the Wardeness", "be your Concubine"]>>
 
+<<set setup.secExCombatPrestige = ["She is well known for being a great commander.", "She is famous for being an incredible commander.", "She is known as a legendary commander all over the world."]>>
+
 <<set setup.lightColorMap = {
 "rgb(0, 0, 0)":"rgb(255, 255, 255)",
 "rgb(255, 255, 0)":"rgb(255, 255, 0)",
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index f3c689b7d30..d464c71763b 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $returnTo = "init", $nextButton = "Continue", $nextLink = "Alpha disclaimer">>
 
 <<unset $releaseID>>
-<<set $ver = "0.10.7", $pmodVer = "1.4.X", $releaseID = 1037>>
-<<if ndef $pmodVer>><<set $pmodVer = "1.4.X">><</if>>
+<<set $ver = "0.10.7", $pmodVer = "1.5.X", $releaseID = 1038>>
+<<if ndef $pmodVer>><<set $pmodVer = "1.5.X">><</if>>
 
 /* This needs to be broken down into individual files that can be added to StoryInit instead. */
 
@@ -1438,7 +1438,7 @@ erectileImplant: 0
 } >>
 
 <<set $merchantFSWares = ["GenderRadicalistResearch", "TransformationFetishistResearch", "AssetExpansionistResearch", "SlimnessEnthusiastResearch", "YouthPreferentialistResearch", "HedonisticDecadenceResearch"]>>
-<<set $merchantIllegalWares = ["childhoodFertilityInducedNCS", "UterineRestraintMesh", "RapidCellGrowthFormula", "PGHack", "AnimalOrgans"]>>
+<<set $merchantIllegalWares = ["childhoodFertilityInducedNCS", "UterineRestraintMesh", "RapidCellGrowthFormula", "PGHack", "sympatheticOvaries", "asexualReproduction"]>> /* , "AnimalOrgans"*/
 <<set $RapidCellGrowthFormula = 0>>
 <<set $UterineRestraintMesh = 0>>
 <<set $PGHack = 0>>
diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw
index b1e71119801..254aeb5bc30 100644
--- a/src/js/wombJS.tw
+++ b/src/js/wombJS.tw
@@ -146,6 +146,7 @@ window.WombImpregnateClone = function(actor, fCount, mother, motherOriginal, age
 		}
 
 		//gene corrections
+		tf.fatherID = -7;
 		tf.genetics.gender = mother.genes;
 		tf.genetics.mother = mother.mother;
 		tf.genetics.father = mother.father;
@@ -170,6 +171,7 @@ window.WombImpregnateClone = function(actor, fCount, mother, motherOriginal, age
 			if (actor.womb.length == 0) {
 				actor.pregWeek = age;
 				actor.preg = age;
+				actor.pregSource = -7;
 			}
 			actor.womb.push(tf);
 		} catch(err){
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 625fcc714de..8c4e2c5cbae 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -417,7 +417,7 @@ __You are customizing this slave:__
 
 | [[More customization options]]
 
-| <<link "Start over with a random slave">>
+| <<link "Start over with a random slave" "Starting Girls">>
 <<set $fixedNationality = hashChoice($nationalities)>>
 <<StartingGirlsWorkaround>>
 <<StartingGirlsRefresh>>
diff --git a/src/pregmod/geneLab.tw b/src/pregmod/geneLab.tw
index 137017baa4b..603565ef09e 100644
--- a/src/pregmod/geneLab.tw
+++ b/src/pregmod/geneLab.tw
@@ -7,13 +7,32 @@
 The Gene Lab
 <hr>
 
-//The gene lab is fully operational. It can identify genetic traits in slaves. It can be used to modify a slave's genome should you obtain the data necessary to adjust it.//
+//The gene lab is fully operational. It is capable of mapping a slave's genes, identifying genetic traits and abnormalities. It can be used to modify a slave's genome should you obtain the data necessary to adjust it.//
+
+<br><br>
+Genetic Modification
+<hr>
+
+<<if $dispensaryUpgrade == 0>>
+	//The fabricator must upgraded before it can produce treatments to alter genes//
+	<br>
+<<else>>
+	The fabricator is capable of producing treatments to alter a slave's genetic code.
+	<br>
+	<<if $arcologies[0].childhoodFertilityInducedNCSResearch == 1>>
+		The fabricator is capable of producing treatments to induce NCS.
+		<br>
+	<</if>>
+	<<if $RapidCellGrowthFormula == 1>>
+		The fabricator is capable of producing treatments to accelerate cellular reproduction.
+		<br>
+	<</if>>
+<</if>>
 
 <br><br>
 Genetic Harvesting
 <hr>
 
-<<if $cheatMode == 1>>
 <<if ($cloningSystem != 1) && ($rep <= 18000*_PCSkillCheck)>>
 	//You lack the reputation needed to access methods for human cloning//
 	<br>
@@ -30,5 +49,4 @@ Genetic Harvesting
 <<elseif ($cloningSystem > 0)>>
 	The gene lab is capable of implanting a slave's genetic sequence into a blank embryo to produce a basic clone. [[Make a clone|Cloning Workaround][$donatrix = "Undecided", $receptrix = "Undecided"]]
 	<br>
-<</if>>
 <</if>>
\ No newline at end of file
diff --git a/src/pregmod/implantManufactory.tw b/src/pregmod/implantManufactory.tw
index 416858adfd0..d06ddd80db2 100644
--- a/src/pregmod/implantManufactory.tw
+++ b/src/pregmod/implantManufactory.tw
@@ -59,28 +59,47 @@ The manufactory is capable of producing customized fillable implants.
 	<</if>>
 <</if>>
 
-<br>
-Fertility Implants
-<hr>
+<<if $seePreg != 0>>
+	<br>
+	Fertility Implants
+	<hr>
 
-<<if $seeHyperPreg == 1 && $seeExtreme == 1 && $seePreg != 0>>
-	<<if ($permaPregImplant == 0) && ($rep <= 4000*_PCSkillCheck)>>
-		//You lack the reputation to access experimental pregnancy generator schematics//
+	<<if $fertilityImplant == 1>>
+		The manufactory is capable of crafting fertility enhancing implants for ovaries.
 		<br>
-	<</if>>
-	<<if ($permaPregImplant == 0) && ($rep > 4000*_PCSkillCheck)>>
-		[[Purchase schematics for an experimental implantable pregnancy generator|Implant Manufactory][$cash -= 40000*_PCSkillCheck, $permaPregImplant = 1]]
-		//Costs <<print cashFormat(40000*_PCSkillCheck)>>//
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will allow the construction of implants that force perpetual pregnancy.//
+	<<elseif $fertilityImplant == 0 && ($rep <= 3000*_PCSkillCheck)>>
+		//You lack the reputation to access fertility boosting ovarian implants//
 		<br>
-	<<elseif ($permaPregImplant > 0)>>
-		The manufactory is capable of crafting pregnancy generators.
+	<<else>>
+		[[Purchase schematics for fertility enhancing ovarian implants|Implant Manufactory][$cash -= 10000*_PCSkillCheck, $fertilityImplant = 1]]
+		//Costs <<print cashFormat(10000*_PCSkillCheck)>>//
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will allow the construction of implants that encourage multiple eggs being released during ovulation.//
 		<br>
 	<</if>>
-	<<if $PGHack == 1>>
-		The tools required to hack the firmware of basic pregnancy generator implants have been produced by the manufactory for use in the remote surgery.
+
+	<<if $sympatheticOvaries == 1>>
+		The manufactory is capable of crafting implants that synchronize ovum release.
 		<br>
 	<</if>>
+
+	<<if $seeHyperPreg == 1 && $seeExtreme == 1>>
+		<<if ($permaPregImplant == 0) && ($rep <= 4000*_PCSkillCheck)>>
+			//You lack the reputation to access experimental pregnancy generator schematics//
+			<br>
+		<<elseif ($permaPregImplant == 0) && ($rep > 4000*_PCSkillCheck)>>
+			[[Purchase schematics for an experimental implantable pregnancy generator|Implant Manufactory][$cash -= 40000*_PCSkillCheck, $permaPregImplant = 1]]
+			//Costs <<print cashFormat(40000*_PCSkillCheck)>>//
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will allow the construction of implants that force perpetual pregnancy.//
+			<br>
+		<<elseif ($permaPregImplant > 0)>>
+			The manufactory is capable of crafting pregnancy generators.
+			<br>
+		<</if>>
+		<<if $PGHack == 1>>
+			The tools required to hack the firmware of basic pregnancy generator implants have been produced by the manufactory for use in the remote surgery.
+			<br>
+		<</if>>
+	<</if>>
 <</if>>
 
 <br>
diff --git a/src/pregmod/organFarm.tw b/src/pregmod/organFarm.tw
index 549c903794f..177ee4e970c 100644
--- a/src/pregmod/organFarm.tw
+++ b/src/pregmod/organFarm.tw
@@ -144,6 +144,12 @@ Organ Production
 	The organ farm is capable of growing fertile ovaries for postmenopausal slaves.
 	<br>
 <</if>>
+
+<<if $asexualReproduction == 1>>
+	The organ farm is capable of growing modified ovary pairs capable of self-fertilization.
+	<br>
+<</if>>
+
 /*
 <<if $seePreg != 0 && $seeBestiality != 0>>
 	<<if $farmyardLabUpgrades.animalOvaries > 0>>
diff --git a/src/pregmod/organFarmOptions.tw b/src/pregmod/organFarmOptions.tw
index d219480d19f..de6da69bcc7 100644
--- a/src/pregmod/organFarmOptions.tw
+++ b/src/pregmod/organFarmOptions.tw
@@ -12,6 +12,7 @@
 	foreskin: 0,
 	ovaries: 0,
 	freshOvaries: 0,
+	asexualReproOvaries: 0,
 	prostate: 0,
 	pigOvaries: 0,
 	dogOvaries: 0,
@@ -73,6 +74,8 @@
 			<<set $slaveOrgans.mpregCow = 1>>
 		<<elseif $organs[_i].type == "freshOvaries">>
 			<<set $slaveOrgans.freshOvaries = 1>>
+		<<elseif $organs[_i].type == "asexualReproOvaries">>
+			<<set $slaveOrgans.asexualReproOvaries = 1>>
 		<</if>>
 	<</if>>
 <</for>>
@@ -186,6 +189,18 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi
 		<<goto "Remote Surgery">>
 	<</link>> //Costs <<print cashFormat(10000)>> and requires a vagina for successful implantation//
 <</if>>
+<<if $asexualReproduction == 1>>
+	<<if $slaveOrgans.asexualReproOvaries != 1>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		<<link "Asexual reproduction modification">>
+			<<set $cash -= 10000>>
+			<<set _newOrgan = {type: "asexualReproOvaries", weeksToCompletion: "10", ID: 0}>>
+			<<set _newOrgan.ID = $activeSlave.ID>>
+			<<set $organs.push(_newOrgan)>>
+			<<goto "Remote Surgery">>
+		<</link>> //Costs <<print cashFormat(10000)>> and requires existing ovaries for successful implantation//
+	<</if>>
+<</if>>
 <<if $animalOvaries != 0>>
 	<<if $slaveOrgans.pigOvaries != 1>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;
@@ -370,6 +385,8 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi
 				anal womb and horse ovaries are
 			<<case "mpregCow">>
 				anal womb and cow ovaries are
+			<<case "asexualReproOvaries">>
+				sperm producing ovary replacement is
 			<</switch>>
 			expected to be ready in <<if $organFarmUpgrade == 1>><<print $organs[_i].weeksToCompletion>><<elseif $organFarmUpgrade == 2>><<print Math.ceil($organs[_i].weeksToCompletion/2)>><<elseif $organFarmUpgrade == 3>><<print Math.ceil($organs[_i].weeksToCompletion/4)>><</if>> weeks.
 		<</if>>
@@ -1817,6 +1834,60 @@ The fabricator is ready to grow an organ for $him. Extract tissue to begin growi
 						<</if>>
 					<</link>>
 				<</if>>
+			<<case "asexualReproOvaries">>
+				<<if ($activeSlave.mpreg == 0 && $activeSlave.ovaries == 0)>>
+					<br>&nbsp;&nbsp;&nbsp;&nbsp;
+					ERROR: this slave lacks ovaries.
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "asexualReproOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
+				<<else>>
+					<br>&nbsp;&nbsp;&nbsp;&nbsp;
+					<<link "Implant" "Surgery Degradation">>
+						<<set $cash -= $surgeryCost>>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "asexualReproOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+						<<if $activeSlave.preg < 0>>
+							<<set $activeSlave.preg = 0>>
+						<</if>>
+						<<set $activeSlave.eggType = "human">>
+						<<set $activeSlave.health -= 20>>
+						<<if $organFarmUpgrade == 2>>
+							<<set $activeSlave.chem += 20>>
+						<</if>>
+						<<if $activeSlave.pubertyXX == 0>>
+							<<if $precociousPuberty == 1>>
+								<<if $activeSlave.physicalAge >= $fertilityAge>>
+									<<set $activeSlave.pubertyAgeXX = ($activeSlave.physicalAge+1)>>
+								<</if>>
+							<<else>>
+								<<if $activeSlave.physicalAge >= $fertilityAge>>
+									<<set $activeSlave.pubertyXX = 1>>
+								<</if>>
+							<</if>>
+						<</if>>
+						<<set $activeSlave.ovaImplant = "asexual">>
+						<<set $surgeryType = "asexualReproOvaries">>
+					<</link>>
+					|
+					<<link "Discard" "Remote Surgery">>
+						<<set _ofo = $completedOrgans.findIndex(function(s) { return $activeSlave.ID == s.ID && s.type == "asexualReproOvaries"; })>>
+						<<if _ofo != -1>>
+							<<set $completedOrgans.deleteAt(_ofo)>>
+						<<else>>
+							@@.red;Organ not found for deletion!@@
+						<</if>>
+					<</link>>
+				<</if>>
 			<<case "prostate">>
 				<<if $activeSlave.prostate != 0>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
diff --git a/src/pregmod/surrogacy.tw b/src/pregmod/surrogacy.tw
index 19f79f6f502..adb863de668 100644
--- a/src/pregmod/surrogacy.tw
+++ b/src/pregmod/surrogacy.tw
@@ -128,10 +128,11 @@
 			<<if ndef _babyDaddy>>
 				<<set _babyDaddy = $slaveIndices[$donatrix.ID]>>
 			<</if>>
+			<<run WombImpregnateClone($PC, 1, $donatrix, _babyDaddy, 1)>>
 		<<else>>
 			<<set _babyDaddy = $PC>>
+			<<run WombImpregnateClone($PC, 1, $PC, _babyDaddy, 1)>>
 		<</if>>
-		<<run WombImpregnateClone($PC, 1, $donatrix, _babyDaddy, 1)>>
 		<<run WombNormalizePreg($PC)>>
 	<<else>>
 		<<set $receptrix.pregKnown = 1>>
@@ -140,10 +141,11 @@
 			<<if ndef _babyDaddy>>
 				<<set _babyDaddy = $slaveIndices[$donatrix.ID]>>
 			<</if>>
+			<<run WombImpregnateClone($receptrix, 1, $donatrix, _babyDaddy, 1)>>
 		<<else>>
 			<<set _babyDaddy = $PC>>
+			<<run WombImpregnateClone($receptrix, 1, $PC, _babyDaddy, 1)>>
 		<</if>>
-		<<run WombImpregnateClone($receptrix, 1, $donatrix, _babyDaddy, 1)>>
 		<<run WombNormalizePreg($receptrix)>>
 		<<setLocalPronouns $receptrix>>
 		<<if $receptrix.fetish == "mindbroken">>
@@ -189,7 +191,7 @@
 		<<set _surr = $slaves.findIndex(function(s) { return s.ID == $receptrix.ID; })>>
 		<<set $slaves[_surr] = $receptrix>>
 	<</if>>
-	<<if $donatrix.ID != -1>>
+	<<if $donatrix.ID != -1 && $donatrix.ID != $receptrix.ID>>
 		<<set _surr = $slaves.findIndex(function(s) { return s.ID == $donatrix.ID; })>>
 		<<set $slaves[_surr] = $donatrix>>
 	<</if>>
diff --git a/src/pregmod/theBlackMarket.tw b/src/pregmod/theBlackMarket.tw
index 909fdf74b44..44af523c73b 100644
--- a/src/pregmod/theBlackMarket.tw
+++ b/src/pregmod/theBlackMarket.tw
@@ -22,6 +22,20 @@ Once inside, you are able to fully absorb in the sights and sounds of the market
 <<elseif $PC.refreshmentType == 6>>//"Orally Dissolved" must fit into the following sentence: "I placed a tab of $PC.refreshment under my tongue" to fit events properly
 <</if>>
 
+/*
+<<if $arcologies[0].FSPaternalist != "unset">>
+	<br><br>
+	A convoy of scientists from the banned wetware CPU project are present and selling their leftover wares.
+	[[Browse CPUs|Slave Markets][$slaveMarket = "wetware", $slavesSeen += 1]] |
+	<<if $cash > _minimumFive>>
+		[[(x5)|Bulk Slave Generate][$slaveMarket = "wetware", $introType = "bulk", $numSlaves = 5]] |
+	<</if>>
+	<<if $cash > _minimumTen>>
+		[[(x10)|Bulk Slave Generate][$slaveMarket = "wetware", $introType = "bulk", $numSlaves = 10]] |
+	<</if>>
+<</if>>
+*/
+
 <br><br>
 
 The main draw, however, is the prominent stage to the rear of the building where the most desirable and less than legal slaves are auctioned off. Enslaved celebrities, kidnapped royalty, the daughters of warlords and all manner of slaves outlawed for sale in most arcologies frequently make appearances before the hungry crowd. It's usually not worth the added risk or the price to buy these girls yourself, however.
@@ -177,6 +191,8 @@ Of all the wonders present, the thing that catches your eye the most is a shady
 						<</if>>
 						<<if $geneticMappingUpgrade == 0>>
 							You lack the facilities required for such a treatment to be effective on specific individuals.
+						<<elseif $dispensaryUpgrade == 0>>
+							You lack the facilities required to produce complex gene-altering treatments.
 						<<else>>
 							<<if $arcologies[0].childhoodFertilityInducedNCSResearch == 0>>
 								<<if $cash >= 135000>>
@@ -259,6 +275,8 @@ Of all the wonders present, the thing that catches your eye the most is a shady
 				<br>
 				<<if $geneticMappingUpgrade == 0>>
 					You lack the facilities required for such a treatment to be effective on specific individuals.
+				<<elseif $dispensaryUpgrade == 0>>
+					You lack the facilities required to produce complex gene-altering treatments.
 				<<else>>
 					<<if $RapidCellGrowthFormula == 0>>
 						<<if $cash >= 70000>>
@@ -274,6 +292,54 @@ Of all the wonders present, the thing that catches your eye the most is a shady
 				<</if>>
 			<</if>>
 
+			<<if $thisWeeksIllegalWares[_bim] == "sympatheticOvaries">>
+				<br>
+				<<if $sympatheticOvaries == 0>>
+					<<if $seePreg == 1>>
+						<<if $ImplantProductionUpgrade == 1>>
+							<<if $cash >= 20000>>
+								[[Purchase schematics for implants that synchronize ova release|The Black Market][$cash -= 50000, $sympatheticOvaries = 1, _dump = $merchantIllegalWares.delete("sympatheticOvaries")]] //@@.yellowgreen;<<print cashFormat(50000)>>.@@//
+							<<else>>
+								You cannot afford the asking price of @@.red;<<print cashFormat(50000)>>@@ for implants that synchronize ova release.
+							<</if>>
+							"This pair of implants attaches directly to a girl's ovaries and uses signals to communicate with each other. When one releases an egg, the other is spurred to do the same -- in other words, guaranteed twins, always. Now, you're probably wondering why I have this for sale and not one of the big names, well what do you think happens when you mix fertility drugs, or hell just a girl prone to twins, and something that effectively doubles egg counts? That's right, she gets really, really pregnant, like dangerously so. Kind of boring compared to some of the other stuff I get in, to be honest. Though I sometimes wonder what would happen if you got multiple slaves with these implanted and kept them close to each other... Would one ovulating trigger every other implant to do the same?"
+						<<else>>
+							You lack the facilities needed to produce implants of this complexity, so schematics for implants that synchronize ova release are currently unobtainable.
+						<</if>>
+					<<else>>
+						You have no interest in research to support pregnancy.
+						<<set _dump = $merchantIllegalWares.delete("sympatheticOvaries")>>
+					<</if>>
+				<<else>>
+					You already possess schematics for implants that synchronize ova release.
+					<<set _dump = $merchantIllegalWares.delete("sympatheticOvaries")>>
+				<</if>>
+			<</if>>
+
+			<<if $thisWeeksIllegalWares[_bim] == "asexualReproduction">>
+				<br>
+				<<if $asexualReproduction == 0>>
+					<<if $seePreg == 1>>
+						<<if $organFarmUpgrade > 0>>
+							<<if $cash >= 20000>>
+								[[Purchase designs for asexually reproducing ovaries|The Black Market][$cash -= 80000, $asexualReproduction = 1, _dump = $merchantIllegalWares.delete("asexualReproduction")]] //@@.yellowgreen;<<print cashFormat(80000)>>.@@//
+							<<else>>
+								You cannot afford the asking price of @@.red;<<print cashFormat(80000)>>@@ for asexually reproducing ovaries.
+							<</if>>
+							"Ever wanted kids but were too lazy to even try? Then this is the modification for you! Just replace your slave's existing ovaries with these bad girls and she'll never be without child again! Sure there might be a little but of inbreeding going on, given that she'd be both the mother and father and all that, and sure she might uncontrollably orgasm herself into a coma trying to fertilize her own eggs, but think of all the time you'd save not fucking her! Now why it was designed that way I couldn't tell you, but from what I hear it's quite the show to watch a girl squirming in constant orgasm as she impregnates herself."
+						<<else>>
+							You lack the facilities needed to grow organs, so methods of asexual reproduction are currently unobtainable.
+						<</if>>
+					<<else>>
+						You have no interest in research to support pregnancy.
+						<<set _dump = $merchantIllegalWares.delete("asexualReproduction")>>
+					<</if>>
+				<<else>>
+					You already possess methods of asexual reproduction.
+					<<set _dump = $merchantIllegalWares.delete("asexualReproduction")>>
+				<</if>>
+			<</if>>
+
 			<<if $farmyard>>
 			<<if $thisWeeksIllegalWares[_bim] == "AnimalOrgans">>
 				<br>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 72b8a37927d..369f7e0ff9d 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -1071,12 +1071,14 @@
 	<<set $merchantFSWares = ["GenderRadicalistResearch", "TransformationFetishistResearch", "AssetExpansionistResearch", "SlimnessEnthusiastResearch", "YouthPreferentialistResearch", "HedonisticDecadenceResearch"]>>
 <</if>>
 <<if ndef $merchantIllegalWares>>
-	<<set $merchantIllegalWares = ["childhoodFertilityInducedNCS", "UterineRestraintMesh", "RapidCellGrowthFormula", "PGHack"]>>
+	<<set $merchantIllegalWares = ["childhoodFertilityInducedNCS", "UterineRestraintMesh", "RapidCellGrowthFormula", "PGHack", "sympatheticOvaries", "asexualReproduction"]>>
 <<elseif $merchantIllegalWares.length == 0>>
 	<<set $merchantIllegalWares.push("childhoodFertilityInducedNCS")>>
 	<<set $merchantIllegalWares.push("UterineRestraintMesh")>>
 	<<set $merchantIllegalWares.push("RapidCellGrowthFormula")>>
 	<<set $merchantIllegalWares.push("PGHack")>>
+	<<set $merchantIllegalWares.push("sympatheticOvaries")>>
+	<<set $merchantIllegalWares.push("asexualReproduction")>>
 <</if>>
 <<if ndef $arcologies[0].childhoodFertilityInducedNCSResearch>>
 	<<set $arcologies[0].childhoodFertilityInducedNCSResearch = 0>>
diff --git a/src/uncategorized/dispensary.tw b/src/uncategorized/dispensary.tw
index d5644716d14..2c85a953293 100644
--- a/src/uncategorized/dispensary.tw
+++ b/src/uncategorized/dispensary.tw
@@ -322,28 +322,6 @@ Fertility Focused Pharmacology
 <</if>>
 <</if>>
 
-<<if $geneticMappingUpgrade == 1>>
-	<br>
-	Gene Mods
-	<hr>
-
-	<<if $dispensaryUpgrade == 0>>
-		//The fabricator must upgraded before it can produce treatments to alter genes//
-		<br>
-	<<else>>
-		The fabricator is capable of mapping a slave's genes, identifying abnormalities and producing treatments to correct them.
-		<br>
-		<<if $arcologies[0].childhoodFertilityInducedNCSResearch == 1>>
-			The fabricator is capable of producing treatments to induce NCS.
-			<br>
-		<</if>>
-		<<if $RapidCellGrowthFormula == 1>>
-			The fabricator is capable of producing treatments to accelerate cellular reproduction.
-			<br>
-		<</if>>
-	<</if>>
-<</if>>
-
 <br>
 Future Societies Research
 <hr>
diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw
index c05cdc74105..b7c932da40e 100644
--- a/src/uncategorized/multiImplant.tw
+++ b/src/uncategorized/multiImplant.tw
@@ -17,6 +17,7 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized
 		foreskin: 0,
 		ovaries: 0,
 		freshOvaries: 0,
+		asexualReproOvaries: 0,
 		prostate: 0,
 		pigOvaries: 0,
 		canineOvaries: 0,
@@ -63,6 +64,9 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized
 			<<elseif $completedOrgans[_j].type == "freshOvaries">>
 				<<set _slaveOrgans.freshOvaries = $completedOrgans[_j]>>
 				<<set $completedOrgans.deleteAt(_j),_j-->>
+			<<elseif $completedOrgans[_j].type == "asexualReproOvaries">>
+				<<set _slaveOrgans.asexualReproOvaries = $completedOrgans[_j]>>
+				<<set $completedOrgans.deleteAt(_j),_j-->>
 			<<elseif $completedOrgans[_j].type == "prostate">>
 				<<set _slaveOrgans.prostate = $completedOrgans[_j]>>
 				<<set $completedOrgans.deleteAt(_j),_j-->>
@@ -278,6 +282,36 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized
 			<<set $completedOrgans.push(_slaveOrgans.ovaries)>>
 		<</if>>
 	<</if>>
+	/* asexual reproduction modifiction */
+	<<if _slaveOrgans.asexualReproOvaries != 0>>
+		<<if ($activeSlave.mpreg == 1 || $activeSlave.ovaries == 1)>>
+			<<set $cash -= $surgeryCost>>
+			<<set $activeSlave.eggType = "human">>
+			<<set $activeSlave.preg = 0>>
+			<<set $activeSlave.health -= 20>>
+			<<if $organFarmUpgrade == 2>>
+				<<set $activeSlave.chem += 20>>
+			<</if>>
+			<<if $activeSlave.pubertyXX == 0>>
+				<<if $precociousPuberty == 1>>
+					<<if $activeSlave.physicalAge >= $fertilityAge>>
+						<<set $activeSlave.pubertyAgeXX = ($activeSlave.physicalAge+1)>>
+					<</if>>
+				<<else>>
+					<<if $activeSlave.physicalAge >= $fertilityAge>>
+						<<set $activeSlave.pubertyXX = 1>>
+					<</if>>
+				<</if>>
+			<</if>>
+			<<set $surgeryType = "asexualReproOvaries">>
+			<br><hr>
+			<<include "Surgery Degradation">>
+		<<else>>
+			<br><hr>
+			@@.red;Could not implant modified ovary in $activeSlave.slaveName: $he has no ovaries.@@
+			<<set $completedOrgans.push(_slaveOrgans.asexualReproOvaries)>>
+		<</if>>
+	<</if>>
 	/* pig ovaries */
 	<<if _slaveOrgans.pigOvaries != 0>>
 		<<if ($activeSlave.ovaries == 0) && ($activeSlave.vagina >= 0) && ($activeSlave.mpreg == 0) && ($activeSlave.bellyImplant == -1)>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 205335989d7..2d52987874f 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -860,58 +860,82 @@ Work on $his sex:
 	[[Restore fertility|Surgery Degradation][$activeSlave.preg = 0,$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "fert"]]
 <</if>>
 
-<<if ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1) && ($activeSlave.preg < 1)>>
-	<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
-		<<if ($activeSlave.pubertyXX == 0)>>
+<<if ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>>
+	<br>&nbsp;&nbsp;&nbsp;&nbsp;
+	<<if ($activeSlave.pubertyXX == 0)>>
+		$He has ovaries but has not had $his first period.
+	<<else>>
+		$He has working ovaries<<if $activeSlave.mpreg>> and a womb attached to $his rectum<</if>>.
+	<</if>>
+	<<if $activeSlave.ovaImplant != 0>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		<<switch $activeSlave.ovaImplant>>
+		<<case "fertility">>
+			They have fertility implants attached to them.
+			[[Remove implants|Surgery Degradation][$activeSlave.ovaImplant = 0,$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "ovaImplant removed"]]
+		<<case "sympathy">>
+			They are linked via implants and ovulate in concert.
+			[[Remove implants|Surgery Degradation][$activeSlave.ovaImplant = 0,$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "ovaImplant removed"]]
+		<<case "asexual">>
+			One has been replaced with a sperm producing analog for self-fertilization.
+		<</switch>>
+	<<else>>
+		<<if $sympatheticOvaries == 1>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			$He has ovaries but has not had $his first period.
-		<<else>>
+			[[Install fertility implants|Surgery Degradation][$activeSlave.ovaImplant = "fertility",$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "ovaImplant added"]]
+		<</if>>
+		<<if $fertilityImplant == 1>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			$He has working ovaries.
+			[[Install sympathetic ovulation implants|Surgery Degradation][$activeSlave.ovaImplant = "sympathy",$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "ovaImplant added"]]
 		<</if>>
-		[[Oophorectomy|Surgery Degradation][$activeSlave.ovaries = 0,$activeSlave.wombImplant = "none",$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "ster"]]
 	<</if>>
-<</if>>
-<<if $activeSlave.mpreg == 1>>
-	<<if $activeSlave.preg > 0>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		$His anal womb cannot be removed while $he is pregnant.
-	<<else>>
-		<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
+	
+	<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		$He has a working set of ovaries and a womb attached to $his rectum.
-		[[Remove anal reproductive organs|Surgery Degradation][$activeSlave.mpreg = 0, $activeSlave.wombImplant = "none",$cash -= $surgeryCost, $activeSlave.health -= 30,$surgeryType = "mpreg removed"]]
+		<<if $activeSlave.ovaries == 1>>
+			<<if $activeSlave.preg > 0>>
+				$His ovaries and womb cannot be removed while $he is pregnant.
+			<<else>>
+				[[Oophorectomy|Surgery Degradation][$activeSlave.ovaries = 0,$activeSlave.ovaImplant = 0,$activeSlave.wombImplant = "none",$cash -= $surgeryCost, $activeSlave.health -= 10,$surgeryType = "ster"]]
+			<</if>>
+		<</if>>
+		<<if $activeSlave.mpreg == 1>>
+			<<if $activeSlave.preg > 0>>
+				$His anal womb cannot be removed while $he is pregnant.
+			<<else>>
+				[[Remove anal reproductive organs|Surgery Degradation][$activeSlave.mpreg = 0,$activeSlave.ovaImplant = 0, $activeSlave.wombImplant = "none",$cash -= $surgeryCost, $activeSlave.health -= 30,$surgeryType = "mpreg removed"]]
+			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
 
-<<if $seeExtreme == 1 && $seeHyperPreg == 1 && $seePreg != 0 && $permaPregImplant == 1>>
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	<<if $activeSlave.assignment == "work in the dairy" && $dairyPregSetting > 0>>
-		$His womb is already rented out for the production of calves.
-	<<else>>
-		<<if isFertile($activeSlave) && $activeSlave.ovaryAge <= 46>>
-			$He could be made into a broodmother.
-		<<elseif $activeSlave.broodmother > 0>>
-			$He has been made into a <<if $activeSlave.broodmother > 1>>hyper-<</if>>broodmother.
-			<<if $activeSlave.womb.length == 0 >>
-				[[Remove a pregnancy generator|Surgery Degradation][$activeSlave.preg = 0,$activeSlave.pregWeek = -2,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0,$activeSlave.pregType = 0,$activeSlave.broodmother = 0,$activeSlave.broodmotherFetuses = 0,$activeSlave.broodmotherOnHold = 0,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "pregRemove"]]
-			<<else>>
-				$He is pregnant right now, so $his broodmother implant can't be safely extracted.
-				<<if $activeSlave.broodmother == 1 && $activeSlave.broodmotherFetuses == 1>> /*hack can be applied only one time, for type 1 broodmothers, and only if implant already present*/
-					<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-					[[Hack the pregnancy generator|Surgery Degradation][$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 1,$surgeryType = "preg1hack"]] //This will trick the generator ova release logic, forcing it to release more than one ova each week. This is an untested override and can cause severe health problems.//
-				<<elseif $activeSlave.broodmother == 1 && $activeSlave.broodmotherFetuses > 1>>
-					<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-					The implant firmware has already been adjusted.
+	<<if $seeExtreme == 1 && $seeHyperPreg == 1 && $seePreg != 0 && $permaPregImplant == 1>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		<<if $activeSlave.assignment == "work in the dairy" && $dairyPregSetting > 0>>
+			$His womb is already rented out for the production of calves.
+		<<else>>
+			<<if isFertile($activeSlave) && $activeSlave.ovaryAge <= 46>>
+				$He could be made into a broodmother.
+			<<elseif $activeSlave.broodmother > 0>>
+				$He has been made into a <<if $activeSlave.broodmother > 1>>hyper-<</if>>broodmother.
+				<<if $activeSlave.womb.length == 0 >>
+					[[Remove a pregnancy generator|Surgery Degradation][$activeSlave.preg = 0,$activeSlave.pregWeek = -2,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0,$activeSlave.pregType = 0,$activeSlave.broodmother = 0,$activeSlave.broodmotherFetuses = 0,$activeSlave.broodmotherOnHold = 0,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "pregRemove"]]
+				<<else>>
+					$He is pregnant right now, so $his broodmother implant can't be safely extracted.
+					<<if $activeSlave.broodmother == 1 && $activeSlave.broodmotherFetuses == 1>> /*hack can be applied only one time, for type 1 broodmothers, and only if implant already present*/
+						<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+						[[Hack the pregnancy generator|Surgery Degradation][$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 1,$surgeryType = "preg1hack"]] //This will trick the generator ova release logic, forcing it to release more than one ova each week. This is an untested override and can cause severe health problems.//
+					<<elseif $activeSlave.broodmother == 1 && $activeSlave.broodmotherFetuses > 1>>
+						<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+						The implant firmware has already been adjusted.
+					<</if>>
 				<</if>>
+			<<else>>
+				$His body cannot support being a broodmother.
 			<</if>>
-		<<else>>
-			$His body cannot support being a broodmother.
-		<</if>>
-		<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
-			<<if isFertile($activeSlave)>>
-				[[Implant a pregnancy generator|Surgery Degradation][$activeSlave.preg = 1,$activeSlave.pregWeek = 1,$activeSlave.pregKnown = 1,$activeSlave.pregType = 1,$activeSlave.broodmother = 1,$activeSlave.broodmotherFetuses = 1,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "preg"]] //This will have severe effects on $his health and mind//
+			<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
+				<<if isFertile($activeSlave)>>
+					[[Implant a pregnancy generator|Surgery Degradation][$activeSlave.preg = 1,$activeSlave.pregWeek = 1,$activeSlave.pregKnown = 1,$activeSlave.pregType = 1,$activeSlave.broodmother = 1,$activeSlave.broodmotherFetuses = 1,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "preg"]] //This will have severe effects on $his health and mind//
+				<</if>>
 			<</if>>
 		<</if>>
 	<</if>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 1ed233b5b4a..8206c8c2b44 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -128,6 +128,21 @@
 
 		/* MENTAL DEVELOPMENT */
 
+		<<if $slaves[$i].ovaImplant == "asexual" && canGetPregnant($slaves[$i])>>
+			The frequent internal ejaculations and accompanying climaxes brought about by $his ovarian modifications keeps $him sexually sated.
+			<<if ($slaves[$i].energy >= 10) && ($slaves[$i].attrXY >= 10 || $slaves[$i].attrXX >= 10)>>
+				However, the constant self-gratification @@.red;both damages what $he finds attractive and leaves sex less satisfying.@@
+				<<set $slaves[$i].energy -= 10, $slaves[$i].attrXY = Math.clamp($slaves[$i].attrXY-10,0,100), $slaves[$i].attrXX = Math.clamp($slaves[$i].attrXX-10,0,100)>>
+			<<elseif ($slaves[$i].energy >= 10)>>
+				However, the constant self-gratification @@.red;leaves sex less satisfying.@@
+				<<set $slaves[$i].energy -= 10>>
+			<<elseif ($slaves[$i].attrXY >= 10 || $slaves[$i].attrXX >= 10)>>
+				However, the constant self-gratification @@.red;twists what $he finds attractive.@@
+				<<set $slaves[$i].attrXY = Math.clamp($slaves[$i].attrXY-10,0,100), $slaves[$i].attrXX = Math.clamp($slaves[$i].attrXX-10,0,100)>>
+			<</if>>
+			<<set $slaves[$i].need = 0>>
+		<</if>>
+
 		<<if ($slaves[$i].attrKnown == 1)>>
 			<<if ($slaves[$i].attrXY <= 35)>>
 				<<if ($slaves[$i].energy >= 20)>>
@@ -3599,6 +3614,12 @@
 				<</if>> /* closes random chance and non-zero sex acts check */
 			<</switch>> /* closes assignment checks */
 		<</if>> /* closes all impregnation checks */
+
+		<<if $slaves[$i].ovaImplant == "asexual">>
+			<<= knockMeUp($slaves[$i], 100, 2, $slaves[$i].ID, 1)>>
+			Since $he is fertile and still not pregnant, the frequent orgasms caused by $his asexual reproduction modifications eventually leave $him @@.lime;pregnant with $his own child.@@
+		<</if>>
+
 	<</if>> /* CLOSES CAN GET PREGNANT */
 
 	/* PREGNANCY TYPE SANITY CHECK (not for pregnancies started above) */
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index aa363beeb8c..6a14ef1baec 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -585,6 +585,19 @@ As the remote surgery's long recovery cycle completes,
 		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen; it won't be clear to $him that menopause is not a concern for now. As with all surgery @@.red;$his health has been slightly affected.@@
 	<</if>>
 
+<<case "ovaImplant added" "ovaImplant removed">>
+	It's not immediately apparent to $him what kind of surgery $he received, since all $he's left with is a terrible nonspecific ache in $his lower abdomen.
+	<<if ($activeSlave.devotion > 50)>>
+		$He's @@.hotpink;grateful@@ that you think $him worthy of surgically modifying. As with all surgery @@.red;$his health has been slightly affected.@@
+		<<set $activeSlave.devotion += 4>>
+	<<elseif ($activeSlave.devotion >= -20)>>
+		$He understands the realities of $his life as a slave, but didn't expect to undergo a mysterious procedure like this. As with all surgery @@.red;$his health has been slightly affected.@@ $He is @@.gold;sensibly fearful@@ of your total power over $his body.
+		<<set $activeSlave.trust -= 5>>
+	<<else>>
+		$He does not understand the realities of $his life as a slave at a core level, so $he's @@.mediumorchid;terrified and angry@@ at what you could have possibly done to $him. As with all surgery @@.red;$his health has been slightly affected.@@ $He is @@.gold;sensibly fearful@@ of your total power over $his body.
+		<<set $activeSlave.trust -= 5, $activeSlave.devotion -= 5>>
+	<</if>>
+
 <<case "mpreg">>
 	$He leaves the surgery with a certain fullness in $his lower abdomen, $he knows that, despite lacking female reproductive organs, $he can now become pregnant.
 	<<if $activeSlave.fetish == "mindbroken">>
@@ -1917,34 +1930,52 @@ As the remote surgery's long recovery cycle completes,
 	<<if $activeSlave.fetish == "mindbroken">>
 		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but lacks the mental faculties to realize that $he now has a chance to get pregnant. As with all surgery @@.red;$his health has been slightly affected.@@
 	<<elseif (($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)) || $activeSlave.origin == "$He sold $himself to you in the hope of someday bearing children.">>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he now has a chance to get pregnant. $He is filled with joy whenever $he thinks about the fact that feeling a life growing within $him is now, at last, a possibility. $He now places @@.mediumaquamarine;total faith@@ in your plans for $his body and @@.hotpink;adores you@@ for giving $him a gift $he once thought impossible. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he now has a chance to get pregnant. $He is filled with joy whenever $he thinks about the fact that feeling a life growing within $him is now, at last, a possibility. $He now places @@.mediumaquamarine;total faith@@ in your plans for $his body and @@.hotpink;adores you@@ for giving $him a gift $he once thought impossible. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust += 10, $activeSlave.devotion += 10>>
 	<<elseif ($activeSlave.devotion > 50)>>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman. $He is @@.mediumaquamarine;tremendously impressed@@ that you would devote such immense resources to altering $his body, and is more willing than ever to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman. $He is @@.mediumaquamarine;tremendously impressed@@ that you would devote such immense resources to altering $his body, and is more willing than ever to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust += 5, $activeSlave.devotion += 5>>
 	<<elseif ($activeSlave.devotion >= -20)>>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, so much so that $he is now more willing to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, so much so that $he is now more willing to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust -= 5, $activeSlave.devotion += 5>>
 	<<else>>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, and @@.mediumorchid;furious@@ at $his lack of control over $his own person. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, and @@.mediumorchid;furious@@ at $his lack of control over $his own person. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust -= 5, $activeSlave.devotion -= 5>>
 	<</if>>
 
+<<case "asexualReproOvaries">>
+	<<if $activeSlave.fetish == "mindbroken">>
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but lacks the mental faculties to realize that $he is now self-impregnating. As with all surgery @@.red;$his health has been slightly affected.@@
+	<<elseif ($activeSlave.devotion > 50)>>
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to suspect that something has critically changed about $his reproductive system. $He is @@.mediumaquamarine;pleased@@ that you would go out of your way to alter $his body, and is more willing than ever to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
+		<<set $activeSlave.trust += 5, $activeSlave.devotion += 5>>
+	<<elseif ($activeSlave.devotion >= -20)>>
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to shudder at the thought of just what could have possibly been put into $him. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, so much so that $he is now more willing to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
+		<<set $activeSlave.trust -= 5, $activeSlave.devotion += 5>>
+	<<else>>
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to dread the discovery of what now resides inside $him. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, and @@.mediumorchid;furious@@ at $his lack of control over $his own person. As with all surgery @@.red;$his health has been slightly affected.@@
+		<<set $activeSlave.trust -= 5, $activeSlave.devotion -= 5>>
+	<</if>>
+	<<if canGetPregnant($activeSlave)>>
+		<<= knockMeUp($activeSlave, 100, 2, $activeSlave.ID, 1)>><</if>>
+		$He doesn't even have the chance to reach the slave quarters before $his new reproductive system detects $his unprotected fertility and begins to internally cum. <<if canWalk($activeSlave)>>$He struggles to stand as wave after wave of pleasure radiates from inside $his self-fertilizing womb<<else>>The slave carrying $him struggles to keep their grip on the orgasm wracked $girl<</if>>. By the time $he is finised, $he is a sweat-soaked, panting mess with a womb @@.lime;<<if $activeSlave.pregType > 50>>stuffed full of fertilized eggs<<elseif $activeSlave.pregType > 20>>filled with new life<<elseif $activeSlave.pregType > 1>>housing several new lives<<else>>filled with seed and a new life<</if>>.@@
+	<</if>>
+
 /* TODO: these descriptions may need some more tweaking to sound more natural */
 <<case "addAnimalOvaries">>
 	<<if $activeSlave.fetish == "mindbroken">>
 		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but lacks the mental faculties to realize that $he now has a chance of carrying an animal baby to term. As with all surgery @@.red;$his health has been slightly affected.@@
 	<<elseif (($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)) || $activeSlave.origin == "$He sold $himself to you in the hope of someday bearing children.">>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he now has a chance to get pregnant. $He is filled with joy whenever $he thinks about the fact that feeling a life growing within $him is now, at last, a possibility. $He now places @@.mediumaquamarine;total faith@@ in your plans for $his body and @@.hotpink;adores you@@ for giving $him a gift $he once thought impossible. $He doesn't realize exactly what the surgery entailed, however -- the happiness $he felt at first will most likely be replaced with horror once $he realizes the babies in $his womb are not human. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he now has a chance to get pregnant. $He is filled with joy whenever $he thinks about the fact that feeling a life growing within $him is now, at last, a possibility. $He now places @@.mediumaquamarine;total faith@@ in your plans for $his body and @@.hotpink;adores you@@ for giving $him a gift $he once thought impossible. $He doesn't realize exactly what the surgery entailed, however -- the happiness $he felt at first will most likely be replaced with horror once $he realizes the babies in $his womb are not human. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust += 10, $activeSlave.devotion += 10>>
 	<<elseif ($activeSlave.devotion > 50)>>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman -- at least, that's what $he believes. Little does $he know that $he is now capable of carrying animal babies in $his womb. $He is @@.mediumaquamarine;tremendously impressed@@ that you would devote such immense resources to altering $his body, and is more willing than ever to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman -- at least, that's what $he believes. Little does $he know that $he is now capable of carrying animal babies in $his womb. $He is @@.mediumaquamarine;tremendously impressed@@ that you would devote such immense resources to altering $his body, and is more willing than ever to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust += 5, $activeSlave.devotion += 5>>
 	<<elseif ($activeSlave.devotion >= -20)>>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman -- at least, that's what $he believes. Little does $he know that $he is now capable of carrying animal babies in $his womb. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, so much so that $he is now more willing to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman -- at least, that's what $he believes. Little does $he know that $he is now capable of carrying animal babies in $his womb. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, so much so that $he is now more willing to @@.hotpink;submit to your plans@@ for $his future. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust -= 5, $activeSlave.devotion += 5>>
 	<<else>>
-		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the fabricator can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman -- at least, that's what $he believes. Little does $he know that $he is now capable of carrying animal babies in $his womb. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, and @@.mediumorchid;furious@@ at $his lack of control over $his own person. As with all surgery @@.red;$his health has been slightly affected.@@
+		$He leaves the surgery with nothing but a nonspecific ache in $his lower abdomen, but $he has managed to catch enough slave rumors about what the organ farm can do to know that it means $he is now internally indistinguishable from a natural, unaltered woman -- at least, that's what $he believes. Little does $he know that $he is now capable of carrying animal babies in $his womb. $He is @@.gold;terrified@@ of your apparently untrammeled power over $his body, and @@.mediumorchid;furious@@ at $his lack of control over $his own person. As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.trust -= 5, $activeSlave.devotion -= 5>>
 	<</if>>
 
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 413e1fd9442..30f6ad06481 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -4760,7 +4760,7 @@ $He's got a
 	<<else>>
 		$activeSlave.skin pussylips.
 	<</if>>
-
+	
 	<<if ($activeSlave.vagina > -1)>>
 		<<if ($activeSlave.vaginaLube == 0)>>
 			<<if ($activeSlave.vagina > 0) && ($activeSlave.vaginalAccessory != "chastity belt")>>
@@ -4877,6 +4877,17 @@ $He's got a
 
 <</if>>
 
+<<if $activeSlave.ovaImplant != 0>>
+	<<switch $activeSlave.ovaImplant>>
+	<<case "fertility">>
+		$His ovaries have a pair of implants attached to them to encourage ovulation<<if $activeSlave.preg < -1>>, not that it does $him any good<</if>>.
+	<<case "sympathy">>
+		$His ovaries have a pair of linked implants attached to them so that when one releases an egg the other does so as well.
+	<<case "asexual">>
+		One of $his ovaries has been replaced with a fabricated sperm sack designed to fertilize any eggs $he makes.
+	<</switch>>
+<</if>>
+
 <<if $activeSlave.dick == 0 && $activeSlave.balls == 0 && $activeSlave.vagina < 0 && $arcologies[0].FSRestart > 60>>
 	Society looks fondly on $his complete inability to reproduce.
 <</if>>
@@ -4922,7 +4933,6 @@ $He's got a
 	<</if>>
 <</if>>
 
-
 <<if ($activeSlave.dick == 0)>>
 	<<if ($activeSlave.clit > 0)>>
 		<<if ($activeSlave.foreskin == 0)>>
@@ -16062,7 +16072,9 @@ $He has
 	<</if>>
 <</if>>
 <<if $activeSlave.pregKnown == 1 && $saleDescription == 0>>
-	<<if $activeSlave.preg > $activeSlave.pregData.normalBirth/8>>
+	<<if $activeSlave.pregSource == -7>>
+		$His womb contains <<if $activeSlave.pregType > 1>><<if $activeSlave.pregType > 10>>many <</if>> modified children<<else>>a modified child<</if>> from the gene lab.
+	<<elseif $activeSlave.preg > $activeSlave.pregData.normalBirth/8>>
 		<<if $activeSlave.pregSource == -1>>
 			Tests show $his womb contains <<if $activeSlave.pregType > 1>><<if $activeSlave.pregType > 10>>many of <</if>>your growing children<<else>>your growing child<</if>>.
 		<<elseif $activeSlave.pregSource == -2>>
-- 
GitLab