diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index ff009d2b75ffb833722d7b9f256d047eca7317a0..dab782f1b8e33c36c4794bf9dae0e6c398f0e6ca 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -811,6 +811,20 @@ window.ngUpdateGenePool = function(genePool) {
 	});
 }
 
+window.ngUpdateMissingTable = function(missingTable) {
+	var newTable = {};
+
+	(State.variables.slaves || [])
+	.forEach(s => ([s.pregSource+1200000,s.mother+1200000,s.father+1200000]
+	.filter(i => (i in missingTable))
+	.forEach(i => { 
+	newTable[i-1200000] = missingTable[i];
+	newTable[i-1200000].ID -= 1200000;
+	})));
+
+	return newTable;
+};
+
 window.toJson = function(obj) {
 	var jsontext = JSON.stringify(obj);
 	jsontext = jsontext.replace(/^{/,"");
@@ -9794,6 +9808,14 @@ window.WombZeroID = function(actor, id) {
 	WombNormalizePreg(actor);
 };
 
+window.WombChangeID = function(actor, fromID, toID) {
+	WombInit(actor);
+	actor.womb
+		.filter(ft => ft.fatherID === fromID)
+		.forEach(ft => ft.fatherID = toID);
+	WombNormalizePreg(actor);
+};
+
 /* Sorts the womb object by age with oldest and thus soonest to be born, first. This will be needed in the future once individual fertilization is a possibility.*/
 window.WombSort = function(actor) {
 	actor.womb.sort((a, b) => { return b.age - a.age; });
@@ -11862,10 +11884,16 @@ window.buildFamilyTree = function(slaves = State.variables.slaves, filterID) {
 		}
 		var mom = character.mother;
 		if(mom < -6) {
-			if(typeof outmoms[mom] == 'undefined') {
-				outmoms[mom] = [];
+			if (mom in State.variables.missingTable && State.variables.showMissingSlaves) {
+				node_lookup[mom] = family_graph.nodes.length;
+				var missing = State.variables.missingTable[mom];
+				charList.push({ID: mom, mother: 0, father: 0, is_mother: true, dick: missing.dick, vagina: missing.vagina, slaveName: missing.slaveName});
+			} else {
+				if(typeof outmoms[mom] == 'undefined') {
+					outmoms[mom] = [];
+				}
+				outmoms[mom].push(character.slaveName);
 			}
-			outmoms[mom].push(character.slaveName);
 		} else if(mom < 0 && typeof node_lookup[mom] == 'undefined' && typeof preset_lookup[mom] != 'undefined') {
 			node_lookup[mom] = family_graph.nodes.length;
 			charList.push({ID: mom, mother: 0, father: 0, is_father: true, dick: 0, vagina: 1, slaveName: preset_lookup[mom]});
@@ -11873,10 +11901,16 @@ window.buildFamilyTree = function(slaves = State.variables.slaves, filterID) {
 
 		var dad = character.father;
 		if(dad < -6) {
-			if(typeof outdads[dad] == 'undefined') {
-				outdads[dad] = [];
+			if (dad in State.variables.missingTable && State.variables.showMissingSlaves) {
+				node_lookup[dad] = family_graph.nodes.length;
+				var missing = State.variables.missingTable[dad];
+				charList.push({ID: dad, mother: 0, father: 0, is_father: true, dick: missing.dick, vagina: missing.vagina, slaveName: missing.slaveName});
+			} else {
+				if(typeof outdads[dad] == 'undefined') {
+					outdads[dad] = [];
+				}
+				outdads[dad].push(character.slaveName);
 			}
-			outdads[dad].push(character.slaveName);
 		} else if(dad < 0 && typeof node_lookup[dad] == 'undefined' && typeof preset_lookup[dad] != 'undefined') {
 			node_lookup[dad] = family_graph.nodes.length;
 			charList.push({ID: dad, mother: 0, father: 0, is_father: true, dick: 1, vagina: -1, slaveName: preset_lookup[dad]});
@@ -23162,6 +23196,8 @@ window.SlaveSummaryUncached = (function(){
 				handled = 1;
 			}
 			r += " ";
+		} else if (slave.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.mother].fullName}'s daughter `;
 		}
 		if (slave.father > 0 && slave.father !== slave.mother) {
 			let _ssj = V.slaves.findIndex(function(s) {
@@ -23195,6 +23231,8 @@ window.SlaveSummaryUncached = (function(){
 				handled = 1;
 			}
 			r += " ";
+		} else if (slave.father in V.missingTable && slave.father !== slave.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.father].fullName}'s daughter`;
 		}
 		if (slave.daughters === 1) {
 			let _ssj = V.slaves.findIndex(function(s) {
@@ -23422,6 +23460,8 @@ window.SlaveSummaryUncached = (function(){
 			} else {
 				r += `<span class="lightgreen">daughter.</span> `;
 			}
+		} else if (slave.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.mother].fullName}'s <span class="lightgreen">daughter.</span> `;
 		}
 		if (slave.father > 0 && slave.father !== slave.mother) {
 			let _ssj = V.slaves.findIndex(function(s) {
@@ -23456,6 +23496,8 @@ window.SlaveSummaryUncached = (function(){
 			} else {
 				r += `<span class="lightgreen">daughter.</span> `;
 			}
+		} else if (slave.father in V.missingTable && slave.father !== slave.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.father].fullName}'s <span class="lightgreen">daughter.</span> `;
 		}
 		if (slave.daughters === 1) {
 			let _ssj = V.slaves.findIndex(function(s) {
@@ -24101,7 +24143,10 @@ window.removeActiveSlave = function removeActiveSlave() {
 	const INDEX = V.slaveIndices[AS_ID];
 	let missing = false;
 
-	WombZeroID(V.PC, AS_ID);
+	WombChangeID(V.PC, AS_ID, V.missingParentID);
+	if (V.PC.pregSource === V.missingParentID) {
+		missing = true;
+	}
 	if (V.activeSlave.reservedChildren > 0) {
 		V.reservedChildren -= V.activeSlave.reservedChildren;
 	}
@@ -24138,7 +24183,10 @@ window.removeActiveSlave = function removeActiveSlave() {
 			});
 		}
 		V.slaves.forEach(slave => {
-			WombZeroID(slave, AS_ID); /* This check is complex, should be done in JS now, all needed will be done here. */
+			WombChangeID(slave, AS_ID, V.missingParentID); /* This check is complex, should be done in JS now, all needed will be done here. */ 
+			if (slave.pregSource === V.missingParentID) {
+				missing = true;
+			}
 			if (V.activeSlave.daughters > 0) {
 				if (slave.mother === AS_ID) {
 					slave.mother = V.missingParentID;
@@ -24286,13 +24334,19 @@ window.removeActiveSlave = function removeActiveSlave() {
 			}
 		}
 
-		removeSlave(INDEX);
-		LENGTH--;
-		V.activeSlave = 0;
-
 		if (missing) {
+			V.missingTable[V.missingParentID] = { slaveName: V.activeSlave.slaveName,
+							      slaveSurname: V.activeSlave.slaveSurname,
+							      fullName: SlaveFullName(V.activeSlave),
+                                                              dick : V.activeSlave.dick,
+                                                              vagina : V.activeSlave.vagina,
+							      ID : V.missingParentID };
 			V.missingParentID--;
 		}
+
+		removeSlave(INDEX);
+		LENGTH--;
+		V.activeSlave = 0;
 	}
 };
 
diff --git a/src/SpecialForce/JS.js b/src/SpecialForce/JS.js
index c90792a201640226898268989b02b6984acb4b83..0f51ed8ece7a7fd65337a9552f15f3ed6e7f8fa7 100644
--- a/src/SpecialForce/JS.js
+++ b/src/SpecialForce/JS.js
@@ -68,9 +68,9 @@ window.Count = function() {
 		T.Base = S.Firebase + S.Armoury + S.Drugs + S.Drones + T.H+T.SFF;
 		T.BaseU = T.FU + T.AU + T.DrugsU + T.DU + T.HU+T.SFFU;
 	}
-	if (V.terrain !== "oceanic") T.LBU += T.GRU, T.LB += S.GiantRobot, T.Base += T.G, T.BaseU += T.GU;
+	if (V.terrain !== "oceanic") { T.LBU += T.GRU, T.LB += S.GiantRobot, T.Base += T.G, T.BaseU += T.GU;
 	T.max = T.BaseU + T.LBU, V.SF.Units = T.Base + T.LB;
-	if (V.terrain === "oceanic" || V.terrain === "marine") {
+	} else {
 		T.NY = S.AircraftCarrier + S.Sub + S.HAT, V.SF.Units += T.NY;
 		T.NYU = T.ACU + T.SubU + T.HATU, T.max += T.NYU;}
 	V.SF.Units = C(V.SF.Units, 0, T.max);
diff --git a/src/SpecialForce/Report.tw b/src/SpecialForce/Report.tw
index 49899d18fb3e97f8105dbdabcb4c62181d663eea..dc06173356ef2ef2ac6c1a823f08f77c070aade6 100644
--- a/src/SpecialForce/Report.tw
+++ b/src/SpecialForce/Report.tw
@@ -130,7 +130,7 @@
 	
 		<<if $SFUnit.GiantRobot > 0>>
 	
-			<<set _FNGs += SF.GiantRobot,_Trade  += 0.25*$SFUnit.GiantRobot,_ME *= 1+($SFUnit.GiantRobot)>>
+			<<set _FNGs += $SFUnit.GiantRobot,_Trade  += 0.25*$SFUnit.GiantRobot,_ME *= 1+($SFUnit.GiantRobot)>>
 	
 		<</if>>
 	
@@ -168,7 +168,7 @@
 	
 	<<if $SFTradeShow.History > 0>> <<set _ME *= 1+($SFTradeShow.History)>> <</if>>
 	
-	<<if $LieutenantColonel == 1>> <<set _ME *= 1+($LieutenantColonel)>> <</if>>
+	<<if $SF.Facility.LC > 0>> <<set _ME *= 1+($SF.Facility.LC)>> <</if>>
 	
 	
 	
@@ -210,11 +210,11 @@
 	
 	<<else>> <<set _FNGs += Math.ceil((_FNGs)*.25)>> <</if>>
 	
-	<<if $SF.Target == "secure">> <<set $rep += Math.ceil($rep*((_Trade/100)*.95))>>
+	<<if $SF.Target == "secure">> <<set $rep += Math.ceil($rep+((_Trade/100)*.95))>>
 	
 		<<set $arcologies[0].prosperity = Math.ceil(($arcologies[0].prosperity+(_Trade/10)*.95))>>
 	
-	<<else>> <<set $rep += Math.ceil($rep*((_Trade/100)*.25))>>
+	<<else>> <<set $rep += Math.ceil($rep+((_Trade/100)*.25))>>
 	
 		<<set $arcologies[0].prosperity = Math.ceil(($arcologies[0].prosperity+(_Trade/10)*.25))>>
 	
diff --git a/src/SpecialForce/Upgrades.tw b/src/SpecialForce/Upgrades.tw
index 2da2e46c89b517ca5cba75d9510689d33a0e53c4..269032de2318c798cbf97ea87c9e23c185ff5af4 100644
--- a/src/SpecialForce/Upgrades.tw
+++ b/src/SpecialForce/Upgrades.tw
@@ -234,7 +234,7 @@
 	
 					<<link "Upgrade Satellite">><<set $SF.U = 1, $SFUnit.Satellite++, $cash -= _cSat>> <<goto "Firebase">><</link>>
 	
-				<<else>>//Cannot afford to upgrade Satellite.//>><</if>>
+				<<else>>//Cannot afford to upgrade Satellite.//<</if>>
 	
 				 //Costs @@.yellowgreen;<<print cashFormat(_cSat)>>@@//<span style="float:right;"><<print progress($SFUnit.Satellite)>> </span>
 	
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 9ae8c0cc7f126a962c83043f9e134c6fddf512ee..b94ac1052f3e40389bd60766b7d05dab1ecb4439 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -97,6 +97,11 @@ You should have received a copy of the GNU General Public License along with thi
 		<</if>>
 	<</for>>
 	<<set $genePool = ngUpdateGenePool($genePool)>>
+	<<if ndef $missingTable || $showMissingSlaves == 0>>
+		<<set $missingTable = {}>>
+	<<else>>
+		<<set $missingTable = ngUpdateMissingTable($missingTable)>>
+	<</if>>
 	/*
 	<<for $i = 0; $i < $genePool.length; $i++>>
 		<<for $k = 0; $k < $slaves.length; $k++>>
@@ -244,6 +249,9 @@ You should have received a copy of the GNU General Public License along with thi
 	<<set $slavesOriginal = []>> /* not used by pregmod */
 	<<set $genePool = []>>
 	<<set $slaveIndices = slaves2indices()>>
+        <<set $missingTable = {}>>
+	<<set $showMissingSlaves = false>>
+	<<set $showMissingSlavesSD = false>>
 <</if>>
 
 <<set $organs = []>>
diff --git a/src/js/familyTree.tw b/src/js/familyTree.tw
index 4a8fbfec0a204396730e049092baa8a0d1ec8906..74a03a79a1909fb3a5ab03023280798676b327c6 100644
--- a/src/js/familyTree.tw
+++ b/src/js/familyTree.tw
@@ -265,10 +265,16 @@ window.buildFamilyTree = function(slaves = State.variables.slaves, filterID) {
 		}
 		var mom = character.mother;
 		if(mom < -6) {
-			if(typeof outmoms[mom] == 'undefined') {
-				outmoms[mom] = [];
+			if (mom in State.variables.missingTable && State.variables.showMissingSlaves) {
+				node_lookup[mom] = family_graph.nodes.length;
+				var missing = State.variables.missingTable[mom];
+				charList.push({ID: mom, mother: 0, father: 0, is_mother: true, dick: missing.dick, vagina: missing.vagina, slaveName: missing.slaveName});
+			} else {
+				if(typeof outmoms[mom] == 'undefined') {
+					outmoms[mom] = [];
+				}
+				outmoms[mom].push(character.slaveName);
 			}
-			outmoms[mom].push(character.slaveName);
 		} else if(mom < 0 && typeof node_lookup[mom] == 'undefined' && typeof preset_lookup[mom] != 'undefined') {
 			node_lookup[mom] = family_graph.nodes.length;
 			charList.push({ID: mom, mother: 0, father: 0, is_father: true, dick: 0, vagina: 1, slaveName: preset_lookup[mom]});
@@ -276,10 +282,16 @@ window.buildFamilyTree = function(slaves = State.variables.slaves, filterID) {
 
 		var dad = character.father;
 		if(dad < -6) {
-			if(typeof outdads[dad] == 'undefined') {
-				outdads[dad] = [];
+			if (dad in State.variables.missingTable && State.variables.showMissingSlaves) {
+				node_lookup[dad] = family_graph.nodes.length;
+				var missing = State.variables.missingTable[dad];
+				charList.push({ID: dad, mother: 0, father: 0, is_father: true, dick: missing.dick, vagina: missing.vagina, slaveName: missing.slaveName});
+			} else {
+				if(typeof outdads[dad] == 'undefined') {
+					outdads[dad] = [];
+				}
+				outdads[dad].push(character.slaveName);
 			}
-			outdads[dad].push(character.slaveName);
 		} else if(dad < 0 && typeof node_lookup[dad] == 'undefined' && typeof preset_lookup[dad] != 'undefined') {
 			node_lookup[dad] = family_graph.nodes.length;
 			charList.push({ID: dad, mother: 0, father: 0, is_father: true, dick: 1, vagina: -1, slaveName: preset_lookup[dad]});
diff --git a/src/js/removeActiveSlave.tw b/src/js/removeActiveSlave.tw
index 6b8c3db5675fdfab8d607309771e9d16b04cdef2..4c69f001ed07aab0cc351168e8f6a05c50a59321 100644
--- a/src/js/removeActiveSlave.tw
+++ b/src/js/removeActiveSlave.tw
@@ -9,7 +9,10 @@ window.removeActiveSlave = function removeActiveSlave() {
 	const INDEX = V.slaveIndices[AS_ID];
 	let missing = false;
 
-	WombZeroID(V.PC, AS_ID);
+	WombChangeID(V.PC, AS_ID, V.missingParentID);
+	if (V.PC.pregSource === V.missingParentID) {
+		missing = true;
+	}
 	if (V.activeSlave.reservedChildren > 0) {
 		V.reservedChildren -= V.activeSlave.reservedChildren;
 	}
@@ -46,7 +49,10 @@ window.removeActiveSlave = function removeActiveSlave() {
 			});
 		}
 		V.slaves.forEach(slave => {
-			WombZeroID(slave, AS_ID); /* This check is complex, should be done in JS now, all needed will be done here. */
+			WombChangeID(slave, AS_ID, V.missingParentID); /* This check is complex, should be done in JS now, all needed will be done here. */ 
+			if (slave.pregSource === V.missingParentID) {
+				missing = true;
+			}
 			if (V.activeSlave.daughters > 0) {
 				if (slave.mother === AS_ID) {
 					slave.mother = V.missingParentID;
@@ -183,6 +189,9 @@ window.removeActiveSlave = function removeActiveSlave() {
 					keep = true;
 				}
 			}
+			if (isImpregnatedBy(V.PC, V.activeSlave)) { /* did we impregnate the PC */
+				keep = true;
+			}
 			if (!keep) { /* avoid going through this loop if possible */
 				keep = V.slaves.some(slave => {
 					/* have we impregnated a slave that is not ourself? */
@@ -194,12 +203,18 @@ window.removeActiveSlave = function removeActiveSlave() {
 			}
 		}
 
-		removeSlave(INDEX);
-		LENGTH--;
-		V.activeSlave = 0;
-
 		if (missing) {
+			V.missingTable[V.missingParentID] = { slaveName: V.activeSlave.slaveName,
+							      slaveSurname: V.activeSlave.slaveSurname,
+							      fullName: SlaveFullName(V.activeSlave),
+                                                              dick : V.activeSlave.dick,
+                                                              vagina : V.activeSlave.vagina,
+							      ID : V.missingParentID };
 			V.missingParentID--;
 		}
+
+		removeSlave(INDEX);
+		LENGTH--;
+		V.activeSlave = 0;
 	}
 };
diff --git a/src/js/slaveSummaryWidgets.tw b/src/js/slaveSummaryWidgets.tw
index 557162709e93d664ed1f146ee70adcd93ae16d75..3309884d94e4bb9686afd3479d40c5a81fdf34ac 100644
--- a/src/js/slaveSummaryWidgets.tw
+++ b/src/js/slaveSummaryWidgets.tw
@@ -3673,6 +3673,8 @@ window.SlaveSummaryUncached = (function(){
 				handled = 1;
 			}
 			r += " ";
+		} else if (slave.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.mother].fullName}'s daughter `;
 		}
 		if (slave.father > 0 && slave.father !== slave.mother) {
 			let _ssj = V.slaves.findIndex(function(s) {
@@ -3706,6 +3708,8 @@ window.SlaveSummaryUncached = (function(){
 				handled = 1;
 			}
 			r += " ";
+		} else if (slave.father in V.missingTable && slave.father !== slave.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.father].fullName}'s daughter`;
 		}
 		if (slave.daughters === 1) {
 			let _ssj = V.slaves.findIndex(function(s) {
@@ -3933,6 +3937,8 @@ window.SlaveSummaryUncached = (function(){
 			} else {
 				r += `<span class="lightgreen">daughter.</span> `;
 			}
+		} else if (slave.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.mother].fullName}'s <span class="lightgreen">daughter.</span> `;
 		}
 		if (slave.father > 0 && slave.father !== slave.mother) {
 			let _ssj = V.slaves.findIndex(function(s) {
@@ -3967,6 +3973,8 @@ window.SlaveSummaryUncached = (function(){
 			} else {
 				r += `<span class="lightgreen">daughter.</span> `;
 			}
+		} else if (slave.father in V.missingTable && slave.father !== slave.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[slave.father].fullName}'s <span class="lightgreen">daughter.</span> `;
 		}
 		if (slave.daughters === 1) {
 			let _ssj = V.slaves.findIndex(function(s) {
diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw
index 7dc0173b5f3fe0624d30fd4b6ebc2318629b6c12..59995968ae1531a85678733c52d85d211f1b332e 100644
--- a/src/js/storyJS.tw
+++ b/src/js/storyJS.tw
@@ -808,6 +808,20 @@ window.ngUpdateGenePool = function(genePool) {
 	});
 }
 
+window.ngUpdateMissingTable = function(missingTable) {
+	var newTable = {};
+
+	(State.variables.slaves || [])
+	.forEach(s => ([s.pregSource+1200000,s.mother+1200000,s.father+1200000]
+	.filter(i => (i in missingTable))
+	.forEach(i => { 
+	newTable[i-1200000] = missingTable[i];
+	newTable[i-1200000].ID -= 1200000;
+	})));
+
+	return newTable;
+};
+
 window.toJson = function(obj) {
 	var jsontext = JSON.stringify(obj);
 	jsontext = jsontext.replace(/^{/,"");
@@ -953,4 +967,4 @@ window.SoftenSexualFlaw = function SoftenSexualFlaw(slave) {
 			break;
 	}
 	slave.sexualFlaw = "none";
-};
\ No newline at end of file
+};
diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw
index ea9fc9d33e425c48fd48caf7b007c67327d35828..ca6a44655a6a8036b602a1fbaa57ec2798ad1cad 100644
--- a/src/js/wombJS.tw
+++ b/src/js/wombJS.tw
@@ -276,6 +276,15 @@ window.WombZeroID = function(actor, id) {
 	WombNormalizePreg(actor);
 };
 
+window.WombChangeID = function(actor, fromID, toID) {
+	WombInit(actor);
+	actor.womb
+		.filter(ft => ft.fatherID === fromID)
+		.forEach(ft => ft.fatherID = toID);
+	WombNormalizePreg(actor);
+};
+
+
 /* Sorts the womb object by age with oldest and thus soonest to be born, first. This will be needed in the future once individual fertilization is a possibility.*/
 window.WombSort = function(actor) {
 	actor.womb.sort((a, b) => { return b.age - a.age; });
diff --git a/src/pregmod/generateChild.tw b/src/pregmod/generateChild.tw
index 878a029f25ecddfdc041d7b283123a3c0485cf54..023e75bd4637f50179ef14ed04c542a33a85dd50 100644
--- a/src/pregmod/generateChild.tw
+++ b/src/pregmod/generateChild.tw
@@ -5,10 +5,10 @@
 	<<set $mergeDad = 0>>
 	<<for $m = 0; $m < $genePool.length; $m++>>
 		<<if $mom.ID == $genePool[$m].ID>>
-			<<set $mergeMom = $genePool[$m]>>
+			<<set $mergeMom = clone($genePool[$m])>>
 		<</if>>
 		<<if $mom.pregSource == $genePool[$m].ID>>
-			<<set $mergeDad = $genePool[$m]>>
+			<<set $mergeDad = clone($genePool[$m])>>
 		<</if>>
 	<</for>>
 	<<if $mom.pregSource == -1>>
diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw
index 08e48ab8cda1f0e113590b60b2d30e68c7fff150..3eeff1bdd2ee65cebfac28e914828d1b3e3158d5 100644
--- a/src/pregmod/managePersonalAffairs.tw
+++ b/src/pregmod/managePersonalAffairs.tw
@@ -358,7 +358,7 @@ __Rumors__
 		<</link>>
 	</span>
 	*/
-	<<if totalPlayerRelatives($PC) > 0>>
+	<<if totalPlayerRelatives($PC) > 0 || ($showMissingSlaves && ($PC.mother in $missingTable || $PC.father in $missingTable))>>
 		<<PlayerFamily>>
 	<</if>>
 <</if>>
diff --git a/src/pregmod/testGenetics.tw b/src/pregmod/testGenetics.tw
index 4499bbb868b6665eb60245a5c945ad2912fd09ca..e7064b3cc5231b02a3eaeee43ce31d5155f6bbae 100644
--- a/src/pregmod/testGenetics.tw
+++ b/src/pregmod/testGenetics.tw
@@ -50,3 +50,15 @@ All slave array slaves MUST be present in genePool or else there is a malfunctio
 	<</if>>
 <</for>>
 </table>
+
+<<if _errorCause>>
+	@@.red;Errors in the gene pool detected! Please report this.@@
+	<<link "Add missing slaves to the gene pool">>
+		<<for _i = 0; _i < $slaves.length; _i++>>
+			<<if $genePool.every(function(g) { return $slaves[_i].ID !== g.ID; })>>
+				<<set $genePool.push($slaves[_i])>>
+			<</if>>
+		<</for>>
+		<<goto "Main">>
+	<</link>> //This will not fix missing properties.//
+<</if>>
diff --git a/src/pregmod/widgets/assignmentFilterWidget.tw b/src/pregmod/widgets/assignmentFilterWidget.tw
index fb792ea4996fa10f36c1cb93372b7b4f4ae2c9d9..11529c1f5114e7f93338ad5f006e7287c3ada02b 100644
--- a/src/pregmod/widgets/assignmentFilterWidget.tw
+++ b/src/pregmod/widgets/assignmentFilterWidget.tw
@@ -110,6 +110,6 @@
 	<<link Spa>><<spaAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>><<print " | ">>
 	<<link Nursery>><<nurseryAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>><<print " | ">>
 	<<link Suite>><<suiteAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>><<print " | ">>
-	<<link Quarters>><<spaAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>>
+	<<link Quarters>><<quartersAssignmentFilter>><<replace $args.full>><<include 'Slave Summary'>><</replace>><</link>>
 	<<resetAssignmentFilter>>
 <</widget>>
\ No newline at end of file
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index b208f1aef2c065c25b4ad48435c6a6e98b1057df..214577f730e604db90ff6175861aa61da596d213 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -338,6 +338,8 @@
 <<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>>
 <<if def _getFather>>
 	<<set $daddy = _getFather.slaveName>>
+<<elseif $slaves[$i].pregSource in $missingTable && $showMissingSlaves>>
+	<<set $daddy = $missingTable[$slaves[$i].pregSource].slaveName>>
 <<else>>
 	<<set $daddy = "some unknown father">>
 <</if>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 587897030fe5a23f32658a66741f0ea9858107c3..bcf1c498c1df7883a68b6b0a387e72db7f9dfc40 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -3377,6 +3377,9 @@ Setting missing slave variables:
 			<<set _dontDeleteMe = 1>>
 		<</if>>
 	<</if>>
+	<<if isImpregnatedBy($PC, _Slave)>> /* did we impregnate the PC */
+		<<set _dontDeleteMe = 1>>
+	<</if>>
 	<<if _dontDeleteMe == 0>> /* avoid going through this loop if possible */
 		<<for _bci2 = 0; _bci2 < $slaves.length; _bci2++>>
 			<<if isImpregnatedBy($slaves[_bci2], _Slave)>> /* have we impregnated a slave on the slaves array? */
@@ -3434,6 +3437,16 @@ Done!
 	<<set $brothelAdsSpending = 0>>
 <</if>>
 
+<<if ndef $missingTable>>
+	<<set $missingTable = {}>>
+<</if>>
+<<if ndef $showMissingSlaves>>
+	<<set $showMissingSlaves = false>>
+<</if>>
+<<if ndef $showMissingSlavesSD>>
+	<<set $showMissingSlavesSD = false>>
+<</if>>
+
 <<for _bci = 0; _bci < $defaultRules.length; _bci++>>
 	<<set _rule = $defaultRules[_bci].set>>
 	<<if !([true, false, "no default setting"].includes(_rule.preg))>>
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index 7117133cc45a91c18c3d847197c9840cd964fe6b..2b7566be0eae3432957ddeab8536e3e78fa9ac1f 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -310,7 +310,7 @@ After you complete your weekly inspection of <<EventNameLink $activeSlave>>, the
 $desc
 asks if $he can beg a favor. Absurd though it sounds, $he does exactly that, saying in $his <<if $activeSlave.voice > 2>>high<<elseif $activeSlave.voice > 1>>feminine<<else>>bimbo<</if>> voice, "<<Master>>, may I a<<s>>k a favor?" You take a moment to look at $him, standing there in front of your desk. $He's devoted to you, willing to please you for the sake of pleasing you, rather than to avoid punishment or make $his own life easier. And $he's very trusting, confident that $he can say such an odd thing without fear. So, you hear $him out.
 <br><br>
-"Thank you, <<Master>>," $he <<say>>s. "I would like to do <<s>>omething for $subSlave.slaveName." You ask if $he's worried about $his <<if $activeSlave.relationship >= 5>>wife<<else>>girlfriend<</if>> for some reason. "Oh no, <<Master>>," $he answers hurriedly. "No, no, that came out wrong. It'<<s>> ju<<s>>t that I love <<him 2>> and I want to, you know, get <<him 2>> <<s>>omething or do <<s>>omething <<s>>pe<<c>>ial for <<him 2>>. We don't really have <<s>>tuff of our own, <<s>>o I can't give <<him 2>> a pre<<s>>ent, and we already do everything either one of u<<s>> want<<s>> in bed, <<s>>o I can't really think of anything." $He <<if canSee($activeSlave)>>looks<<else>>gazes<</if>> at you hopefully.
+"Thank you, <<Master>>," $he <<say>>s. "I would like to do <<s>>omething for $subSlave.slaveName." You ask if $he's worried about $his <<if $activeSlave.relationship >= 5>>wife<<else>>girlfriend<</if>> for some reason. "Oh no, <<Master>>," $he answers hurriedly. "No, no, that came out wrong. It'<<s>> ju<<s>>t that I love _him2 and I want to, you know, get _him2 <<s>>omething or do <<s>>omething <<s>>pe<<c>>ial for _him2. We don't really have <<s>>tuff of our own, <<s>>o I can't give _him2 a pre<<s>>ent, and we already do everything either one of u<<s>> want<<s>> in bed, <<s>>o I can't really think of anything." $He <<if canSee($activeSlave)>>looks<<else>>gazes<</if>> at you hopefully.
 
 <<case "anal cowgirl">>
 
@@ -364,20 +364,20 @@ Surprisingly, the slave on top doesn't seem too unhappy with this. _He2's no sla
 breathlessly, doing _his2 best to greet you properly despite the bouncing.
 <br><br>
 $activeSlave.slaveName stops thrusting, and $his <<if $activeSlave.face > 95>>gorgeous<<elseif $activeSlave.face >= -10>>pretty<<else>>homely<</if>> face instantly appears, craning out from behind $subSlave.slaveName's back to see. "Oh, hi, <<Master>>!" $he says with a cheerful smile, <<if $activeSlave.muscles > 30>>not breathing hard at all despite bouncing a girl off $his crotch<<elseif $activeSlave.muscles > 5>>barely out of breath despite the effort<<else>>completely out of breath<</if>>.
-"I <<if canSee($activeSlave)>><<s>>aw<<else>>heard<</if>> <<him>> going by, and I thought <<he>>'d look cute with <<if canPenetrate($activeSlave)>>my dick<<else>>a <<s>>trap-on<</if>> up <<his>> butthole,
+"I <<if canSee($activeSlave)>><<s>>aw<<else>>heard<</if>> _him2 going by, and I thought <<he>>'d look cute with <<if canPenetrate($activeSlave)>>my dick<<else>>a <<s>>trap-on<</if>> up <<his>> butthole,
 <<if $universalRulesConsent == 0>>
-	<<s>>o I told <<him>> to get in here and take it."
+	<<s>>o I told _him2 to get in here and take it."
 <<else>>
-	<<s>>o I a<<s>>ked <<him>> to come in, and <<he>> did!"
+	<<s>>o I a<<s>>ked _him2 to come in, and <<he>> did!"
 <</if>>
 $He shrugs.
 <<if $activeSlave.fetish == "sadist">>
 	"I thought <<he>> wa<<s>> going to whine and <<s>>truggle, but <<he>>'<<s>> kinda di<<ss>>appointing."
 <<elseif $activeSlave.fetish == "pregnancy" && $subSlave.belly >= 10000>>
 	<<if $subSlave.bellyPreg >= 8000>>
-		"<<He>>'<<s>> <<s>>o pregnant, I ju<<s>>t had to fuck <<him>>. I'm <<s>>urpri<<s>>ed <<he>>'<<s>> enjoying it <<s>>o much."
+		"<<He>>'<<s>> <<s>>o pregnant, I ju<<s>>t had to fuck _him2. I'm <<s>>urpri<<s>>ed <<he>>'<<s>> enjoying it <<s>>o much."
 	<<else>>
-		"<<His>> belly'<<s>> <<s>>o round, I ju<<s>>t had to fuck <<him>>. I ju<<s>>t wi<<sh>> <<he>> wa<<s>> pregnant."
+		"<<His>> belly'<<s>> <<s>>o round, I ju<<s>>t had to fuck _him2. I ju<<s>>t wi<<sh>> <<he>> wa<<s>> pregnant."
 	<</if>>
 <<elseif $activeSlave.fetish == "buttslut">>
 	"I like butt<<s>>e<<x>> <<s>>o much, it'<<s>> good to give back."
@@ -735,20 +735,20 @@ $activeSlave.slaveName senses your presence above and behind $him, and twists $h
 <<elseif $activeSlave.fetishKnown && $activeSlave.fetish == "dom">>
 	"The crying almo<<s>>t make<<s>> me feel bad, but fucking a bitch feel<<s>> <<s>>o, <<s>>o good," the dominant $desc admits conversationally.
 <<elseif $activeSlave.fetishKnown && $activeSlave.fetish == "pregnancy" && _vaginal == 1 && canImpreg($subSlave, $activeSlave)>>
-	"I couldn't help my<<s>>elf," the $desc admits. "<<He 2>>'d look <<s>>o pretty with a pregnant belly and I ju<<s>>t couldn't re<<s>>i<<s>>t giving <<him 2>> one. <<He 2>> tried to <<s>>ay <<he 2>> didn't want to be a mother, <<s>>o..."
+	"I couldn't help my<<s>>elf," the $desc admits. "<<He 2>>'d look <<s>>o pretty with a pregnant belly and I ju<<s>>t couldn't re<<s>>i<<s>>t giving _him2 one. <<He 2>> tried to <<s>>ay <<he 2>> didn't want to be a mother, <<s>>o..."
 <<elseif $activeSlave.energy > 95>>
 	"I can't help my<<s>>elf," the nymphomaniac $desc admits breathlessly. "Thank you for letting me take what I need from the other girl<<s>>."
 <<elseif $activeSlave.energy > 60>>
 	"I couldn't help my<<s>>elf," the $desc admits. "I wa<<s>> really, really horny and <<he 2>> was ju<<s>>t, um, there. And <<he 2>> tried to <<s>>ay no."
 <<else>>
-	"I know it'<<s>> not like me," the $desc admits. "But I a<<s>>ked <<him 2>>, like, mo<<s>>tly joking, and <<he 2>> tried to <<s>>ay no."
+	"I know it'<<s>> not like me," the $desc admits. "But I a<<s>>ked _him2, like, mo<<s>>tly joking, and <<he 2>> tried to <<s>>ay no."
 <</if>>
 <br><br>
 <<run Enunciate($subSlave)>>
-$subSlave.slaveName <<if _vaginal>>looks out from under $activeSlave.slaveName<<else>>turns _his2 head<</if>> and <<if canSee($subSlave)>>looks at<<else>>faces<</if>> you too. "<<Master $subSlave>>, plea<<s>>e," _he2 begs. "P-plea<<s>>e, make <<him>> <<s>>-<<s>>top - mhhh -" $activeSlave.slaveName shuts _him2 up by <<if _vaginal>>kissing _his2 unwilling mouth<<else>>shoving _his2 face back against the floor<</if>>. Once $he has $subSlave.slaveName back under control, $activeSlave.slaveName slows $his thrusting, reaches around behind $himself, and <<if $activeSlave.vagina != 0 && canDoVaginal($activeSlave)>>spreads $his futa pussy for you.<<else>>pulls one asscheek aside to offer you $his anus. To make the offer extra clear, $he starts winking it lewdly.<</if>>
+$subSlave.slaveName <<if _vaginal>>looks out from under $activeSlave.slaveName<<else>>turns _his2 head<</if>> and <<if canSee($subSlave)>>looks at<<else>>faces<</if>> you too. "<<Master $subSlave>>, plea<<s>>e," _he2 begs. "P-plea<<s>>e, make $him <<s>>-<<s>>top - mhhh -" $activeSlave.slaveName shuts _him2 up by <<if _vaginal>>kissing _his2 unwilling mouth<<else>>shoving _his2 face back against the floor<</if>>. Once $he has $subSlave.slaveName back under control, $activeSlave.slaveName slows $his thrusting, reaches around behind $himself, and <<if $activeSlave.vagina != 0 && canDoVaginal($activeSlave)>>spreads $his futa pussy for you.<<else>>pulls one asscheek aside to offer you $his anus. To make the offer extra clear, $he starts winking it lewdly.<</if>>
 <br><br>
 <<run Enunciate($activeSlave)>>
-"Plea<<s>>e fuck me while I rape <<him 2>>, <<Master>>," $activeSlave.slaveName <<say>>s in a mockery of $subSlave.slaveName's <<if $subSlave.voice > 2>>high-pitched whining<<elseif $subSlave.voice > 1>>begging<<else>>deep-voiced begging<</if>>. "Ooh, or, plea<<s>>e, <<Master>>, may I flip <<him 2>> over? I'd love to feel <<if $PC.dick>>your cock in<<s>>ide <<him 2>> along<<s>>ide mine<<else>>that <<s>>trap-on you u<<s>>e in<<s>>ide <<him 2>> along<<s>>ide my cock<</if>>!"
+"Plea<<s>>e fuck me while I rape _him2, <<Master>>," $activeSlave.slaveName <<say>>s in a mockery of $subSlave.slaveName's <<if $subSlave.voice > 2>>high-pitched whining<<elseif $subSlave.voice > 1>>begging<<else>>deep-voiced begging<</if>>. "Ooh, or, plea<<s>>e, <<Master>>, may I flip _him2 over? I'd love to feel <<if $PC.dick>>your cock in<<s>>ide _him2 along<<s>>ide mine<<else>>that <<s>>trap-on you u<<s>>e in<<s>>ide _him2 along<<s>>ide my cock<</if>>!"
 <br><br>
 <<run Enunciate($subSlave)>>
 "Plea<<s>>e, no," sobs $subSlave.slaveName.
@@ -1689,7 +1689,7 @@ $he adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of
 	<<replace "#result">>
 	You order $activeSlave.slaveName to go back to what $he was doing. $He's a little disappointed you're not joining in, but $he obeys, pounding the crying $subSlave.slaveName without mercy. Then $activeSlave.slaveName feels the head of <<if $PC.dick>>your dick<<else>>a strap-on<</if>> brush $his butt.
 	<<run Enunciate($activeSlave)>>
-	"Ooh!" $he squeals, @@.hotpink;pleased $he was wrong after all.@@ "Ye<<s>>, thank you, <<Master>>! Fuck me! Fuck me while I rape <<him 2>>!" Underneath $him, $subSlave.slaveName cries harder, even though $activeSlave.slaveName has to stop $his thrusting for a moment to let you inside. In fact, you reflect as you hammer $activeSlave.slaveName's <<if $activeSlave.vagina != 0 && canDoVaginal($activeSlave)>><<if $activeSlave.vagina > 2>>roomy<<elseif $activeSlave.vagina > 1>>delectable<<else>>tight little<</if>> cunt<<else>><<if $activeSlave.anus > 2>>gaping<<elseif $activeSlave.anus > 1>>relaxed<<else>>poor little<</if>> asspussy<</if>>, it's a little strange that $subSlave.slaveName @@.gold;seems to think this is worse@@ than just being raped by $activeSlave.slaveName. After all, having your <<if $PC.dick>>turgid cock<<else>>formidable strap-on<</if>> sliding energetically in and out of $his <<if $activeSlave.vagina != 0 && canDoVaginal($activeSlave)>>womanhood<<else>>rectum<</if>> is cramping $activeSlave.slaveName's style a bit. Maybe it's that $subSlave.slaveName is a little squashed under there.
+	"Ooh!" $he squeals, @@.hotpink;pleased $he was wrong after all.@@ "Ye<<s>>, thank you, <<Master>>! Fuck me! Fuck me while I rape _him2!" Underneath $him, $subSlave.slaveName cries harder, even though $activeSlave.slaveName has to stop $his thrusting for a moment to let you inside. In fact, you reflect as you hammer $activeSlave.slaveName's <<if $activeSlave.vagina != 0 && canDoVaginal($activeSlave)>><<if $activeSlave.vagina > 2>>roomy<<elseif $activeSlave.vagina > 1>>delectable<<else>>tight little<</if>> cunt<<else>><<if $activeSlave.anus > 2>>gaping<<elseif $activeSlave.anus > 1>>relaxed<<else>>poor little<</if>> asspussy<</if>>, it's a little strange that $subSlave.slaveName @@.gold;seems to think this is worse@@ than just being raped by $activeSlave.slaveName. After all, having your <<if $PC.dick>>turgid cock<<else>>formidable strap-on<</if>> sliding energetically in and out of $his <<if $activeSlave.vagina != 0 && canDoVaginal($activeSlave)>>womanhood<<else>>rectum<</if>> is cramping $activeSlave.slaveName's style a bit. Maybe it's that $subSlave.slaveName is a little squashed under there.
 	<<set $activeSlave.devotion += 4>>
 	<<set $activeSlave.penetrativeCount++, $penetrativeTotal++>>
 	<<if $activeSlave.vagina != 0 && canDoVaginal($activeSlave)>>
@@ -1798,7 +1798,7 @@ $he adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of
 	<</if>>
 	_He2 was on the edge of orgasm when you stepped in, and this is just too much. _He2 climaxes with indecent speed, involuntarily humping against the machine, shooting rope after rope of _his2 cum into $activeSlave.slaveName's mouth<<if $PC.dick>> and spasming against your invading penis wonderfully<</if>>. You hold the quivering $subSlave.slaveName down and keep hammering _him2 until you're certain _he2's fed $activeSlave.slaveName every drop _he2 has. Then you let _him2 up.
 	<br><br>
-	As $subSlave.slaveName stumbles off, looking @@.hotpink;rather submissive,@@ $activeSlave.slaveName scoots out from underneath the machine. "<<Master>>," $he <<say>>s @@.hotpink;devotedly,@@ "that ta<<s>>ted incredible. It ta<<s>>te<<s>> <<s>>o much better when you fuck it out of <<him 2>>!" $He rubs $his<<if $activeSlave.belly >= 5000>> rounded<</if>> tummy with exaggerated satisfaction, and then realizes that you weren't fucking for nearly long enough to have gotten off yourself.
+	As $subSlave.slaveName stumbles off, looking @@.hotpink;rather submissive,@@ $activeSlave.slaveName scoots out from underneath the machine. "<<Master>>," $he <<say>>s @@.hotpink;devotedly,@@ "that ta<<s>>ted incredible. It ta<<s>>te<<s>> <<s>>o much better when you fuck it out of _him2!" $He rubs $his<<if $activeSlave.belly >= 5000>> rounded<</if>> tummy with exaggerated satisfaction, and then realizes that you weren't fucking for nearly long enough to have gotten off yourself.
 	<<if $activeSlave.lactation || $activeSlave.balls>>
 		"I need to be milked now, too," $he <<say>>s flirtily, and turns to mount the machine in turn. "Plea<<s>>e, plea<<s>>e do me too!" The machine hasn't had a turn first, this time, so $he's much tighter<<if $PC.dick>>, and when $he's done being milked, $he's got a load of your cum inside $him<</if>>.
 		<<set $activeSlave.analCount++, $analTotal++>>
diff --git a/src/uncategorized/cellblock.tw b/src/uncategorized/cellblock.tw
index 450f46a28a181f53afc9a1b9a985c8d65bf0c00a..371f3c943d44b89f0704d7b26d37a066e59e5532 100644
--- a/src/uncategorized/cellblock.tw
+++ b/src/uncategorized/cellblock.tw
@@ -119,7 +119,7 @@ $cellblockNameCaps
 <<if ($cellblock <= $cellblockSlaves)>>
 	''$cellblockNameCaps is full and cannot hold any more slaves''
 <<elseif ($slaves.length > $cellblockSlaves)>>
-	<<link "''Send a resistant slave to be broken in the cellblock''">>
+	<<link "''Send a resistant slave to be broken in $cellblockName''">>
 		<<replace #ComingGoing>>
 			<<resetAssignmentFilter>>
 			<<set $Flag = 0>>
@@ -129,7 +129,7 @@ $cellblockNameCaps
 <</if>>
 
 <<if $cellblockSlaves > 0>>
-	| <<link "''Let a slave out of the cellblock''">>
+	| <<link "''Let a slave out of $cellblockName''">>
 		<<replace #ComingGoing>>
 			<<cellblockAssignmentFilter>>
 			<<set $Flag = 1>>
@@ -138,7 +138,7 @@ $cellblockNameCaps
 		<</replace>>
 	<</link>>
 <<else>>
-	<br><br>//The cellblock is empty for the moment.<br>//
+	<br><br>//$cellblockNameCaps is empty for the moment.<br>//
 <</if>>
 <br><br>
 <<assignmentFilter>>
diff --git a/src/uncategorized/clinic.tw b/src/uncategorized/clinic.tw
index 941cdcd254ca30066b2ae2682d0f45b0b6de6711..cc13f403f254525c557672c98176d2b42bab94e9 100644
--- a/src/uncategorized/clinic.tw
+++ b/src/uncategorized/clinic.tw
@@ -154,7 +154,7 @@ $clinicNameCaps
 <</if>>
 
 <<if $clinicSlaves > 0>>
-	| <<link "''Take a slave out of the clinic''">>
+	| <<link "''Take a slave out of $clinicName''">>
 		<<replace #ComingGoing>>
 			<<clinicAssignmentFilter>>
 			<<set $Flag = 1>>
@@ -163,7 +163,7 @@ $clinicNameCaps
 		<</replace>>
 	<</link>>
 <<else>>
-	<br><br>//The clinic is empty for the moment.<br>//
+	<br><br>//$clinicNameCaps is empty for the moment.<br>//
 <</if>>
 <br><br>
 <<assignmentFilter>>
diff --git a/src/uncategorized/masterSuite.tw b/src/uncategorized/masterSuite.tw
index 563f60d2dde9e25da2b821823c4ae2ece772655f..234f7c72c83a4ab66a47a23726c0450a744ed053 100644
--- a/src/uncategorized/masterSuite.tw
+++ b/src/uncategorized/masterSuite.tw
@@ -366,7 +366,7 @@ $masterSuiteNameCaps is furnished
 <</if>>
 
 <<if $masterSuiteSlaves > 0>>
-	| <<link "''Bring a slave out of the master suite''">>
+	| <<link "''Bring a slave out of $masterSuiteName''">>
 		<<replace #ComingGoing>>
 			<<suiteAssignmentFilter>>
 			<<set $Flag = 1>>
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index b54111b94993fe26f7a67b12a08516d0573fe608..fe994fdb72c0538ecea1a48784e42c614e68c2c2 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -405,6 +405,13 @@ Male slave names are currently @@.red;FORBIDDEN@@. [[Allow|Options][$allowMaleSl
 <</if>>
 //This only affects slave generation and not your ability to name your slaves.//
 
+<br>
+<<if $showMissingSlaves>>
+Missing slave names are currently @@.cyan;SHOWN@@. [[Hide|Options][$showMissingSlaves = 0]]
+<<else>>
+Missing slave names are currently @@.red;HIDDEN@@. [[Show|Options][$showMissingSlaves = 1]]
+<</if>>
+
 <br><br>
 ''INTERSECTING MECHANICS''
 <br>
diff --git a/src/uncategorized/schoolroom.tw b/src/uncategorized/schoolroom.tw
index 9e1296800f356ef972a9e0b91e98d9bd174962b2..74072d25e591c9c9599484e66971fae7dbb83306 100644
--- a/src/uncategorized/schoolroom.tw
+++ b/src/uncategorized/schoolroom.tw
@@ -144,7 +144,7 @@ $schoolroomNameCaps is well-equipped, with wallscreens to display lessons. These
 		<</replace>>
 	<</link>>
 <<else>>
-	<br><br>//The classroom is empty for the moment.<br>//
+	<br><br>//$schoolroomNameCaps is empty for the moment.<br>//
 <</if>>
 <br><br>
 <<assignmentFilter>>
diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw
index 1b9182b1875f5b0de8776ba8b325e283fc16a1cc..d1e7d8eac516ec41943269125a9de1a9e0d44632 100644
--- a/src/uncategorized/slaveSummary.tw
+++ b/src/uncategorized/slaveSummary.tw
@@ -769,9 +769,9 @@ will
 <<case "Spa">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Send her to the Spa|Assign][$i = _ssi]]
+		<<link "Send her to $spaName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Remove her from the Spa|Retrieve][$i = _ssi]]
+		<<link "Remove her from $spaName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Attendant|Attendant Select]]
 		<<break>>
@@ -783,9 +783,9 @@ will
 <<case "Nursery">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Send her to the Nursery|Assign][$i = _ssi]]
+		<<link "Send her to $nurseryName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Remove her from the Nursery|Retrieve][$i = _ssi]]
+		<<link "Remove her from $nurseryName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Matron|Matron Select]]
 		<<break>>
@@ -797,9 +797,9 @@ will
 <<case "Brothel">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Send her to the Brothel|Assign][$i = _ssi]]
+		<<link "Send her to $brothelName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Release her from the Brothel|Retrieve][$i = _ssi]]
+		<<link "Release her from $brothelName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Madam|Madam Select]]
 		<<break>>
@@ -811,9 +811,9 @@ will
 <<case "Club">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Send her to the Club|Assign][$i = _ssi]]
+		<<link "Send her to $clubName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Remove her from the Club|Retrieve][$i = _ssi]]
+		<<link "Remove her from $clubName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove DJ|DJ Select]]
 		<<break>>
@@ -821,9 +821,9 @@ will
 <<case "Arcade">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Confine her in the Arcade|Assign][$i = _ssi]]
+		<<link "Confine her in $arcadeName" "Assign">><<set $i = _ssi>><</link>>
 	<<else>>
-		[[Release her from the Arcade|Retrieve][$i = _ssi]]
+		<<link "Release her from $arcadeName" "Retrieve">><<set $i = _ssi>><</link>>
 	<</if>>
 <<case "DJ Select">>
 	<<if setup.DJCareers.includes(_Slave.career) || (_Slave.skillDJ >= $masteredXP)>>
@@ -835,9 +835,9 @@ will
 		@@.cyan;Estimated DNA error value: <<print Math.ceil(_Slave.chem/10)>>@@
 	<</if>>
 	<<if $Flag == 0>>
-		[[Send her to the Clinic|Assign][$i = _ssi]]
+		<<link "Send her to $clinicName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Take her out of the Clinic|Retrieve][$i = _ssi]]
+		<<link "Take her out of $clinicName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Nurse|Nurse Select]]
 		<<break>>
@@ -849,9 +849,9 @@ will
 <<case "Schoolroom">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Assign her to the Schoolroom|Assign][$i = _ssi]]
+		<<link "Assign her to $schoolroomName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Release her from the Schoolroom|Retrieve][$i = _ssi]]
+		<<link "Release her from $schoolroomName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Schoolteacher|Schoolteacher Select]]
 		<<break>>
@@ -863,9 +863,9 @@ will
 <<case "Dairy">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Send her to the Dairy|Assign][$i = _ssi]]
+		<<link "Send her to $dairyName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Release her from the Dairy|Retrieve][$i = _ssi]]
+		<<link "Release her from $dairyName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Milkmaid|Milkmaid Select]]
 		<<break>>
@@ -877,9 +877,9 @@ will
 <<case "Servants' Quarters">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Assign her to the Servants' Quarters|Assign][$i = _ssi]]
+		<<link "Assign her to $servantsQuartersName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Release her from the Servants' Quarters|Retrieve][$i = _ssi]]
+		<<link "Release her from $servantsQuartersName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Stewardess|Stewardess Select]]
 		<<break>>
@@ -891,9 +891,9 @@ will
 <<case "Master Suite">>
 <br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Add her to the Suite|Assign][$i = _ssi]]
+		<<link "Add her to $masterSuiteName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Send her out of the Suite|Retrieve][$i = _ssi]]
+		<<link "Send her out of $masterSuiteName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Concubine|Concubine Select]]
 		<<break>>
@@ -901,9 +901,9 @@ will
 <<case "Cellblock">>
 	<br><<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 	<<if $Flag == 0>>
-		[[Confine her in the cellblock|Assign][$i = _ssi]]
+		<<link "Confine her in $cellblockName" "Assign">><<set $i = _ssi>><</link>>
 	<<elseif $Flag == 1>>
-		[[Release her from the cellblock|Retrieve][$i = _ssi]]
+		<<link "Release her from $cellblockName" "Retrieve">><<set $i = _ssi>><</link>>
 	<<else>>
 		[[Change or remove Wardeness|Wardeness Select]]
 		<<break>>
diff --git a/src/uncategorized/spa.tw b/src/uncategorized/spa.tw
index 3158bd350049514f67d413925807fe42252478bb..cdee476ea3a55b52fe905f425b56e27634f46a67 100644
--- a/src/uncategorized/spa.tw
+++ b/src/uncategorized/spa.tw
@@ -138,7 +138,7 @@ $spaNameCaps
 <</if>>
 
 <<if $spaSlaves > 0>>
-	 | <<link "''Prise a slave out of the spa''">>
+	 | <<link "''Prise a slave out of $spaName''">>
 		<<replace #ComingGoing>>
 			<<spaAssignmentFilter>>
 			<<set $Flag = 1>>
@@ -147,7 +147,7 @@ $spaNameCaps
 		<</replace>>
 	<</link>>
 <<else>>
-	<br><br>//The spa is empty at the moment.<br>//
+	<br><br>//$spaNameCaps is empty at the moment.<br>//
 <</if>>
 
 <span id="ComingGoing">
diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw
index d575b8ad993a1efaa2d32511e59089e31d5ac490..6e27d40b40881e393cc5fe97bd49570ffc475456 100644
--- a/src/uncategorized/storyCaption.tw
+++ b/src/uncategorized/storyCaption.tw
@@ -134,12 +134,15 @@
 <<print Math.trunc(0.1*$arcologies[0].prosperity)>>m
 <<if $arcologies[0].ownership >= $arcologies[0].minority>>
 	<<if $arcologies[0].ownership >= $arcologies[0].minority+5>>
-		(<<print $arcologies[0].ownership>>%)
+		<<if $arcologies[0].ownership < 100>>
+			<<if $assistantPower >= 1>> (@@.yellowgreen;<<print $arcologies[0].ownership>>%@@:<<print $arcologies[0].minority>>%) <<else>> (@@.yellowgreen;<<print $arcologies[0].ownership>>%) <</if>>
+		<<else>> (<<print $arcologies[0].ownership>>%)
+		<</if>>
 	<<else>>
-		@@.yellow;(<<print $arcologies[0].ownership>>%)@@
+		<<if $assistantPower >= 1>> (@@.yellow;<<print $arcologies[0].ownership>>%@@:<<print $arcologies[0].minority>>%) <<else>> (@@.yellow;<<print $arcologies[0].ownership>>%@@) <</if>>
 	<</if>>
 <<else>>
-	@@.red;(<<print $arcologies[0].ownership>>%)@@
+	<<if $assistantPower >= 1>> (@@.red;<<print $arcologies[0].ownership>>%@@:<<print $arcologies[0].minority>>%) <<else>> (@@.red;<<print $arcologies[0].ownership>>%@@) <</if>>
 <</if>>
 <br>@@.green;Rep@@ |
 <<set $rep = Math.clamp(Math.trunc($rep), 0, 20000)>>
diff --git a/src/uncategorized/summaryOptions.tw b/src/uncategorized/summaryOptions.tw
index a3ba75c1c552a5b699ba091e61e2dfbd2bce28a0..8cad7e4ec01e2da4e16c4ad5cca467dba199521a 100644
--- a/src/uncategorized/summaryOptions.tw
+++ b/src/uncategorized/summaryOptions.tw
@@ -73,6 +73,11 @@
 <br>
 <span id="OptionAbbreviateOrigins"><<OptionAbbreviateOrigins>></span>
 
+<<if $showMissingSlaves>>
+<br>
+<span id="OptionAbbreviateMissing"><<OptionAbbreviateMissing>></span>
+<</if>>
+
 <br><br>
 
 //[[FC Dev's preferred options|Summary Options][$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,$abbreviateGenitalia = 1,$abbreviatePhysicals = 1,$abbreviateSkills = 1,$abbreviateMental = 1,$abbreviateSidebar = 1]]//
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 3424ffaac9c1ccd232251c58ac9d8dcadb84f15b..0a456a79a96488900d3f3aa4094d05f4240fbc21 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -15111,6 +15111,8 @@ $He has
 	<<else>>
 		<<set _daddy = "partner">>
 	<</if>>
+<<elseif $activeSlave.pregSource in $missingTable && $showMissingSlaves>>
+	<<set _daddy = $missingTable[$activeSlave.pregSource].fullName>>
 <</if>>
 
 <<if ($activeSlave.preg == -2) && ($activeSlave.vagina < 0) && ($activeSlave.mpreg == 0)>>
diff --git a/src/utility/extendedFamilyWidgets.tw b/src/utility/extendedFamilyWidgets.tw
index 5555c84e79a7ca2d93f3acb8eb705853a12e4b67..9a91f9927e5efce1a6ccd069e9e50f3ada7c7381 100644
--- a/src/utility/extendedFamilyWidgets.tw
+++ b/src/utility/extendedFamilyWidgets.tw
@@ -13,23 +13,35 @@
 
 <<if $activeSlave.father == -1 && $activeSlave.mother == -1>>
 	$He's @@.lightgreen;your child;@@ you knocked yourself up and gave birth to $him.
-<<elseif $activeSlave.father > 0 && $activeSlave.mother > 0 && $activeSlave.father == $activeSlave.mother>>
-	<<set _efw = $slaveIndices[$activeSlave.father]>>
-	$He was @@.lightgreen;both fathered and mothered by $slaves[_efw].slaveName.@@
+<<elseif $activeSlave.father == $activeSlave.mother && ($activeSlave.father > 0 || ($activeSlave.father in $missingTable && $showMissingSlaves))>>
+	<<if $activeSlave.father > 0>>
+		<<set _pName = $slaves[$slaveIndices[$activeSlave.father]].slaveName>>
+	<<else>>
+		<<set _pName = "your former slave "+$missingTable[$activeSlave.father].slaveName>>
+	<</if>>
+	$He was @@.lightgreen;both fathered and mothered by _pName.@@
 <</if>>
 
 <<if $activeSlave.father == -1 && $activeSlave.mother != -1>>
 	$He's @@.lightgreen;your child;@@ you knocked $his mother up.
-<<elseif $activeSlave.father > 0 && $activeSlave.father != $activeSlave.mother>>
-	<<set _efw = $slaveIndices[$activeSlave.father]>>
-	$He was @@.lightgreen;fathered by $slaves[_efw].slaveName's@@ virile dick.
+<<elseif ($activeSlave.father > 0 || ($activeSlave.father in $missingTable && $showMissingSlaves)) && $activeSlave.father != $activeSlave.mother>>
+	<<if $activeSlave.father > 0>>
+		<<set _pName = $slaves[$slaveIndices[$activeSlave.father]].slaveName>>
+	<<else>>
+		<<set _pName = "your former slave "+$missingTable[$activeSlave.father].slaveName>>
+	<</if>>
+	$He was @@.lightgreen;fathered by _pName's@@ virile dick.
 <</if>>
 
 <<if $activeSlave.father != -1 && $activeSlave.mother == -1>>
 	$He's @@.lightgreen;your child;@@ you gave birth to $him.
-<<elseif $activeSlave.mother > 0 && $activeSlave.father != $activeSlave.mother>>
-	<<set _efw = $slaveIndices[$activeSlave.mother]>>
-	$He was @@.lightgreen;born from $slaves[_efw].slaveName's@@ fertile womb.
+<<elseif ($activeSlave.mother > 0 || ($activeSlave.mother in $missingTable && $showMissingSlaves)) && $activeSlave.father != $activeSlave.mother>>
+	<<if $activeSlave.mother > 0>>
+		<<set _pName = $slaves[$slaveIndices[$activeSlave.mother]].slaveName>>
+	<<else>>
+		<<set _pName = "your former slave "+$missingTable[$activeSlave.mother].slaveName>>
+	<</if>>
+	$He was @@.lightgreen;born from _pName's@@ fertile womb.
 <</if>>
 
 <<set _children = $slaves.filter(function(s) { return $activeSlave.ID == s.father; })>>
@@ -698,18 +710,26 @@
 <br><br>Your present family includes:
 
 /*Player parents, lists both your parents, or just one.*/
+<<if $showMissingSlaves>>
+	<<if $PC.mother in $missingTable>>
+		<<set $children.push($missingTable[$PC.mother])>>
+	<</if>>
+	<<if $PC.father in $missingTable && !($PC.father == $PC.mother)>>
+		<<set $children.push($missingTable[$PC.father])>>
+	<</if>>
+<</if>>
 <<for $i = 0; $i < $slaves.length; $i++>>
 <<if $slaves[$i].ID == $PC.father || $slaves[$i].ID == $PC.mother>>
 	<<set $children.push($slaves[$i])>>
 <</if>>
 <</for>>
 <<if $children.length > 1>>
-	<br>Your parents are @@.lightgreen;$children[0].slaveName and $children[1].slaveName@@.
+	<br>Your parents are @@.lightgreen;<<if $children[0].ID < 0>>your former slave<<if $children[1].ID < 0>>s<</if>><</if>> $children[0].slaveName and <<if $children[1].ID < 0 && $children[0].ID > 0>>your former slave<</if>> $children[1].slaveName@@.
 <<elseif $children.length > 0>>
 	<<if $PC.father == $PC.mother>>
-		<br>Your parent is @@.lightgreen;$children[0].slaveName@@, who impregnated $himself with you.
+		<br>Your parent is @@.lightgreen;<<if $children[0].ID < 0>>your former slave<</if>> $children[0].slaveName@@, who impregnated $himself with you.
 	<<else>>
-		<br>You know one of your parents, @@.lightgreen;$children[0].slaveName@@.
+		<br>You know one of your parents, @@.lightgreen;<<if $children[0].ID < 0>>your former slave<</if>> $children[0].slaveName@@.
 	<</if>>
 <</if>>
 <<set $children = []>>
diff --git a/src/utility/optionsWidgets.tw b/src/utility/optionsWidgets.tw
index da0c8265dcda4a2e3c61dbfc405a6ac27a807fe0..c19abdd471ad11fdf41ad32f9d7b27271b4af086 100644
--- a/src/utility/optionsWidgets.tw
+++ b/src/utility/optionsWidgets.tw
@@ -790,3 +790,28 @@ Facilities in the sidebar are
 	<</link>>//
 <</if>>
 <</widget>>
+
+/%
+	Call as <<OptionAbbreviateMissing>>
+	Should be placed in a <span> with id = "OptionAbbreviateMissing"
+%/
+<<widget "OptionAbbreviateMissing">>
+Missing slave parents are 
+<<if $showMissingSlavesSD>>
+	@@.cyan;SHOWN.@@ 
+	//<<link 'Hide'>>
+		<<set $showMissingSlavesSD = false>>
+		<<replace '#OptionAbbreviateMissing'>>
+			<<OptionAbbreviateMissing>>
+		<</replace>>
+	<</link>>//
+<<else>>
+	@@.red;HIDDEN.@@ 
+	//<<link 'Show'>>
+		<<set $showMissingSlavesSD = true>>
+		<<replace '#OptionAbbreviateMissing'>>
+			<<OptionAbbreviateMissing>>
+		<</replace>>
+	<</link>>//
+<</if>>
+<</widget>>