From 1a5f70f2a856e007e2a7aec338f5c94c1e634d07 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Wed, 2 Aug 2017 16:28:06 -0400
Subject: [PATCH] I legit forgot to push the vanilla update.

---
 src/cheats/mod_EditFSCheat.tw                 |   4 +-
 src/cheats/mod_EditFSCheatDatatypeCleanup.tw  |   2 +
 src/events/intro/initNationalities.tw         |   2 +
 src/init/dummy.tw                             |   1 +
 src/init/storyInit.tw                         |   2 +-
 src/npc/acquisition.tw                        |  14 +-
 src/npc/startingGirls/commitStartingGirl.tw   |  68 +++++++-
 src/npc/startingGirls/startingGirls.tw        | 117 ++++++++++----
 src/pregmod/seFCTVshows.tw                    |   4 +-
 src/uncategorized/BackwardsCompatibility.tw   |   6 +
 src/uncategorized/RESS.tw                     |   2 +-
 src/uncategorized/bodyModification.tw         |   6 +-
 src/uncategorized/longSlaveDescription.tw     |  79 ++--------
 src/uncategorized/manageArcology.tw           |  35 ++++-
 src/uncategorized/neighborsDevelopment.tw     |  40 +++++
 src/uncategorized/nonRandomEvent.tw           |   6 +-
 src/uncategorized/pPeacekeepersDeficit.tw     |   2 +-
 .../pPeacekeepersIndependence.tw              |  47 +++++-
 src/uncategorized/pPeacekeepersInfluence.tw   | 101 ++++++++++++
 src/uncategorized/pPeacekeepersIntro.tw       |   6 +-
 src/uncategorized/reBusyBrothel.tw            |   1 +
 src/uncategorized/saWhore.tw                  |  75 ++-------
 src/uncategorized/sellSlave.tw                |  86 +++++++++--
 src/uncategorized/slaveSold.tw                |  83 +++++++++-
 src/utility/assayWidgets.tw                   | 145 ++++++++++--------
 src/utility/descriptionWidgets.tw             |  13 ++
 src/utility/descriptionWidgetsFlesh.tw        |   9 +-
 src/utility/descriptionWidgetsTattoos.tw      |  18 +--
 28 files changed, 685 insertions(+), 289 deletions(-)
 create mode 100644 src/uncategorized/pPeacekeepersInfluence.tw

diff --git a/src/cheats/mod_EditFSCheat.tw b/src/cheats/mod_EditFSCheat.tw
index c08b40c8186..adcc141733d 100644
--- a/src/cheats/mod_EditFSCheat.tw
+++ b/src/cheats/mod_EditFSCheat.tw
@@ -400,7 +400,7 @@
 	<<radiobutton "$arcologies[0].FSPhysicalIdealistSMR" 0>> 0 (Not passed.)
 	| <<radiobutton "$arcologies[0].FSPhysicalIdealistSMR" 1>> 1 (Passed.)
 
-	<br>[[Apply and reset Hedonistic Decadence|MOD_Edit FS Cheat][$arcologies[0].FSHedonisticDecadence = "unset",$arcologies[0].FSHedonisticDecadenceDecoration = 20,$arcologies[0].FSHedonisticDecadenceLaw = 0,$arcologies[0].FSHedonisticDecadenceLaw2 = 0, $arcologies[0].FSHedonisticDecadenceSMR = 0]]
+	<br>[[Apply and reset Hedonistic Decadence|MOD_Edit FS Cheat][$arcologies[0].FSHedonisticDecadence = "unset",$arcologies[0].FSHedonisticDecadenceDecoration = 20,$arcologies[0].FSHedonisticDecadenceLaw = 0,$arcologies[0].FSHedonisticDecadenceLaw2 = 0, $arcologies[0].FSHedonisticDecadenceSMR = 0, $arcologies[0].FSPhysicalIdealistStrongFat = 0]]
 <</nobr>>
 
 <<nobr>>
@@ -431,7 +431,7 @@
 	<<radiobutton "$arcologies[0].FSHedonisticDecadenceLaw2" 0>> 0 (Not passed.)
 	| <<radiobutton "$arcologies[0].FSHedonisticDecadenceLaw2" 1>> 1 (Passed.)
 
-	<br>[[Apply and reset Physical Idealist|MOD_Edit FS Cheat][$arcologies[0].FSPhysicalIdealist = "unset",$arcologies[0].FSPhysicalIdealistDecoration = 20,$arcologies[0].FSPhysicalIdealistLaw = 0, $arcologies[0].FSPhysicalIdealistSMR = 0]]
+	<br>[[Apply and reset Physical Idealist|MOD_Edit FS Cheat][$arcologies[0].FSPhysicalIdealist = "unset",$arcologies[0].FSPhysicalIdealistDecoration = 20,$arcologies[0].FSPhysicalIdealistLaw = 0, $arcologies[0].FSPhysicalIdealistSMR = 0, $arcologies[0].FSHedonisticDecadenceStrongFat = 0]]
 <</nobr>>
 
 <<nobr>>
diff --git a/src/cheats/mod_EditFSCheatDatatypeCleanup.tw b/src/cheats/mod_EditFSCheatDatatypeCleanup.tw
index be106a815b6..9a49f116e9a 100644
--- a/src/cheats/mod_EditFSCheatDatatypeCleanup.tw
+++ b/src/cheats/mod_EditFSCheatDatatypeCleanup.tw
@@ -35,6 +35,7 @@
 	<<set $arcologies[0].FSHedonisticDecadenceSMR = Number($arcologies[0].FSHedonisticDecadenceSMR) || 0>>
 	<<set $arcologies[0].FSHedonisticDecadenceLaw = Number($arcologies[0].FSHedonisticDecadenceLaw) || 0>>
 	<<set $arcologies[0].FSHedonisticDecadenceLaw2 = Number($arcologies[0].FSHedonisticDecadenceLaw2) || 0>>
+	<<set $arcologies[0].FSHedonisticDecadenceStrongFat =  Number($arcologies[0].FSHedonisticDecadenceStrongFat) || 0>>
 <</if>>
 <<if $arcologies[0].FSGenderFundamentalist != "unset">>
 	<<set $arcologies[0].FSGenderFundamentalist = Number($arcologies[0].FSGenderFundamentalist) || 0>>
@@ -92,6 +93,7 @@
 	<<set $arcologies[0].FSPhysicalIdealist = Number($arcologies[0].FSPhysicalIdealist) || 0>>
 	<<set $arcologies[0].FSPhysicalIdealistDecoration = Number($arcologies[0].FSPhysicalIdealistDecoration) || 0>>
 	<<set $arcologies[0].FSPhysicalIdealistSMR = Number($arcologies[0].FSPhysicalIdealistSMR) || 0>>
+	<<set $arcologies[0].FSPhysicalIdealistStrongFat =  Number($arcologies[0].FSPhysicalIdealistStrongFat) || 0>>
 <</if>>
 <<if $arcologies[0].FSChattelReligionist != "unset">>
 	<<set $arcologies[0].FSChattelReligionist = Number($arcologies[0].FSChattelReligionist) || 0>>
diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw
index d977531d7e2..0b96a334cf0 100644
--- a/src/events/intro/initNationalities.tw
+++ b/src/events/intro/initNationalities.tw
@@ -466,6 +466,7 @@
 <<set $arcologies[0].FSPastoralistSMR = 0>>
 <<set $arcologies[0].FSPhysicalIdealistSMR = 0>>
 <<set $arcologies[0].FSPhysicalIdealistLaw = 0>>
+<<set $arcologies[0].FSPhysicalIdealistStrongFat = 0>>
 <<set $arcologies[0].FSChattelReligionistLaw = 0>>
 <<set $arcologies[0].FSChattelReligionistSMR = 0>>
 <<set $arcologies[0].FSChattelReligionistCreed = 0>>
@@ -487,6 +488,7 @@
 <<set $arcologies[0].FSRestartSMR = 0>>
 <<set $arcologies[0].FSHedonisticDecadenceLaw = 0>>
 <<set $arcologies[0].FSHedonisticDecadenceLaw2 = 0>>
+<<set $arcologies[0].FSHedonisticDecadenceStrongFat = 0>>
 <<set $arcologies[0].FSHedonisticDecadenceSMR = 0>>
 
 <<set $arcologies[0].FSGenderRadicalistResearch = 0>>
diff --git a/src/init/dummy.tw b/src/init/dummy.tw
index 9855eda3794..dc25a09affa 100644
--- a/src/init/dummy.tw
+++ b/src/init/dummy.tw
@@ -15,6 +15,7 @@ $ArcologyNamesSupremacistWhite, $ArcologyNamesSupremacistAsian, $ArcologyNamesSu
 $ArcologyNamesSubjugationistWhite, $ArcologyNamesSubjugationistAsian, $ArcologyNamesSubjugationistLatina, $ArcologyNamesSubjugationistMiddleEastern, $ArcologyNamesSubjugationistBlack, $ArcologyNamesSubjugationistIndoAryan, $ArcologyNamesSubjugationistPacificIslander, $ArcologyNamesSubjugationistMalay, $ArcologyNamesSubjugationistAmerindian, $ArcologyNamesSubjugationistSouthernEuropean, $ArcologyNamesSubjugationistSemitic, $ArcologyNamesSubjugationistMixedRace
 $ArcologyNamesGenderRadicalist, $ArcologyNamesGenderFundamentalist, $ArcologyNamesPaternalist, $ArcologyNamesDegradationist, $ArcologyNamesBodyPurist, $ArcologyNamesTransformationFetishist, $ArcologyNamesYouthPreferentialist, $ArcologyNamesMaturityPreferentialist, $ArcologyNamesSlimnessEnthusiast, $ArcologyNamesAssetExpansionist, $ArcologyNamesPastoralist, $ArcologyNamesPhysicalIdealist, $ArcologyNamesChattelReligionist, $ArcologyNamesRomanRevivalist, $ArcologyNamesAztecRevivalist, $ArcologyNamesEgyptianRevivalist, $ArcologyNamesEdoRevivalist, $ArcologyNamesArabianRevivalist, $ArcologyNamesChineseRevivalist
 $piercingLocation
+$startingSlaveRelative
 $veryYoungCareers, $recruiterCareers
 $belarusianSlaveNames, $dominicanSlaveNames, $scottishSlaveNames
 $ArcologyNamesEugenics, $ArcologyNamesRepopulationist, $ArcologyNamesHedonisticDecadence
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index bc5d4afdfd5..40da20e527f 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -341,7 +341,7 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $independenceDay = 0>>
 <<set $invasionVictory = 0>>
 <<set $daughtersVictory = 0>>
-<<set $startingGirlCopied = 0>>
+<<set $startingGirlCopied = 0, $startingGirlRelation = 0>>
 <<set $archetyped = 0>>
 
 <<set $slavesVisible = 0>>
diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw
index b3b9f2e3341..a930b8c1a30 100644
--- a/src/npc/acquisition.tw
+++ b/src/npc/acquisition.tw
@@ -1,5 +1,7 @@
 :: Acquisition [nobr]
 
+<<unset $slaveWithoutBonuses, $startingGirlCopied, $startingGirlRelation>>
+
 <<set $fixedNationality = 0>>
 
 <<if $saveImported == 1>><<set _valueOwed = 5000>><<else>><<set _valueOwed = 50000>><</if>>
@@ -98,23 +100,23 @@
 		<</for>>
 		<<if _slaveMomFound == 0 && $slaves[_i].mother > 0>>
 			<<set _lostMom = $slaves[_i].mother>>
-			<<set $slaves[_i].mother = $missingParentId>>
+			<<set $slaves[_i].mother = $missingParentID>>
 			<<for _j = 0; _j < $slaves.length; _j++>>
 				<<if $slaves[_j].mother == _lostMom>>
-					<<set $slaves[_j].mother = $missingParentId>>
+					<<set $slaves[_j].mother = $missingParentID>>
 				<</if>>
 			<</for>>
-			<<set $missingParentId-->>
+			<<set $missingParentID-->>
 		<</if>>
 		<<if _slaveDadFound == 0 && $slaves[_i].father > 0>>
 			<<set _lostDad = $slaves[_i].father>>
-			<<set $slaves[_i].father = $missingParentId>>
+			<<set $slaves[_i].father = $missingParentID>>
 			<<for _j = 0; _j < $slaves.length; _j++>>
 				<<if $slaves[_j].father == _lostDad>>
-					<<set $slaves[_j].father = $missingParentId>>
+					<<set $slaves[_j].father = $missingParentID>>
 				<</if>>
 			<</for>>
-			<<set $missingParentId-->>
+			<<set $missingParentID-->>
 		<</if>>
 	<</for>>
 <</if>>
diff --git a/src/npc/startingGirls/commitStartingGirl.tw b/src/npc/startingGirls/commitStartingGirl.tw
index d88fc588e8e..9008f5d1769 100644
--- a/src/npc/startingGirls/commitStartingGirl.tw
+++ b/src/npc/startingGirls/commitStartingGirl.tw
@@ -32,24 +32,80 @@
 		<<StartingGirlsWorkaround>>
 		<<goto "Starting Girls">>
 	<</link>>
-	<br>[[Add another slave, based on the previous slave|Starting Girls][$activeSlave = $slaveWithoutBonuses, $activeSlave.relation = 0, $activeSlave.relationTarget = 0, $startingGirlCopied = 1, $activeSlave.mother = 0, $activeSlave.father = 0]]
+	<<if $familyTesting == 1>>
+		<br>[[Add another slave, based on the previous slave|Starting Girls][$activeSlave = $slaveWithoutBonuses, $startingGirlCopied = 1, $activeSlave.mother = 0, $activeSlave.father = 0]]
+	<<else>>
+		<br>[[Add another slave, based on the previous slave|Starting Girls][$activeSlave = $slaveWithoutBonuses, $activeSlave.relation = 0, $activeSlave.relationTarget = 0, $startingGirlCopied = 1]]
+	<</if>>
 	<<if $createRelatedSlave == 1>>
 	<br>
 	//Add another slave, related to the previous slave://
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<if $familyTesting == 1>>
+		/* Not needed due to stuffedanon's work
+		<<if $activeSlave.actualAge >= 34>>
+			<<if $activeSlave.ovaries>>
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;
+				[[Daughter|RG AS Dump][$returnTo = "Starting Girls", $startingGirlRelation = "mother", $startingGirlCopied = 1]]
+			<</if>>
+			<<if $activeSlave.balls>>
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;
+				[[Dick-daughter|RG AS Dump][$returnTo = "Starting Girls", $startingGirlRelation = "father", $startingGirlCopied = 1]]
+				//A slave daughter carried and birthed by another woman, impregnated by $activeSlave.slaveName.//
+			<</if>>
+			/% I'm aware this term is ridiculous. If anyone can come up with a better word to reconcile all slaves being female with the act of fatherhood and the masculine nature of the word father, I'm all ears. Wrote myself into a corner on this one. %/
+		<</if>>
+		<<if $activeSlave.actualAge <= 28>>
+			<<if $activeSlave.mother <= 0>>
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;
+				[[Mother|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.mother = $IDNumber, $startingGirlRelation = "daughter", $startingGirlCopied = 1]]
+			<<else>>
+				//This slave already has a mother.//
+			<</if>>
+			<<if $seeDicks>>
+			<<if $activeSlave.father <= 0>>
+				<br>&nbsp;&nbsp;&nbsp;&nbsp;
+				[[Dick-mother|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.father = $IDNumber, $startingGirlRelation = "dickdaughter", $startingGirlCopied = 1]]
+				//A slave who provided the impregnation to create $activeSlave.slaveName.//
+			<<else>>
+				//This slave already has a dick-mother.//
+			<</if>>
+			<</if>>
+		<</if>>
+		<<if $activeSlave.actualAge < 44>>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			[[Older Sister|RG AS Dump][$returnTo = "Starting Girls", $startingGirlRelation = "older sister", $startingGirlCopied = 1]]
+		<</if>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		[[Twin|RG AS Dump][$returnTo = "Starting Girls", $startingGirlRelation = "twin", $startingGirlCopied = 1]]
+		<<if $activeSlave.actualAge > 19>>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			[[Younger Sister|RG AS Dump][$returnTo = "Starting Girls", $startingGirlRelation = "younger sister", $startingGirlCopied = 1]]
+		<</if>>
+		*/
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Use "based on the previous slave" and the available .father and .mother controls to create your family//
 	<<else>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[Twin|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "twin", $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
+
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
 		<<if $activeSlave.actualAge <= 8 && ($PC.career == "servant" || $PC.career == "escort") && ($PC.vagina == 1)>>
 		<<else>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[Sister|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "sister", $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
+		<<if $activeSlave.actualAge >= ($fertilityAge + $minimumSlaveAge)>>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			[[Daughter|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "mother", $startingGirlRelation = "mother", $activeSlave.birthsTotal += 1, $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
+		<</if>>
 		<<if $activeSlave.actualAge <= 24>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;[[Mother|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "daughter", $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			[[Mother|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "daughter", $startingGirlRelation = "daughter", $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
 		<</if>>
-		<<if $activeSlave.actualAge >= ($fertilityAge + $minimumSlaveAge)>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;[[Daughter|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "mother", $activeSlave.birthsTotal += 1, $activeSlave.relationTarget to $activeSlave.ID+1, $startingGirlCopied = 1]]
+		<<if $activeSlave.actualAge < 44>>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			[[Older Sister|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "sister", $startingGirlRelation = "older sister", $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
 		<</if>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		[[Twin|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "twin", $startingGirlRelation = "twin", $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
+		<<if $activeSlave.actualAge > $minimumSlaveAge+1>>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;
+			[[Younger Sister|RG AS Dump][$returnTo = "Starting Girls", $activeSlave.relation = "sister", $startingGirlRelation = "younger sister", $activeSlave.relationTarget = $activeSlave.ID+1, $startingGirlCopied = 1]]
 		<</if>>
 	<</if>>
 	<<elseif $activeSlave.relation == 0>>
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 012ea33ac65..23f088dd8cf 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -20,41 +20,93 @@
 <</if>>
 
 <<if $startingGirlCopied == 1>>
-	<<if $familyTesting == 1>>
-		<<if $startingSlaveRelative == "sister">>
-			<<set $activeSlave.actualAge -= 5>>
-			<<set $activeSlave.actualAge += random(0,10)>>
-			<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-			<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-			<<set $activeSlave.birthWeek = 0>>
-		<<elseif $startingSlaveRelative == "daughter">>
-			<<set $activeSlave.mother = $activeSlave.ID>>
-			<<set $activeSlave.father = $missingParentID+1>>
-			<<set $activeSlave.actualAge -= random(16,24)>>
-			<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-			<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-			<<set $activeSlave.birthWeek = 0>>
-		<</if>>
-		<<set $missingParentID -= 1>>
-	<<else>>
-		<<set _tempSlave = clone($activeSlave), $activeSlave = $slaveWithoutBonuses>>
-		<<if _tempSlave.relation != 0>>
-			<<if _tempSlave.relation == "sister">>
-				<<set $activeSlave.relation = "sister">>
-				<<set $activeSlave.actualAge -= 5>>
-				<<set $activeSlave.actualAge += random(0,10)>>
-			<<elseif _tempSlave.relation == "mother">>
-				<<set $activeSlave.relation = "daughter">>
-				<<set $activeSlave.actualAge -= random(16,24)>>
-			<<elseif _tempSlave.relation == "daughter">>
-				<<set $activeSlave.relation = "mother">>
-				<<set $activeSlave.actualAge += random(16,24)>>
+	<<set _tempSlave = clone($activeSlave), $activeSlave = $slaveWithoutBonuses>>
+	<<set $activeSlave.ID = $IDNumber++>>
+	<<if $startingGirlRelation>>
+		<<if $familyTesting == 1>>
+			/*
+			<<switch $startingGirlRelation>>
+			<<case "mother">>
+				<<set $activeSlave.mother = _tempSlave.ID, $activeSlave.actualAge -= random(16,24)>>
+				<<set $activeSlave.father = 0>>
+			<<case "father">>
+				<<set $activeSlave.father = _tempSlave.ID, $activeSlave.actualAge -= random(16,24)>>
+				<<set $activeSlave.mother = 0>>
+			<<case "daughter">>
+				<<set $activeSlave.actualAge += random(16,24), $activeSlave.birthWeek = random(0,51)>>
 				<<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>>
-			<<elseif _tempSlave.relation == "twin">>
-				<<set $activeSlave.relation = "twin">>
+				<<if $activeSlave.ovaries == 0>><<set $activeSlave.vagina++>><</if>>
+				<<if $activeSlave.father < -2>> /% Find existing siblings. %/
+					<<for _i = 0; _i < $slaves.length; _i++>>
+						<<if $slaves[_i].father == $activeSlave.father>>
+							<<set $slaves[_i].mother = $activeSlave.ID>>
+						<</if>>
+					<</for>>
+				<</if>>
+				<<set $activeSlave.mother = 0, $activeSlave.father = 0>>
+			<<case "dickdaughter">>
+				<<set $activeSlave.actualAge += random(16,24), $activeSlave.birthWeek = random(0,51)>>
+				<<set $activeSlave.dick = Math.clamp($activeSlave.dick,2,10)>>
+				<<set $activeSlave.balls = Math.clamp($activeSlave.balls,2,10)>>
+				<<set $activeSlave.scrotum = Math.clamp($activeSlave.scrotum,2,10)>>
+				<<set $activeSlave.father = 0>>
+				<<if $activeSlave.mother < -2>> /% Find existing siblings. %/
+					<<for _i = 0; _i < $slaves.length; _i++>>
+						<<if $slaves[_i].mother == $activeSlave.mother>>
+							<<set $slaves[_i].father = $activeSlave.ID>>
+						<</if>>
+					<</for>>
+				<</if>>
+				<<set $activeSlave.mother = 0, $activeSlave.father = 0>>
+			<<case "older sister">>
+				<<set $activeSlave.actualAge += random(2,4)>>
+			<<case "younger sister">>
+				<<set $activeSlave.actualAge -= random(2,4)>>
+			<</switch>>
+			<<if $startingGirlRelation == "older sister" || $startingGirlRelation == "younger sister" || $startingGirlRelation == "twin">> /% Sibling parentage. If the previous slave has defined parentage, that's already shared with the new sibling via the clone. If not, a shared missing parent is applied. %/
+				<<if $activeSlave.mother == 0>>
+					<<set $activeSlave.mother = $missingParentID>>
+					<<set $missingParentID-->>
+					<<for _i = 0; _i < $slaves.length; _i++>><<if $slaves[_i].ID == _tempSlave.ID>><<set $slaves[_i].mother = $activeSlave.mother>><<break>><</if>><</for>>
+				<</if>>
+				<<if $activeSlave.father == 0>>
+					<<set $activeSlave.father = $missingParentID>>
+					<<set $missingParentID-->>
+					<<for _i = 0; _i < $slaves.length; _i++>><<if $slaves[_i].ID == _tempSlave.ID>><<set $slaves[_i].father = $activeSlave.father>><<break>><</if>><</for>>
+				<</if>>
+			<</if>>
+			<<if $activeSlave.mother && $activeSlave.father>> /% Propogate missing family information across existing slaves. Assumes monogamous reproduction, e.g. all sets of siblings have a pair of exclusive parents. %/
+				<<for _i = 0; _i < $slaves.length; _i++>>
+					<<if $slaves[_i].mother == $activeSlave.mother>>
+					<<if $slaves[_i].father == 0>>
+						<<set $slaves[_i].father = $activeSlave.father>>
+					<</if>>
+					<</if>>
+					<<if $slaves[_i].father == $activeSlave.father>>
+					<<if $slaves[_i].mother == 0>>
+						<<set $slaves[_i].mother = $activeSlave.mother>>
+					<</if>>
+					<</if>>
+				<</for>>
 			<</if>>
+			*/
+		<<else>>
+			<<switch $startingGirlRelation>>
+			<<case "mother">>
+				<<set $activeSlave.relation = "daughter", $activeSlave.actualAge -= random(16,24)>>
+			<<case "daughter">>
+				<<set $activeSlave.relation = "mother", $activeSlave.actualAge += random(16,24)>>
+				<<if $activeSlave.vagina == 0>><<set $activeSlave.vagina++>><</if>>
+			<<case "older sister">>
+				<<set $activeSlave.relation = "sister", $activeSlave.actualAge += random(2,4)>>
+			<<case "younger sister">>
+				<<set $activeSlave.relation = "sister", $activeSlave.actualAge -= random(2,4)>>
+			<<default>>
+				<<set $activeSlave.relation = "twin">>
+			<</switch>>
 			<<set $activeSlave.relationTarget = _tempSlave.ID>>
 		<</if>>
+		<<if $startingGirlRelation != "twin">><<set $activeSlave.birthWeek = random(0,51)>><</if>>
 	<</if>>
 	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
 	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
@@ -64,7 +116,6 @@
 	<<if _familyName>><<set $activeSlave.slaveSurname = _familyName>><</if>>
 	<<set $activeSlave.birthSurname = _familyBirthSurname>>
 	<<set $activeSlave.slaveName = $activeSlave.birthName>>
-	<<set $activeSlave.ID = $IDNumber++>>
 	<<if $activeSlave.attrKnown == 0>>
 		<<set $activeSlave.attrXX = random(0,100)>>
 		<<set $activeSlave.attrXY = random(0,100)>>
@@ -74,7 +125,7 @@
 		<<set $activeSlave.fetishStrength = random(0,90)>>
 		<<set $activeSlave.fetish = either("none", "none", "none", "none", "none", "none", "none", "none", "none", "none", "submissive", "cumslut", "humiliation", "buttslut", "boobs", "pregnancy", "dom", "sadist", "masochist")>>
 	<</if>>
-	<<set $startingGirlCopied = 0>>
+	<<set $startingGirlCopied = 0, $startingGirlRelation = 0>>
 <<elseif $archetyped == 1>>
 	<<NationalityToName $activeSlave>>
 	<<set $activeSlave.slaveName = $activeSlave.birthName, $archetyped = 0>>
diff --git a/src/pregmod/seFCTVshows.tw b/src/pregmod/seFCTVshows.tw
index 177cd25d0e1..445a29e42f5 100644
--- a/src/pregmod/seFCTVshows.tw
+++ b/src/pregmod/seFCTVshows.tw
@@ -494,8 +494,8 @@ The offered price is ¤<<print $slaveCost>>.
 		<br><br>.....
 		
 	<<elseif $arcologies[0].FSTransformationFetishist == "unset" && $randShow == 4>>
-		a documentary on the spreading Body Purist movement titled: "Don't Settle for Immitations". The opening credits are displayed over a series of comparison images showing beautiful breasts and asses next to obviously artificial immitations of the same. The screen splits and shows the two hosts in their own environments side by side. One is an extremely attractive doctor, her body is exquisitely curvy underneath her lab coat and her face is an impossible combination of beautiful and cute. The other host is an artist with graying hair, he's working in his studio to create a lifesize scupture of the first host. He starts off the documentary by asking why people are so eager to destroy the natural beauty of the human form. The doctor continues by asking why people are so impatient that they get implants instead of using a supperior process of targeted hormonal growth.
-		<br><br>The documentary keeps up the two-viewpoint style and approaches the issue from two directions. The first is the stark asthetic differences between natural and artificial bodies. It demonstrates why implants always fall short of the beauty they seek to immitate, and how those with implants are doomed to a viscious cycle of surgery to try and recapture the beauty they lost in the initial surgery. The other angle, presented by the doctor, is a lot more practical. It points out the numerous shortcomings of implants when compared to natural growth, such as the frequent need for maintenance surgeries, the significant extra health risks, the reduced pleasure and sensitivity felt by implant patients, and the extreme difficulty of a patient to get what they want. Taken together the argument is pretty simple: why get implants when other medical options are cheaper, safer, more effective, healthier, and more attractive?
+		a documentary on the spreading Body Purist movement titled: "Don't Settle for Imitations". The opening credits are displayed over a series of comparison images showing beautiful breasts and asses next to obviously artificial imitations of the same. The screen splits and shows the two hosts in their own environments side by side. One is an extremely attractive doctor, her body is exquisitely curvy underneath her lab coat and her face is an impossible combination of beautiful and cute. The other host is an artist with graying hair, he's working in his studio to create a life-size sculpture of the first host. He starts off the documentary by asking why people are so eager to destroy the natural beauty of the human form. The doctor continues by asking why people are so impatient that they get implants instead of using a superior process of targeted hormonal growth. 
+		<br><br>The documentary keeps up the two-viewpoint style and approaches the issue from two directions. The first is the stark aesthetic differences between natural and artificial bodies. It demonstrates why implants always fall short of the beauty they seek to imitate, and how those with implants are doomed to a vicious cycle of surgery to try and recapture the beauty they lost in the initial surgery. The other angle, presented by the doctor, is a lot more practical. It points out the numerous shortcomings of implants when compared to natural growth, such as the frequent need for maintenance surgeries, the significant extra health risks, the reduced pleasure and sensitivity felt by implant patients, and the extreme difficulty of a patient to get what they want. Taken together the argument is pretty simple: why get implants when other medical options are cheaper, safer, more effective, healthier, and more attractive? 
 		<br><br>.....
 		
 	<<elseif $arcologies[0].FSBodyPurist == "unset" && $randShow == 4>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 9da7b66dd6c..963ee4e51af 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -248,6 +248,12 @@
 <<if ndef $arcologies[0].FSHedonisticDecadenceDietResearch>>
 	<<set $arcologies[0].FSHedonisticDecadenceDietResearch = 0>>
 <</if>>
+<<if ndef $arcologies[0].FSPhysicalIdealistStrongFat>>
+	<<set $arcologies[0].FSPhysicalIdealistStrongFat = 0>>
+<</if>>
+<<if ndef $arcologies[0].FSHedonisticDecadenceStrongFat>>
+	<<set $arcologies[0].FSHedonisticDecadenceStrongFat = 0>>
+<</if>>
 <<if ndef $arcologies[0].FSCummunism>>
 	<<for _bci = 0; _bci < $arcologies.length; _bci++>>
 		<<set $arcologies[_bci].FSCummunism = "unset", $arcologies[_bci].FSCummunismDecoration = 0>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 7b2aefe9f8b..adc9be5838e 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -1119,7 +1119,7 @@ It's Friday evening, the most socially important part of the week in $arcologies
 
 <<case "masterful whore">>
 
-<<EventNameLink $activeSlave>> is a queen of the whorehouse: never surprised, never squeamish, and always on the prowl for her next customer. She has mastered the transactionalization of sex. When she's selling herself by the hole, a customer who purchases her skilled oral services will often find himself upsold to a more expensive anal experience. When she's doing it by the orgasm, customers find themselves climaxing rather more quickly than they intended.
+<<EventNameLink $activeSlave>> is a queen of the whorehouse: never surprised, never squeamish, and always on the prowl for her next customer. She has mastered the transactionalization of sex. When she's selling herself by the hole, a customer who purchases her skilled oral services will often find himself upsold to a more expensive <<if canDoAnal($activeSlave)>>anal experience<<elseif canDoVaginal($activeSlave)>>vaginal experience<<else>>showcase of her skills<</if>>. When she's doing it by the orgasm, customers find themselves climaxing rather more quickly than they intended.
 <br><br>
 And perhaps most importantly, she always has an ear to the ground, even when one of them is being shoved against the sheets. Customers say the most interesting things when they've got themselves buried in her. Today, she's got an especially delightful morsel of information for you: one of your commercial tenants is shortchanging you on rent, concealing profits to reduce your share.
 
diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw
index 9f36b25b3b1..78bdb7f29e5 100644
--- a/src/uncategorized/bodyModification.tw
+++ b/src/uncategorized/bodyModification.tw
@@ -1224,7 +1224,6 @@ Choose a tattoo style:
 <</if>>
 
 <<if $tattooChoice == 0>>
-	<<if $activeSlave.shouldersTat != "bovine patterns">>
 		<<if $activeSlave.shouldersTat != $tattooChoice>> | [[Shoulders|Body Modification][$activeSlave.shouldersTat = $tattooChoice,$cash -= $modCost]]<</if>>
 		<<if $activeSlave.lipsTat != $tattooChoice>> | [[Face|Body Modification][$activeSlave.lipsTat = $tattooChoice,$cash -= $modCost]]<</if>>
 		<<if $activeSlave.boobsTat != $tattooChoice>> | [[Boobs|Body Modification][$activeSlave.boobsTat = $tattooChoice,$cash -= $modCost]]<</if>>
@@ -1242,12 +1241,10 @@ Choose a tattoo style:
 		<<if $activeSlave.amp == 0>>
 			<<if $activeSlave.legsTat != $tattooChoice>> | [[Legs|Body Modification][$activeSlave.legsTat = $tattooChoice,$cash -= $modCost]]<</if>>
 		<</if>>
-	<</if>>
 <<elseif $tattooChoice == "permanent makeup">>
 	[[Face|Body Modification][$activeSlave.lipsTat = $tattooChoice,$cash -= $modCost]]
 <<elseif $tattooChoice == "bleached">>
 	[[Asshole|Body Modification][$activeSlave.anusTat = $tattooChoice,$cash -= $modCost]]
-<<elseif $tattooChoice == "bovine patterns">>
 <<else>>
 	<<if $activeSlave.shouldersTat != $tattooChoice>> | [[Shoulders|Body Modification][$activeSlave.shouldersTat = $tattooChoice,$cash -= $modCost]]<</if>>
 	<<if $activeSlave.lipsTat != $tattooChoice>> | [[Face|Body Modification][$activeSlave.lipsTat = $tattooChoice,$cash -= $modCost]]<</if>>
@@ -1317,7 +1314,8 @@ Choose a tattoo style:
 
 Branding: 
 <<if $activeSlave.brand != 0>>
-	$pronounCap has $activeSlave.brand branded into the flesh of $possessive $activeSlave.brandLocation. [[Remove Brand|Body Modification][$brandApplied = 0, $activeSlave.brand = 0,$cash -= $modCost,$degradation -= 10]]
+	<<brandDescription>>
+	[[Remove Brand|Body Modification][$brandApplied = 0, $activeSlave.brand = 0,$cash -= $modCost,$degradation -= 10]]
 <<else>>
 	Her skin is unmarked.
 <</if>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 082a7f56ca8..46f21913731 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -2,6 +2,7 @@
 
 <<SlavePronouns $activeSlave>>
 <<SlaveStatClamp $activeSlave>>
+<<Beauty $activeSlave>>
 
 /* 000-250-006 */
 <<if $seeImages == 1>>
@@ -1282,7 +1283,7 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower
 <<if $showBodyMods == 1>>
   <<if ($activeSlave.brand != 0)>>
 	<<if ($activeSlave.brandLocation == "neck") || ($activeSlave.brandLocation == "left cheek") || ($activeSlave.brandLocation == "right cheek") || ($activeSlave.brandLocation == "cheeks") || ($activeSlave.brandLocation == "left ears") || ($activeSlave.brandLocation == "right ears") || ($activeSlave.brandLocation == "ears")>>
-	  She has $activeSlave.brand branded into the flesh of her $activeSlave.brandLocation.
+	  <<brandDescription>>
 	<</if>>
   <</if>>
 <</if>>
@@ -1362,7 +1363,7 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower
   <</for>>
 <</if>>
 
-<</if>>
+<</if>> /* closes extended family mode */
 
 <<if $activeSlave.rivalry != 0>>
   <<for _lsd = 0; _lsd < $slaves.length; _lsd++>>
@@ -1517,61 +1518,12 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower
 <</if>>
 
 <<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty > 0>>
-	<<if (Math.abs($activeSlave.weight) <= 30) && $arcologies[0].FSHedonisticDecadence == "unset">>
-		<<if $arcologies[0].FSPhysicalIdealist != "unset">>
-			<<set _genderLawDesc = 1>>
-		<<elseif $arcologies[0].FSPhysicalIdealist == "unset" && $activeSlave.muscles <= 30>>
-			<<set _genderLawDesc = 1>>
-		<<else>>
-			<<set _genderLawDesc = 0>>
-		<</if>>
-		<<if _genderLawDesc == 1>>
-			<<if $arcologies[0].FSAssetExpansionist != "unset">>
-				<<if $activeSlave.boobs >= 500 && $activeSlave.boobs <= 1600 && $activeSlave.butt >= 3 && $activeSlave.butt <= 6>>
-					<<set _genderLawDesc = 1>>
-				<<else>>
-					<<set _genderLawDesc = 0>>
-				<</if>>
-			<<elseif $activeSlave.boobs >= 500 && $activeSlave.boobs <= 800 && $activeSlave.butt >= 3 && $activeSlave.butt <= 4>>
-				<<set _genderLawDesc = 1>>
-			<<else>>
-				<<set _genderLawDesc = 0>>
-			<</if>>
-		<</if>>
-	<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && $activeSlave.weight <= 130 && $activeSlave.weight > -30>>
-		<<if _genderLawDesc == 1>>
-			<<if $arcologies[0].FSAssetExpansionist != "unset">>
-				<<if $activeSlave.boobs >= 500 && $activeSlave.boobs <= 1600 && $activeSlave.butt >= 3 && $activeSlave.butt <= 6>>
-					<<set _genderLawDesc = 1>>
-				<<else>>
-					<<set _genderLawDesc = 0>>
-				<</if>>
-			<<elseif $activeSlave.boobs >= 500 && $activeSlave.boobs <= 800 && $activeSlave.butt >= 3 && $activeSlave.butt <= 4>>
-				<<set _genderLawDesc = 1>>
-			<<else>>
-				<<set _genderLawDesc = 0>>
-			<</if>>
-		<</if>>
-	<<else>>
-		<<set _genderLawDesc = 0>>
-	<</if>>
-	<<if _genderLawDesc == 1>>
+	<<if $genderLawPass == 1>>
 		$possessiveCap body is a perfect example of the fashionable feminine ideal.
 	<</if>>
 <<elseif $arcologies[0].FSSlimnessEnthusiastLaw == 1>>
-	<<if ($activeSlave.boobs < 300) && ($activeSlave.butt <= 1) && ($activeSlave.waist <= 10)>>
-		<<if $arcologies[0].FSPhysicalIdealist != "unset" && ($activeSlave.weight <= 10)>>
-			<<set _slimDesc = 1>>
-		<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && $activeSlave.weight <= 30 && $activeSlave.muscles <= 30>>
-			<<set _slimDesc = 1>>
-		<<elseif $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadence == "unset" && $activeSlave.muscles <= 30 && ($activeSlave.weight <= 10)>>
-			<<set _slimDesc = 1>>
-		<<else>>
-			<<set _slimDesc = 0>>
-		<</if>>
-		<<if _slimDesc == 1>>
-			$possessiveCap body is a perfect example of the fashionable ideal flat body.
-		<</if>>
+	<<if $slimPass == 1>>
+		$possessiveCap body is a perfect example of the fashionable ideal flat body.
 	<</if>>
 <<elseif $arcologies[0].FSHedonisticDecadenceLaw2 == 1>>
 	<<if ($activeSlave.boobs >= 2000) && ($activeSlave.butt >= 5) && ($activeSlave.weight > 95)>>
@@ -1584,7 +1536,6 @@ when a dick is pushed inside <<if $activeSlave.vagina >= -1>>either of its lower
 <</if>>
 
 <<if ($showScores != 0)>>
-	<<Beauty $activeSlave>>
 	<<FResult $activeSlave>>
 	Currently, $pronoun has an @@.pink;''attractiveness score'' of __''$beauty''__@@ and a @@.lightcoral;''sexual score'' of __''$FResult''__.@@
 <</if>>
@@ -1769,7 +1720,7 @@ $pronounCap has
 <</if>>
 
 <<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty > 0>>
-	<<if $arcologies[0].FSHedonisticDecadence == "unset">>
+	<<if $arcologies[0].FSHedonisticDecadence == "unset" && $arcologies[0].FSPhysicalIdealistStrongFat == 0>>
 		<<if $activeSlave.weight > 130>>
 			$pronounCap is much too fat for the fashionable feminine ideal.
 		<<elseif $activeSlave.weight > 30>>
@@ -1785,7 +1736,7 @@ $pronounCap has
 		<</if>>
 	<</if>>
 <<elseif $arcologies[0].FSSlimnessEnthusiastLaw == 1>>
-	<<if $arcologies[0].FSHedonisticDecadence == "unset">>
+	<<if $arcologies[0].FSHedonisticDecadence == "unset" && $arcologies[0].FSPhysicalIdealistStrongFat == 0>>
 		<<if $activeSlave.weight > 30>>
 			$pronounCap is much too fat for the fashionable feminine ideal.
 		<<elseif $activeSlave.weight > 10>>
@@ -1879,7 +1830,7 @@ $pronounCap is
 	@@.red;frail;@@ she can barely hold herself up.
 <</if>>
 
-<<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty + $arcologies[0].FSSlimnessEnthusiastLaw > 0 && $arcologies[0].FSPhysicalIdealist == "unset">>
+<<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty + $arcologies[0].FSSlimnessEnthusiastLaw > 0 && $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadenceStrongFat == 0>>
 	<<if $arcologies[0].FSPhysicalIdealistLaw > 0 && $activeSlave.muscles > 50>>
 		$pronounCap is entirely too muscular for the fashionable feminine ideal.
 	<<elseif $activeSlave.muscles > 30>>
@@ -2302,7 +2253,7 @@ $pronounCap is
 <<if $showBodyMods == 1>>
   <<if ($activeSlave.brand != 0)>>
 	<<if ($activeSlave.brandLocation == "back") || ($activeSlave.brandLocation == "chest") || ($activeSlave.brandLocation == "right shoulder") || ($activeSlave.brandLocation == "left shoulder") || ($activeSlave.brandLocation == "shoulders") || ($activeSlave.brandLocation == "right upper arm") || ($activeSlave.brandLocation == "left upper arm") || ($activeSlave.brandLocation == "upper arms") || ($activeSlave.brandLocation == "right lower arm") || ($activeSlave.brandLocation == "left lower arm") || ($activeSlave.brandLocation == "lower arms") || ($activeSlave.brandLocation == "right wrist") || ($activeSlave.brandLocation == "left wrist") || ($activeSlave.brandLocation == "wrists") || ($activeSlave.brandLocation == "right hand") || ($activeSlave.brandLocation == "left hand") || ($activeSlave.brandLocation == "hands") || ($activeSlave.brandLocation == "left ankle") || ($activeSlave.brandLocation == "right ankle") || ($activeSlave.brandLocation == "ankles") || ($activeSlave.brandLocation == "right calf") || ($activeSlave.brandLocation == "left calf") || ($activeSlave.brandLocation == "calves") || ($activeSlave.brandLocation == "right foot") || ($activeSlave.brandLocation == "left foot") || ($activeSlave.brandLocation == "feet")>>
-	  She has $activeSlave.brand branded into the flesh of her $activeSlave.brandLocation.
+	  <<brandDescription>>
 	<</if>>
   <</if>>
 <</if>>
@@ -2591,13 +2542,9 @@ Her scars make her look like she's in the right place.
 <<if $activeSlave.fuckdoll == 0>>
 <<nailsDescription>>
 <<if $showBodyMods == 1>>
-	<<if ($activeSlave.armsTat == "bovine patterns") && ($activeSlave.legsTat == "bovine patterns") && ($activeSlave.shouldersTat == "bovine patterns") && ($activeSlave.backTat == "bovine patterns")>>
-		<<bovineTatDescription>>
-	<<else>>
-		<<backTatDescription>>
-		<<shouldersTatDescription>>
-		<<armsTatDescription>>
-	<</if>>
+	<<backTatDescription>>
+	<<shouldersTatDescription>>
+	<<armsTatDescription>>
 <</if>>
 <</if>>
 
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index e36daabdf33..ee647200fc1 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -23,16 +23,35 @@ You own ''$arcologies[0].ownership%'' of $arcologies[0].name, <<if $arcologies[0
 <</if>>
 
 <<if $plot>>
-	<br>
-	<<if $peacekeepers != 0>>
-		There's a peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City.
-	<<elseif $invasionVictory>>
-		The area previously occupied by the little old world country whose collapse led to a failed invasion of the Free City is a lawless wilderness.
-	<<elseif $week > 29>>
-		A small old world country near the arcology is in the process of collapse<<if $nationHate>>, and your opportunistic behavior towards it has caused hatred there<</if>>.		
+<br>
+<<if $peacekeepers != 0>>
+	<<if $peacekeepers.strength >= 50>>
+		General $peacekeepers.generalName now governs an area near the Free City as a warlord, using the men and women of his former peacekeeping forces to rule.
+		<<if $peacekeepers.attitude >= 100>>
+			Thanks to your efforts, the area is a de facto client state of your arcology.
+		<<else>>
+			He considers himself indebted to you, and delivers periodic tributes of menial slaves.
+		<</if>>
 	<<else>>
-		There is nothing notable about the decaying old world countries <<if $terrain == "oceanic">>on the shoreline nearest<<else>>near<</if>> the arcology.
+		There's a peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City.
+		<<set $peacekeepers.undermining = Number($peacekeepers.undermining) || 0>>
+		<<if $peacekeepers.undermining>>
+			<<if $peacekeepers.undermining > 10000>><<set _warn = 1>><</if>>
+			<<set $peacekeepers.undermining = Math.clamp(Math.ceil($peacekeepers.undermining/1000)*1000, 0, 10000)>>
+			You are spending ¤<<textbox "_newUndermining" $peacekeepers.undermining>> each week to promote misinformation in the old world that undermines the peacekeepers.
+			[[Save changes|Manage Arcology][$peacekeepers.undermining = Number(_newUndermining) || 0]]
+			<<if _warn>><br>//Spending more than ¤10000 weekly would be counterproductive//<</if>>
+		<<else>>
+			You are not undermining the peacekeepers. [[Start a misinformation campaign|Manage Arcology][$peacekeepers.undermining = 1000]]
+		<</if>>
 	<</if>>
+<<elseif $invasionVictory>>
+	The area previously occupied by the little old world country whose collapse led to a failed invasion of the Free City is a lawless wilderness.
+<<elseif $week > 29>>
+	A small old world country near the arcology is in the process of collapse<<if $nationHate>>, and your opportunistic behavior towards it has caused hatred there<</if>>.		
+<<else>>
+	There is nothing notable about the decaying old world countries <<if $terrain == "oceanic">>on the shoreline nearest<<else>>near<</if>> the arcology.
+<</if>>
 <</if>>
 
 <<if $FSAnnounced > 0>>
diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw
index f903877c071..1435fde6ec5 100644
--- a/src/uncategorized/neighborsDevelopment.tw
+++ b/src/uncategorized/neighborsDevelopment.tw
@@ -2469,3 +2469,43 @@ has an estimated GSP of @@.yellowgreen;¤<<print Math.trunc((0.1*$arcologies[$i]
 
 <br>
 <</for>>
+
+/* PEACEKEEPERS */
+
+<<if $plot>>
+<<if $peacekeepers != 0>>
+	<br><br>
+	<<if $peacekeepers.strength >= 50>>
+		<<set _prisoners = Math.trunc($peacekeepers.attitude/10)+random(0,10)>>
+		General $peacekeepers.generalName's little empire near the arcology
+		<<if $peacekeepers.attitude >= 100>>
+			offers _prisoners menial slaves as tribute; having the area as an avowed client state @@.green;improves your reputation.@@
+			<<set $rep += 100, $peacekeepers.attitude = 100>>
+		<<else>>
+			delivers _prisoners to you in payment for your past support.
+		<</if>>
+		<<set $helots += _prisoners>>
+	<<elseif $peacekeepers.strength < 0>>
+		@@.yellow;The peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City has been withdrawn.@@
+		<<if $peacekeepers.undermining>>
+			Your misinformation campaign against it in the old world media was successful. Before long, everyone in the Free City is confident that you're somehow responsible, @@.green;greatly improving your reputation.@@
+			<<set $rep += 2000, $peacekeepers = 0>>
+		<<else>>
+			The cost was ultimately too high. The time when old world countries could afford to waste billions on military adventurism is gone. It will not return.
+		<</if>>
+	<<else>>
+		There's a peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City.
+		<<if $peacekeepers.undermining>>
+			You're paying for an media misinformation campaign in the old world country that sent him. It
+			<<set $peacekeepers.strength -= $peacekeepers.undermining/10000>>
+			<<if $peacekeepers.strength < 10>>
+				has had a significant impact; one of the nation's two major political parties now favors withdrawing the peacekeepers.
+			<<else>>
+				has not had a significant impact yet; only a few fringe figures are arguing against the mission.
+			<</if>>
+		<</if>>
+		Unfortunately, the presence of so much old world military power near the Free City causes @@.red;public concern.@@
+		<<set $rep -= 100>>
+	<</if>>
+<</if>>
+<</if>>
\ No newline at end of file
diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw
index 24e5fc2e7d0..798f9a22063 100644
--- a/src/uncategorized/nonRandomEvent.tw
+++ b/src/uncategorized/nonRandomEvent.tw
@@ -2,7 +2,7 @@
 
 <<set $showEncyclopedia = 0, $activeSlave = 0, $eventSlave = 0>>
 
-<<if ($plot == 1)>>
+<<if $plot>>
 
 <<set _effectiveWeek = $week-$nationHate>>
 <<set $toSearch = $arcologies[0].name>>
@@ -114,8 +114,10 @@
 	<<goto "Assistant Events">>
 <<elseif (_effectiveWeek > 70) && ($corpIncorporated > 0) && ($rivalOwnerEnslaved > 0) && ($mercenaries >= 3) && ($mercenariesHelpCorp == 0)>>
 	<<goto "P Mercs Help Corp">>
-<<elseif _effectiveWeek > 75 && $peacekeepers.strength == 1>>
+<<elseif _effectiveWeek > 75 && $peacekeepers.strength < 50>>
 	<<goto "P peacekeepers independence">>
+<<elseif $peacekeepers.strength >= 50 && $peacekeepers.influenceAnnounced == 0>>
+	<<goto "P peacekeepers influence">>
 <<elseif (_effectiveWeek > 80) && (random(1,100) > 66) && ($securityForceCreate != 1) && ($securityForceEventSeen != 1) && ($SFMODToggle == 1)>>
 	<<goto "Security Force Proposal">>
 <<elseif ($securityForceCreate == 1) && ($securityForceActive == 0)>>
diff --git a/src/uncategorized/pPeacekeepersDeficit.tw b/src/uncategorized/pPeacekeepersDeficit.tw
index b1dab04229d..a082f3161f5 100644
--- a/src/uncategorized/pPeacekeepersDeficit.tw
+++ b/src/uncategorized/pPeacekeepersDeficit.tw
@@ -10,7 +10,7 @@ It's a video link, and the general is in the field somewhere, wearing scuffed ar
 
 <br><br>
 
-"First," he says sharply, "I'm not getting the support I need out here." It obviously pains him to admit this, and the muscles along his jaw tense as he does, as though he's chewing on the words. "And I'm not giving anything away by telling you that. It's obvious enough, if you compare what I'm being asked to do here with the resources the politicians back home are willing to provide." At this, $assistantName displays a quick summary of the political developments in the general's home country. He's right; the expensive peacekeeping force is unpopular, and its support is being reduced by opportunistic politicans. "It isn't bad yet," he says, "but if this keeps up, I'm going to be rationing the most modern medical supplies for my wounded men and women. That's hard."
+"First," he says sharply, "I'm not getting the support I need out here." It obviously pains him to admit this, and the muscles along his jaw tense as he does, as though he's chewing on the words. "And I'm not giving anything away by telling you that. It's obvious enough, if you compare what I'm being asked to do here with the resources the politicians back home are willing to provide." At this, $assistantName displays a quick summary of the political developments in the general's home country. General $peacekeepers.generalName is right; the expensive peacekeeping force is unpopular, and its support is being reduced by opportunistic politicans. "It isn't bad yet," he says, "but if this keeps up, I'm going to be rationing the most modern medical supplies for my wounded men and women. That's hard."
 
 <br><br>
 
diff --git a/src/uncategorized/pPeacekeepersIndependence.tw b/src/uncategorized/pPeacekeepersIndependence.tw
index baf559dd104..d1056b8e5c9 100644
--- a/src/uncategorized/pPeacekeepersIndependence.tw
+++ b/src/uncategorized/pPeacekeepersIndependence.tw
@@ -2,4 +2,49 @@
 
 <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">>
 
-//FCdev created a bugged mess, have fun//
\ No newline at end of file
+<<set $peacekeepers.strength = -10>>
+
+General $peacekeepers.generalName contacts you again, looking more tired and battered than ever. There's a strange light in his eyes, though, as though he's resolved to make a big bet. And once he starts speaking, it turns out that he is. "<<PlayerName>>," he says, "<<if $peacekeepers.attitude > 10>>you've been supportive of my peacekeeping mission here in the past<<else>>I understand your attitude towards my peacekeeping mission here must be mixed<</if>>. But all that's about to change." He straightens up, falling back on a military bearing. "The support - funding, supply, everything - for my men and women here is ending, effective now. Right now, in fact. I'm not sure how I'm going to get everyone home." He looks through the video feed at you.
+
+<br><br>
+
+"If we're going home."
+
+<br><br>
+
+"The world's changed," he continues. "Or maybe it's gone back to the way it used to be. There's nothing for my people back home but discharge and unemployment. If they're lucky. It's too much to ask good men and women, good, armed, men and women, to do that. Not when we already control what used to be a nation, right here." He gestures around him, probably indicating maps you can't see. "We're already the government here. It's a battered, war-torn country, but it's a country. If I start levying taxes here, it'll keep my men and women fed. And clothed. And in something like the status they deserve." And, he does not need to add, General $peacekeepers.generalName will be a powerful warlord.
+
+<br><br>
+
+"But," he says. "But. This is going to be difficult. I can't be sure I'll succeed. As for me, I'd take the chance and be damned, just for the chance to tell the politicans back home what they can do with their orders. But there's my men and women. They'll do what I ask, but I won't ask it of them without a good, solid chance." His eyes narrow. "I need funding, and I need it now. I can't offer anything in return, not right away. But I pay my debts. And we'll be a buffer between external threats and the Free City. And finally, any resentment about old world power in the area among your people will be wiped away overnight."
+
+<br><br>
+<span id="result">
+<<if $cash >= 100000>>
+<<link "Provide immediate assistance">>
+	<<replace "#result">>
+		You immediately wire General $peacekeepers.generalName ¤100000, not an impressive sum by Free Cities standards, but probably enough to turn the scales in his plans to keep his force together as it transitions from old world peacekeeping to autocratic nation building. Soon enough, he'll be able to support his men and women through armed extortion, the original form of taxation and, arguably, the only form of taxation.
+		<br><br>
+		"You have my thanks," he says formally. "We'll be in control here soon enough. The one thing we'll have an almost limitless supply of is people. I don't think anyone's likely to notice a few menial slaves transferred into the Free City. I'm sure a regular trade already exists; we'll just be adding a few undesirables to it." He ends the call, looking determined. Despite his confidence, he has his work cut out for him.
+		<<set $cash -= 100000, $peacekeepers.strength = 50, $peacekeepers.attitude += 5, $peacekeepers.undermining = 0>>
+	<</replace>>
+<</link>> //This will cost ¤100000//
+<<else>>
+	You lack the ¤ to make any meaningful contribution.
+<</if>>
+<<if $cash >= 250000>>
+	<<link "Deliver generous aid">>
+		<<replace "#result">>
+			You immediately wire General $peacekeepers.generalName ¤250000, enough to keep his force together through the critical period as it transitions from old world peacekeeping to autocratic nation building. Soon enough, he'll be able to support his men and women through armed extortion, the original form of taxation and, arguably, the only form of taxation.
+			<br><br>
+			"That's extremely generous of you," he says, with an undertone of relief. "This is going to go much more smoothly than I'd originally thought. And I see that we're going to have friends and allies out here, as we establish ourselves. We're going to have quite a few undesirables to rid ourselves of, here, and the menial slave trade between this area and the Free City seems like an opportune way to do that." He ends the call, looking confident.
+			<<set $cash -= 250000, $peacekeepers.strength = 50, $peacekeepers.attitude += 25, $peacekeepers.undermining = 0>>
+		<</replace>>
+	<</link>> //This will cost ¤250000//
+<</if>>
+<br><<link "Decline to support him">>
+	<<replace "#result">>
+		You inform General $peacekeepers.generalName that you will not be providing assistance. He does not falter, but he looks suddenly older, as thought he prospect of a decisive stroke was giving him the strength to carry on. He expresses his regrets dully, and then ends the call.
+	<</replace>>
+<</link>>
+</span>
\ No newline at end of file
diff --git a/src/uncategorized/pPeacekeepersInfluence.tw b/src/uncategorized/pPeacekeepersInfluence.tw
new file mode 100644
index 00000000000..5bc29248fab
--- /dev/null
+++ b/src/uncategorized/pPeacekeepersInfluence.tw
@@ -0,0 +1,101 @@
+:: P peacekeepers influence [nobr]
+
+<<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">>
+
+<<set $peacekeepers.influenceAnnounced = 1>>
+
+General $peacekeepers.generalName has successfully declared his independence from his mother country. That nation recruited, trained, and commanded him and all his men and women, but then it sent him to keep the peace in a war-torn region, failed to give him the support he needed, and then tried to withdraw him when the costs of what support they were willing to send overtopped what weak political will the old world still has. In truth, it was only a half-step from peacekeeping force to government, for General $peacekeepers.generalName and his troops. They were already the only source of public order in that area.
+
+<br><br>
+
+You provided money to General $peacekeepers.generalName to help him through this difficult time of transition, making him an investment of yours. That investment has already shown a small return; the first regular tribute of slaves arrived this week, free of charge. General $peacekeepers.generalName seems determined to pay his debts properly, and he sent you good stock, healthy menials ready for <<if $Helots>>work<<if $Sweatshops>>. They're already toiling away in $arcologies[0].name's sweatshops<</if>><<else>>resale<</if>>. Even better, it seems you can expect to recieve a similar shipment in perpetuity. The number of downtrodden people living in the ruins of a small country dwarfs even a Free City's appetite for slaves.
+
+<br><br>
+
+As you review intelligence from the area at your desk,
+<<if $assistant>>
+	$assistantName's avatar pops up.
+	<<switch $assistantAppearance>>
+	<<case "monstergirl">>The little monstergirl toys with her tentacle hair until you give her your attention. When she sees that she has it, she wiggles her hips at you, and gives you a wink.
+	<<case "shemale">>The slutty little shemale pops up, literally, bouncing upward buoyantly in a way that makes her boobs jiggle ridiculously and her cock slap wetly against her stomach.
+	<<case "schoolgirl">>The slutty little schoolgirl pops up, literally, bouncing upward so violently that her skirt flies up and exposes everything. She flips it back down with a giggle.
+	<<case "goddess">>The beautiful, gravid goddess appears with her usual wash of radiant golden light, and gently smooths one of her long tresses with a soft hand until she has your attention.
+	<<case "businesswoman">>The stacked businesswoman appears hugging a tablet to her generous bosom, squashing her cleavage upward and indicating that she has important information for you.
+	<<case "amazon">>The ferocious little warrior woman stands up straight, cutely muscular and full of self-importance, as though she has something she'd like to share.
+	<<case "fairy">> //Placeholder//
+	<<case "pregnant fairy">> //Placeholder//
+	<<case "hypergoddess">>The beautiful, massively gravid goddess appears with her usual wash of radiant golden light, and gently calms her squirming occupents until she has your attention.
+	<<case "loli">>The cute little loli pops up, literally, bouncing upward again and again until she is absolutely certain she has your attention.
+	<<case "preggololi">>The slutty little loli appears bent over flashing her pregnant pussy at you. She giggles and straightens up once she is absolutely certain you've given her moist cleft enough attention.
+	<<case "angel">>The beautiful angel appears in her usual wash of radiant white light and gently folds her wings behind her as she patiently awaits your attention.
+	<<case "cherub">>The cute little cherub appears in her usual wash of radiant white light and flutters around until she has your attention.
+	<<case "incubus">>The hung sex demon pops up, bouncing upward buoyantly in a way that makes her erect cock slide along her stomach. Stimulation just enough, she blows a huge load across your desk while moaning lewdly; she knows how to get your attention.
+	<<case "succubus">>
+		The slutty little sex demoness pops up.
+		<<switch $assistantFSAppearance>>
+		<<case "paternalist">>"<<print $PC.name>>, would you help me with this zipper?"
+		<<case "degradationist">>"<<print $PC.name>>, what do you think of these piercings?"
+		<<case "physical idealist">>"<<print $PC.name>>, bet you I can lift this!"
+		<<case "hedonistic decadence">>"<<print $PC.name>>, is there food on my face?"
+		<<case "repopulation focus">>"<<print $PC.name>>, my water broke."
+		<<case "gender radicalist">>"<<print $PC.name>>, do you think <<if $arcologies[0].FSGenderRadicalistLawFuta == 3>>my ass could be bigger?"<<else>>this oufit makes me look too girly?"<</if>>
+		<<case "gender fundamentalist">>"<<print $PC.name>>, would I make a good mother?"
+		<<case "asset expansionist">>"<<print $PC.name>>, I feel like my breasts got smaller, what do you think?"
+		<<case "transformation fetishist">>"<<print $PC.name>>, how do you think these implants would look in me?"
+		<<case "pastoralist">>"Oh <<print $PC.name>>, I'm so backed up. Would you give me a hand?"
+		<<case "slimness enthusiast">>"<<print $PC.name>>, do <<if $arcologies[0].FSSlimnessEnthusiastLaw == 1>>these look bigger to you?"<<else>>you think they're getting bigger?"<</if>>
+		<<default>>She spasms with a powerful orgasm and moans ledly and loudly.
+		<</switch>>
+		She knows just how to get your attention.
+	<<case "imp">>The scandalous little imp swoops into view and eagerly stares at you, as if she has some juicy gossip to tell you.
+	<<case "witch">>The cute little witch pops up, before blushing and undressing. An important message for you is scrawled across her skin.
+	<<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">>Your shapeshifting assistant pops out of a crack on your desk, her belly swollen with something. She bends over and pushes out information for you, though you not sure how.
+	<<default>>The round symbol pulses brightly, her way of indicating that she has important information for you.
+	<</switch>>
+	"General $peacekeepers.generalName's men and women are using sex slaves," she reports, and brings up a trove of surveillance data to back up her assertion. "It was unofficial at first, 
+	<<switch $assistantAppearance>>
+	<<case "monstergirl">>just people with weapons in their hands doing what people with power over others do," she explains approvingly, showing her fangs.
+	<<case "shemale">>just hot guys sticking their dicks in the local girls," she explains, masturbating openly.
+	<<case "schoolgirl">>just boys blowing off a little steam with the local girls," she explains nastily.
+	<<case "goddess">>just the sort of thing men with arms in their hands have been doing to the locals for thousands of years," she explains.
+	<<case "businesswoman">>normal behavior for soldiers under severe stress in areas with civilians," she explains, sounding vaguely disapproving of something so uncivilized.
+	<<case "amazon">>just warriors letting off steam with the local girls," she explains, making it sound like the most natural thing in the world.
+	<<case "fairy">> //Placeholder//
+	<<case "pregnant fairy">> //Placeholder//
+	<<case "hypergoddess">>just the boys trying to make sure they have someone to carry on their legacy, I'm sure," she states hopefully.
+	<<case "loli">>just wrestling and dancing," her innocence shining through her explination.
+	<<case "preggololi">>just the guys enjoying some fresh young girls," she says with a hint of jealousy.
+	<<case "angel">>just the strong taking what they want without consideration," she sighs, sounding disapproving of something so uncivilized. 
+	<<case "cherub">>simply the satisfication of one's urges," she says with dissapointment.
+	<<case "incubus">>just men enjoying new holes," she explains, masturbating openly.
+	<<case "succubus">>just seductresses doing what they do," she explains, masturbating openly.
+	<<case "imp">>just the victors enjoying the spoils," she says, a hint of excitement in her voice.
+	<<case "witch">>just soldiers relaxing after a hard day," she explains.
+	<<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">>just the conquerors using what's theirs," she explains, making it sound like the most natural thing in the world.
+	<<default>>just the common behavior of troops under severe stress in areas with civilians," she explains.
+	<</switch>>
+	"But it's spread, and with their independence, General $peacekeepers.generalName has decided to bring it under control by setting up official slave brothels for his troops. @@.yellow;The officer in charge of staffing these doesn't have enough money to pay Free Cities prices, but I've added him to the standard slave sale interface.@@ Selling sex slaves to him at a price General $peacekeepers.generalName's people can afford would bring them closer to $arcologies[0].name."
+	<<switch $assistantAppearance>>
+	<<case "monstergirl">>She strokes her cocks meaningfully. "Selling them a particularly distinctive, valuable girl might even influence their tastes. Imagine, manipulating an entire army by providing it with skilled whores." She shudders.
+	<<case "shemale">>She strokes her cock meaningfully. "Oh, and they could even develop into a regular market if they're sold distinctive, valuable girls. We should totally get them addicted to anal whores." To make her meaning perfectly clear, she sticks out her butt and winks her lewd little anus.
+	<<case "schoolgirl">>She flashes her breasts, as though to an appreciative crowd. "If we sell them hotties, it'll get them even more used to us," she says naughtily. "Get them used to Free Cities girls sucking their dicks all the time!"
+	<<case "goddess">>She caresses her pregnancy. "If we sell them some of our best slaves, I'm sure their virtues will win General $peacekeepers.generalName's men and women over," she says confidently. "It'd be like sending some of my own out to love each and every one of them."
+	<<case "businesswoman">>She fans herself, flushing at the possibilities. "Just think, they might develop into a regular, profitable market for sex slaves if they're sent top-quality product at first to build up the brand," she says huskily, and then climaxes.
+	<<case "amazon">>She flexes her muscles, crossing her arms under her big breasts and feeling her own biceps thoughtfully. "Selling them good stock would make them like us even more, I bet," she says. "Sharing a good slut around the campfire is a good way to make friends!"
+	<<case "fairy">> //Placeholder//
+	<<case "pregnant fairy">> //Placeholder//
+	<<case "hypergoddess">>She caresses her pregnancy. "If we sell them some of our fertile slaves, I'm sure their burgeoning pregnancies will ease them into relying on us," she says confidently. "Or at least it will result in more slaves later on."
+	<<case "loli">>She claps excitedly. "If we sell them new friends, then they'll hear from them about how great the Free Cities are and want to become our freinds too!" She says hopefully, eager to meet all the newcomers the the arcology.
+	<<case "preggololi">>She claps excitedly. "I don't know what they think of lolis, but selling them a few cute little slave girls will surely warm them up to us," she says, patting her belly. "Plus, I'm sure they'll love how tight they are and how much energy they have once you break them in!"
+	<<case "angel">>She wrings a wing nervously. "If we send them nice girls, we'd be doing a disservice to them by sending them away. But if we don't, how can we be certain that the girls they have will be well cared for? We definitely need to teach them our ways." She concludes.
+	<<case "cherub">>She lands and ponders deeply. "We have to show them the right way before they get mislead. Some of our finest girls should help convert them to our ways!"
+	<<case "incubus">>>She strokes her cock meaningfully. "Oh, and they could even develop into a regular market if they're sold distinctive, sexy girls. We should totally get them addicted rape." She makes several thrusting motions.
+	<<case "succubus">>She fingers her pussy meaningfully. "Oh, and they could even develop into a regular market if they're sold distinctive, sexy girls. Plus that means more money for you, and less competition for me." She winks.
+	<<case "imp">>She punches her fist into her palm. "We should sell them sexy, but unbroken, girls. That way they can learn to love breaking slaves into proper sex toys!" She shivers with orgasm at the thought.
+	<<case "witch">>She runs her hat through her hands. "If we sell them skilled girls, they'll grow closer to us. But we have to be careful not to send them klutzes like me; not everyone finds that adorable." She takes the time to mend the rip she accidentally tore in her hat's brim.
+	<<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">>She ponders deeply. "We could sell them the most loyal girls we have. They'll naturally lead them back to us. And then they are ours to do as we plase," she says smiling deviously.
+	<<default>>Her symbol takes on a rapid succession of pulsating lewd shapes, signifying some of the arcology's better varieties of sex slaves. "If they're sold good product, they may become a reliable market," she asserts.
+	<</switch>>
+<<else>>
+	your personal assistant appears to offer a suggestion. "I have collated data on the use of unofficial sex slaves by General $peacekeepers.generalName's forces," it reports. "Despite the high state of readiness of his forces, the use of comfort women seems to have become widespread. Characteristically, the general has responded to this by accepting the new status quo, and is setting up recreation centers to ensure that the practice does not become disruptive. One of his officers has been tasked with obtaining appropriate sex slaves, but does not have sufficient resources to pay Free Cities prices. @@.yellow;The purchasing officer may appear as a slave buyer through the standard slave sale interface.@@ It may be possible to influence them by selling them high-quality slaves."
+<</if>>
\ No newline at end of file
diff --git a/src/uncategorized/pPeacekeepersIntro.tw b/src/uncategorized/pPeacekeepersIntro.tw
index 5ad94e4502f..7cd8f2c19ea 100644
--- a/src/uncategorized/pPeacekeepersIntro.tw
+++ b/src/uncategorized/pPeacekeepersIntro.tw
@@ -2,7 +2,7 @@
 
 <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">>
 
-<<set $peacekeepers = {generalName: setup.whiteAmericanSlaveSurnames.random(), strength: 20, attitude: 0, independent: 0, undermining: 0}>>
+<<set $peacekeepers = {generalName: setup.whiteAmericanSlaveSurnames.random(), strength: 20, attitude: 0, independent: 0, undermining: 0, influenceAnnounced: 0, tastes: 0}>>
 <<if $continent == "Africa">>
 	<<set $peacekeepers.generalName = setup.frenchSlaveSurnames.random()>>
 <<elseif $continent == "Asia" || $continent == "Australia">>
@@ -30,7 +30,7 @@ Having the area revert to a Hobbesian wilderness might not be too annoying for y
 
 <br><br>
 
-"In a few hours," says the general, "my country is going to announce the deployment of a peacekeeping force to the lawless area next to your Free City." It should sound like a threat, but it doesn't. The general's body language is erect and military, but not intimidating. He continues, "I want to be clear. We intend to stablize the region. We have no ill intentions toward your Free City, and I see no reason why our interests should ever come into conflict." Despite the direct delivery, he isn't reading from a script that you can see.
+"In a few hours," says the general, "my country is going to announce the deployment of a peacekeeping force to the lawless area next to your Free City." It should sound like a threat, but it doesn't. The general's body language is erect and military, but not intimidating. He continues, "I want to be clear. We intend to stabilize the region. We have no ill intentions toward your Free City, and I see no reason why our interests should ever come into conflict." Despite the direct delivery, he isn't reading from a script that you can see.
 <<if $PC.warfare >= 100 && $invasionVictory > 2>>
 	"As one warrior to another, that was damn fine work you did defending your city. It's good to see tough people doing well in the Free Cities."
 	<<set $peacekeepers.attitude += 5>>
@@ -41,7 +41,7 @@ He spreads his hands. "I don't have anything to suggest, not yet. But if I see a
 
 <br><br>
 
-As he spoke, you and $assistantName surreptitiously checked out what he said. He seems to be telling the truth, and he's correct that your interests won't be immediately affected. Nevertheless, this is a concerning development. General $peacekeepers.generalName will have a thousands of troops and a lot of military hardware under his able command, more or less right next door to the Free City. He might not intend to overstep the bounds of his peacekeeping mandate, but that's no guaruntee that his civilian superiors back home won't decide to order him to. On the other hand, General $peacekeepers.generalName has been successful in these difficult times in no small part due to his willingness to bend the rules. If he sees an opportunity to work with an ambitious arcology owner in furtherance of his goals, he'll probably take it.
+As he spoke, you and $assistantName surreptitiously checked out what he said. He seems to be telling the truth, and he's correct that your interests won't be immediately affected. Nevertheless, this is a concerning development. General $peacekeepers.generalName will have a thousands of troops and a lot of military hardware under his able command, more or less right next door to the Free City. He might not intend to overstep the bounds of his peacekeeping mandate, but that's no guarantee that his civilian superiors back home won't decide to order him to. Worse, the politics of the Free Cities are almost unanimously hostile to old world power; there will be public resentment about this. On the other hand, General $peacekeepers.generalName has been successful in these difficult times in no small part due to his willingness to bend the rules. If he sees an opportunity to work with an ambitious arcology owner in furtherance of his goals, he'll probably take it.
 
 <br><br>
 <span id="result">
diff --git a/src/uncategorized/reBusyBrothel.tw b/src/uncategorized/reBusyBrothel.tw
index 9078bafaf5a..c882cae92ea 100644
--- a/src/uncategorized/reBusyBrothel.tw
+++ b/src/uncategorized/reBusyBrothel.tw
@@ -55,6 +55,7 @@ Of course, $brothelName is the best establishment of its kind in the arcology. C
 		<<set $oralTotal += 10>>
 	<</for>>
 	<<set $cash -= 2000>>
+	<<set $rep += 200>>
 	<</replace>>
 <</link>> //This will cost ¤2000//
 </span>
diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw
index 5f06f8f3e5b..a579b027b95 100644
--- a/src/uncategorized/saWhore.tw
+++ b/src/uncategorized/saWhore.tw
@@ -629,77 +629,28 @@ Her appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a da
 <</if>>
 
 <<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty > 0>>
-	<<if (Math.abs($slaves[$i].weight) <= 30) && $arcologies[0].FSHedonisticDecadence == "unset">>
-		<<if $arcologies[0].FSPhysicalIdealist != "unset">>
-			<<set _genderLawDesc = 1>>
-		<<elseif $arcologies[0].FSPhysicalIdealist == "unset" && $slaves[$i].muscles <= 30>>
-			<<set _genderLawDesc = 1>>
+	<<if $genderLawPass == 1>>
+		<<if $arcologies[0].FSAssetExpansionist != "unset">>
+			She makes extra ¤ due to her fashionably feminine body.
+		<<else>>
+			She receives extra ¤ for having a sleek, girlish figure.
 		<</if>>
-		<<if _genderLawDesc == 1>>
-			<<if $arcologies[0].FSAssetExpansionist != "unset">>
-				<<if $slaves[$i].boobs >= 500 && $slaves[$i].boobs <= 1600 && $slaves[$i].butt >= 3 && $slaves[$i].butt <= 6>>
-					She makes extra ¤ due to her fashionably feminine body.
-					<<if canTalk($slaves[$i])>>
-						<<if $slaves[$i].voice > 2>>
-							Her high voice contributes to her girlish image, so she does even better.
-						<</if>>
-					<</if>>
-				<</if>>
-			<<elseif $slaves[$i].boobs >= 500 && $slaves[$i].boobs <= 800 && $slaves[$i].butt >= 3 && $slaves[$i].butt <= 4>>
-				She receives extra ¤ for having a sleek, girlish figure.
-				<<if canTalk($slaves[$i])>>
-					<<if $slaves[$i].voice > 2>>
-						Her high voice contributes to her girlish image, so she does even better.
-					<</if>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && $slaves[$i].weight <= 130 && $slaves[$i].weight > -30>>
-		<<if _genderLawDesc == 1>>
-			<<if $arcologies[0].FSAssetExpansionist != "unset">>
-				<<if $slaves[$i].boobs >= 500 && $slaves[$i].boobs <= 1600 && $slaves[$i].butt >= 3 && $slaves[$i].butt <= 6>>
-					She makes extra ¤ due to her fashionably feminine body.
-					<<if canTalk($slaves[$i])>>
-						<<if $slaves[$i].voice > 2>>
-							Her high voice contributes to her girlish image, so she does even better.
-						<</if>>
-					<</if>>
-				<</if>>
-			<<elseif $slaves[$i].boobs >= 500 && $slaves[$i].boobs <= 800 && $slaves[$i].butt >= 3 && $slaves[$i].butt <= 4>>
-				She receives extra ¤ for having a sleek, girlish figure.
-				<<if canTalk($slaves[$i])>>
-					<<if $slaves[$i].voice > 2>>
-						Her high voice contributes to her girlish image, so she does even better.
-					<</if>>
-				<</if>>
-			<</if>>
+		<<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>>
+			Her high voice contributes to her girlish image, so she does even better.
 		<</if>>
 	<</if>>
 <<elseif $arcologies[0].FSSlimnessEnthusiastLaw == 1>>
-	<<if ($slaves[$i].boobs < 300) && ($slaves[$i].butt <= 1) && ($slaves[$i].waist <= 10)>>
-		<<if $arcologies[0].FSPhysicalIdealist != "unset" && ($slaves[$i].weight <= 10)>>
-			<<set _slimDesc = 1>>
-		<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && $slaves[$i].weight <= 30 && $slaves[$i].muscles <= 30>>
-			<<set _slimDesc = 1>>
-		<<elseif $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadence == "unset" && $slaves[$i].muscles <= 30 && ($slaves[$i].weight <= 10)>>
-			<<set _slimDesc = 1>>
-		<</if>>
-		<<if _slimDesc == 1>>
-			She makes extra ¤ due to her fashionably sleek little body.
-			<<if canTalk($slaves[$i])>>
-				<<if $slaves[$i].voice > 2>>
-					Her high voice contributes to her girlish image, so she does even better.
-				<</if>>
-			<</if>>
+	<<if $slimPass == 1>>
+		She makes extra ¤ due to her fashionably sleek little body.
+		<<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>>
+			Her high voice contributes to her girlish image, so she does even better.
 		<</if>>
 	<</if>>
 <<elseif $arcologies[0].FSHedonisticDecadenceLaw2 == 1>>
 	<<if ($slaves[$i].boobs >= 2000) && ($slaves[$i].butt >= 5) && ($slaves[$i].weight > 95)>>
 		She makes extra ¤ due to her fashionably plump body.
-		<<if canTalk($slaves[$i])>>
-			<<if $slaves[$i].voice > 2>>
-				Her high voice contributes to her feminine image, so she does even better.
-			<</if>>
+		<<if canTalk($slaves[$i])&& $slaves[$i].voice > 2>>
+			Her high voice contributes to her feminine image, so she does even better.
 		<</if>>
 	<</if>>
 <<else>>
diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw
index a316550d97f..90b0d530de5 100644
--- a/src/uncategorized/sellSlave.tw
+++ b/src/uncategorized/sellSlave.tw
@@ -1,8 +1,8 @@
-:: Sell Slave
+:: Sell Slave [nobr]
+
+<<set $nextButton = "Back">>
+<<set $nextLink = "Slave Interact">>
 
-<<set $nextButton = "Back">>\
-<<set $nextLink = "Slave Interact">>\
-<<nobr>>
 You prepare her for sale. Her response to being put up for purchase is
 <<if $activeSlave.devotion < -50>>muted; perhaps she hopes a new master will be less hateful than you.
 <<elseif $activeSlave.devotion < -20>>muted weeping; for some reason, she doesn't like being treated like meat on a slab.
@@ -550,10 +550,10 @@ A reputable slave appraiser arrives promptly to inspect her and certify her qual
 <</if>> /* CLOSES APPRAISAL */
 <</if>> /* closes breeding mark */
 
-<</nobr>>
+<br><br>
 
 <<if $activeSlave.breedingMark == 1>>
-<<set $buyer to 0>>
+<<set $buyer = 0>>
 <<set $seed to 500*Math.trunc(($slaveCost*1.1)/500)>>
 	<br>The current offer for her stands at ''¤$seed''.
 	<<link "Accept bid">>
@@ -562,8 +562,8 @@ A reputable slave appraiser arrives promptly to inspect her and certify her qual
 		<<goto "Slave Sold">>
 	<</link>>
 <<else>>
-__Bids Received__\
-<<nobr>>
+__Bids Received__
+<br>
 
 <<set $buyer = 0>>
 <<set $seed = 500*Math.trunc(($slaveCost*1.15)/500)>>
@@ -1656,6 +1656,75 @@ __Bids Received__\
 	<</if>>
 <</if>>
 
+<<if $plot>>
+<<if $peacekeepers>>
+<<if $peacekeepers.strength >= 50>>
+<<if $peacekeepers.attitude < 100>>
+	<<if $activeSlave.oralSkill + $activeSlave.analSkill + $activeSlave.vaginalSkill > 100>>
+		<br>''¤<<print 500*Math.trunc(($slaveCost*0.5)/500)>>'' from the officer in charge of 'recreational activities' for General $peacekeepers.generalName's forces. This is far less than the slave is worth, but the bid comes with the implicit offer of more influence over the peacekeepers.
+		<<link "Accept bid">>
+			<<set $cash += 500*Math.trunc(($slaveCost*0.5)/500), $buyer = "peacekeepers">>
+			<<goto "Slave Sold">>
+		<</link>>
+	<</if>>
+<<else>>
+	<<switch $peacekeepers.tastes>>
+	<<case "lusty futanari">>
+		<<if $activeSlave.balls > 0 && $activeSlave.scrotum > 0 && $activeSlave.dick > 0 && $activeSlave.vagina > -1 && $activeSlave.energy > 50>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "cum addicts">>
+		<<if $activeSlave.fetish == "cumslut" && $activeSlave.fetishStrength > 95 && $activeSlave.sexualFlaw == "cum addict">>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "horny MILFs">>
+		<<if $activeSlave.physicalAge > 34 && $activeSlave.visualAge > 34 && $activeSlave.energy > 80>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "big-breasted cows">>
+		<<if $activeSlave.boobs > 2000 && $activeSlave.lactation > 1>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "beautiful young sex slaves">>
+		<<if $activeSlave.physicalAge < 25 && $activeSlave.visualAge < 25 && $activeSlave.face > 95>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "fertile virgins">>
+		<<if $activeSlave.vagina == 0 && isFertile($activeSlave)>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "lusty preggos">>
+		<<if $activeSlave.preg > 10 && $activeSlave.energy > 50>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "baby obsessed breeders">>
+		<<if $activeSlave.preg > 10 && $activeSlave.fetish == "pregnancy" && $activeSlave.sexualFlaw == "breeder">>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "bellies with girls attached">>
+		<<if hyperBellyTwo($activeSlave)>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<<case "flesh balloons">>
+		<<if $activeSlave.breasts > 20000 && $activeSlave.butt > 10>>
+			<br>''¤<<print 500*Math.trunc(($slaveCost*1.2)/500)>>'' from the sex slave buyer for General $peacekeepers.generalName's client state, which prefers $peacekeepers.tastes.
+			<<link "Accept bid">><<set $cash += 500*Math.trunc(($slaveCost*1.2)/500), $buyer = "peacekeepers">><<goto "Slave Sold">><</link>>
+		<</if>>
+	<</switch>>
+<</if>>
+<</if>>
+<</if>>
+<</if>>
+
 <br>
 <br>
 <<link "Re-list her">>
@@ -1664,5 +1733,4 @@ __Bids Received__\
 <</link>>
 //This will cost ¤500//
 
-<</nobr>>
 <</if>>
diff --git a/src/uncategorized/slaveSold.tw b/src/uncategorized/slaveSold.tw
index fbc040ed38f..a4af1c7c100 100644
--- a/src/uncategorized/slaveSold.tw
+++ b/src/uncategorized/slaveSold.tw
@@ -4,7 +4,7 @@
 
 <<set $display = 0>>
 
-<<if $buyer != "elite auction", $buyer != "tentacle bred", $buyer != "womb filler", $buyer != "organ crafter", $buyer != "abortion TV", $buyer != "repopulationist arcology", $buyer != "eugenics arcology">> /* organ crafter is not viable now, the elite won't part so easily with a prize, some take place x months later when the event's max is 15 weeks, and the rest are snuff events. You don't want that slave back. */
+<<if !["elite auction", "tentacle bred", "womb filler", "organ crafter", "abortion TV", "repopulationist arcology", "eugenics arcology", "peacekeepers"].includes($buyer)>> /* organ crafter is not viable now, the elite won't part so easily with a prize, some take place x months later when the event's max is 15 weeks, and the rest are snuff events. You don't want that slave back. */
 <<if !$boomerangSlave || $boomerangWeeks > 15>>
 	<<if $activeSlave.fuckdoll == 0>>
 	<<if canWalk($activeSlave)>>
@@ -996,6 +996,87 @@
 		Your less then intelligent slaves are @@.mediumorchid;deeply envious@@ of $activeSlave.slaveName, completely failing to comprehend what they saw were not special effects.
 	<</if>>
 	
+<<case "peacekeepers">>
+	$activeSlave.slaveName is delivered to General $peacekeepers.generalName's forces, to serve as a barracks whore. Several days later, the purchasing officer forwards a short shot of $activeSlave.slaveName
+	<<if $peacekeepers.tastes == 0>>
+		<<if $slaveCost > random(10000,50000) || $peacekeepers.attitude > 90>><<set _influential = 1>><<else>><<set _influential = 0>><</if>>
+		<<if $influential && $activeSlave.balls > 0 && $activeSlave.scrotum > 0 && $activeSlave.dick > 0 && $activeSlave.vagina > -1 && $activeSlave.energy > 50>>
+			with dicks in her mouth, pussy, and ass. She's totally covered in cum, and a lot of it is hers. There's a note attached, stating superfluously that she's very popular. General $peacekeepers.generalName's buyer is going to be looking for more lusty futas in the future.
+			<<set $peacekeepers.tastes = "lusty futanari">>
+		<<elseif $influential && $activeSlave.fetish == "cumslut" && $activeSlave.fetishStrength > 95 && $activeSlave.sexualFlaw == "cum addict">>
+			on her knees, sucking dick. That's where she's at home, of course, and as soon as the man she's blowing cums down her throat and steps away, another immediately replaces him. $activeSlave.slaveName keeps guzzling penis without hesitation. There's a note attached, stating superfluously that her apparently bottomless appetite for cum has made her very popular. General $peacekeepers.generalName's buyer is going to be looking for more cum addicts in the future.
+			<<set $peacekeepers.tastes = "cum addicts">>
+		<<elseif $influential && $activeSlave.physicalAge > 34 && $activeSlave.visualAge > 34 && $activeSlave.energy > 80>>
+			energentically bouncing atop one young man while a muscular young woman standing over her rides her face. She's got dicks in both of her hands, and is stroking them eagerly. There's a note attached, stating superfluously that she's very popular. General $peacekeepers.generalName's buyer is going to be looking for more horny MILFs in the future.
+			<<set $peacekeepers.tastes = "horny MILFs">>
+		<<elseif $influential && $activeSlave.boobs > 2000 && $activeSlave.lactation > 1>>
+			standing obediently in a comfort station in one of their rear area facilities, while a huge group of muscular men and women take turns drinking straight from her nipples as a break from using the other whores. Someone's fucking her from behind. There's a note attached, stating superfluously that she's very popular. General $peacekeepers.generalName's buyer is going to be looking for more big-breasted cows in the future.
+			<<set $peacekeepers.tastes = "big-breasted cows">>
+		<<elseif $influential && $activeSlave.physicalAge < 25 && $activeSlave.visualAge < 25 && $activeSlave.face > 95>>
+			striking a come-hither pose for an enormous crowd of cheering soldiers. There's a note attached, stating superfluously that she's very popular. It's not surprising; she's young, very beautiful, and able to handle a lot of devoted attention. General $peacekeepers.generalName's buyer is going to be looking for more beautiful young sex slaves in the future.
+			<<set $peacekeepers.tastes = "beautiful young sex slaves">>
+		<<elseif $influential && $activeSlave.vagina == 0 && isFertile($activeSlave)>>
+			happily taking it vaginally while teasing the growing crowd eager to cum in her needy pussy. There's a note attached, stating superfluously that she's very popular. It's not surprising; she has a burning need that they are dutifully fulfulling. General $peacekeepers.generalName's buyer is going to be looking for more eager virgins in the future.
+			<<set $peacekeepers.tastes = "fertile virgins">>
+		<<elseif $influential && $activeSlave.preg > 10 && $activeSlave.energy > 50>>
+			eagerly bouncing atop one young man while a muscular young woman standing over her rides her face. She's got dicks in both of her hands, and is stroking them eagerly, encouraging their owners to cum on her rounded middle. There's a note attached, stating superfluously that she's very popular. General $peacekeepers.generalName's buyer is going to be looking for more horny preggos in the future.
+			<<set $peacekeepers.tastes = "lusty preggos">>
+		<<elseif $influential && $activeSlave.preg > 10 && $activeSlave.fetish == "pregnancy" && $activeSlave.sexualFlaw == "breeder">>
+			on her back, getting fucked while teasing her growing baby bump. That's where she's at home, of course, and as soon as the man she's taking cums in her <<if $activeSlave.mpreg > 0>>asspussy<<else>>pusssy<</if>> and steps away, another immediately replaces him. $activeSlave.slaveName keeps spreading her legs without hesitation. There's a note attached, stating superfluously that her apparently bottomless appetite for bareback sex has made her very popular. General $peacekeepers.generalName's buyer is going to be looking for more baby obsessed breeders in the future.
+			<<set $peacekeepers.tastes = "baby obsessed breeders">>
+		<<elseif $influential && hyperBellyTwo($activeSlave)>>
+			smiling as her immense <<if $activeSlave.preg > 0>>bulging <</if>> belly is used as the center of a large bukkake party. You can just barely make out the figure of someone taking her from behind beyond her immensity. There's a note attached, stating superfluously that her exotic feature makes her very popular. General $peacekeepers.generalName's buyer is going to be looking for more massive bellied girls in the future.
+			<<set $peacekeepers.tastes = "bellies with girls attached">>
+		<<elseif $influential && $activeSlave.breasts > 20000 && $activeSlave.butt > 10>>
+			standing obediently in a comfort station in one of their rear area facilities, while a huge group of muscular men tit fuck her neer endless cleavage and another, smaller group use her gigantic asscheeks. There's a note attached, stating superfluously that her mind-blowing assets make her very popular. General $peacekeepers.generalName's buyer is going to be looking for more slaves with bountiful T&A in the future.
+			<<set $peacekeepers.tastes = "flesh balloons">>
+		<<else>>
+			<<if $activeSlave.devotion > 20>><<if $activeSlave.energy > 80>>eagerly<<else>>willingly<</if>> offering herself outside<<else>>restrained for use inside<</if>> a comfort station at one of their rear area facilities, together with a note stating that she's satisfactory. She's sufficient but not remarkable enough to have a major impact.
+		<</if>>
+	<<else>>
+		<<switch $peacekeepers.tastes>>
+		<<case "lusty futanari">>
+			getting gangbanged at a comfort station at one of their rear area facilities, where she's become the star attraction due to the erstwhile peacekeepers' preference for chicks with dicks.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "cum addicts">>
+			providing incessant oral service at a comfort station at one of their rear area facilities, where she's become the star attraction due to her ability to eagerly suck dick for as long as there's cum available.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "horny MILFs">>
+			getting gangbanged at a comfort station at one of their rear area facilities, where she's become the star attraction due to the erstwhile peacekeepers' preference for older women who really know how to take cocks.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "big-breasted cows">>
+			being hand-milked at a comfort station at one of their rear area facilities, where she's become the most valued piece of human livestock due to the peacekeepers' growing taste for human milk.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "beautiful young sex slaves">>
+			getting gangbanged at a comfort station at one of their rear area facilities, where she's become the star attraction due to the erstwhile peacekeepers' preference for beautiful young girls with those special Free Cities skills.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "fertile virgins">>
+			getting gangbanged at a comfort station at one of their rear area facilities, where she's become the main attraction due to her eagerness to get pregnant. Since that won't take long, they'll likely be back looking for more shortly.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "lusty preggos">>
+			getting gangbanged at a comfort station at one of their rear area facilities, where she's become the star attraction due to the erstwhile peacekeepers' preference for pregnant women with a bottomless lust for cocks.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "baby obsessed breeders">>
+			getting gangbanged at a comfort station at one of their rear area facilities, where she's become the star attraction due to the erstwhile peacekeepers' preference for knocking women up.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "bellies with girls attached">>
+			suspended in a comfort station at one of their rear area facilities, where she's become the star attraction due to the erstwhile peacekeepers' preference for gigantically gravid girls.
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<<case "flesh balloons">>
+			getting gangbanged at a comfort station at one of their rear area facilities, where she's become the star attraction due to the erstwhile peacekeepers' preference for absolutely enormous assets
+			<<if $peacekeepers.attitude < 100>><<set $peacekeepers.attitude++>><</if>>
+		<</switch>>
+	<</if>>
+	<<if $peacekeepers.attitude+Math.ceil($slaveCost/10000) < 100>>
+		Her presence will influence General $peacekeepers.generalName's troops in favor of a closer relationship with the Free City; old world mores are difficult to maintain while inside an arcology-trained sex slave.
+		<<set $peacekeepers.attitude += Math.ceil($slaveCost/10000)>>
+	<<elseif $peacekeepers.attitude < 100>>
+		With $activeSlave.slaveName added to their stable of sex slaves, General $peacekeepers.generalName's troops will be fully converted to the idea of aligning with the slaveowning Free Cities, and the general will no longer have to maintain even plausible deniability. @@.yellow;General $peacekeepers.generalName's little empire is now effectively a client state of $arcologies[0].name.@@
+		<<set $peacekeepers.attitude = 100>>
+	<<else>>
+		General $peacekeepers.generalName's little empire continues to be a reliable client state of $arcologies[0].name, and a good market for $peacekeepers.tastes.
+	<</if>>
+
 <<default>>
 	The buyer forwards payment and sends a purchasing agent to collect her. There is nothing more to be done.
 
diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw
index 0a083ea8714..e5f24af7be8 100644
--- a/src/utility/assayWidgets.tw
+++ b/src/utility/assayWidgets.tw
@@ -654,6 +654,13 @@
 			<<set $beauty += ($args[0].muscles*($arcologies[0].FSPhysicalIdealist/120))>> /*+-83*/
 		<</if>>
 	<</if>>
+	<<if $arcologies[0].FSPhysicalIdealistStrongFat == 1>>
+		<<if $args[0].weight > 10 && $args[0].weight <= 130>>
+			<<set $beauty += ($args[0].weight*($arcologies[0].FSPhysicalIdealist/200))>> /*65*/
+		<<else>>
+			<<set $beauty -= Math.abs($args[0].weight)/2>>
+		<</if>>
+	<</if>>
 	<<if $args[0].height > Height.mean($args[0])>>
 		<<set $beauty += 10>>
 	<</if>>
@@ -661,7 +668,11 @@
 	<<if $args[0].muscles < -10>>
 		<<set $beauty += (Math.abs($args[0].muscles)*($arcologies[0].FSHedonisticDecadence/160))>> /*62.5*/
 	<<elseif $args[0].muscles > 5>>
-		<<set $beauty -= ($args[0].muscles*($arcologies[0].FSHedonisticDecadence/200))>> /*-50*/
+		<<if $arcologies[0].FSHedonisticDecadenceStrongFat == 1>>
+			<<set $beauty += ($args[0].muscles*($arcologies[0].FSHedonisticDecadence/200))>> /*50*/
+		<<else>>
+			<<set $beauty -= ($args[0].muscles*($arcologies[0].FSHedonisticDecadence/200))>> /*-50*/
+		<</if>>
 	<</if>>
 <</if>>
 <<if $args[0].vagina == 10>>
@@ -815,72 +826,74 @@
 		<</if>>
 		<</if>>
 		<</if>>
-	<<elseif $arcologies[0].FSPhysicalIdealist != "unset" && ($args[0].weight <= 10)>> /* no muscle malus for muscle loving societies */
-		<<set $beauty += 40>>
-		<<set $slim += 1>>
-		<<if $arcologies[0].FSSlimnessEnthusiast > 20>>
-		<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>>
-		<<if canTalk($args[0])>>
-		<<if $args[0].voice == 3>>
-			<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>>
-		<</if>>
-		<</if>>
-		<</if>>
-	<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && ($args[0].weight <= 30) && ($args[0].muscles <= 30)>> /* reduced weight malus for fat loving societies */
-		<<set $beauty += 40>>
-		<<set $slim += 1>>
-		<<if $arcologies[0].FSSlimnessEnthusiast > 20>>
-		<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>>
-		<<if canTalk($args[0])>>
-		<<if $args[0].voice == 3>>
-			<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>>
-		<</if>>
+	<<elseif $arcologies[0].FSPhysicalIdealist != "unset">> /* no muscle malus for muscle loving societies */
+		<<if $arcologies[0].FSPhysicalIdealistStrongFat == 1 && ($args[0].weight <= 30)>> /* reduced weight malus for fat loving societies */
+			<<set $beauty += 40>>
+			<<set $slim += 1>>
+			<<if $arcologies[0].FSSlimnessEnthusiast > 20>>
+				<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>>
+				<<if canTalk($args[0]) && $args[0].voice == 3>>
+					<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>>
+				<</if>>
+			<</if>>
+		<<elseif ($args[0].weight <= 10)>>
+			<<set $beauty += 40>>
+			<<set $slim += 1>>
+			<<if $arcologies[0].FSSlimnessEnthusiast > 20>>
+				<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>>
+				<<if canTalk($args[0]) && $args[0].voice == 3>>
+					<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>>
+				<</if>>
+			<</if>>
 		<</if>>
+	<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && ($args[0].weight <= 30)>> /* reduced weight malus for fat loving societies */
+		<<if $arcologies[0].FSHedonisticDecadenceStrongFat == 1>> /* no muscle malus for muscle loving societies */
+			<<set $beauty += 40>>
+			<<set $slim += 1>>
+			<<if $arcologies[0].FSSlimnessEnthusiast > 20>>
+				<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>>
+				<<if canTalk($args[0]) && $args[0].voice == 3>>
+					<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>>
+				<</if>>
+			<</if>>
+		<<elseif ($args[0].muscles <= 30)>>
+			<<set $beauty += 40>>
+			<<set $slim += 1>>
+			<<if $arcologies[0].FSSlimnessEnthusiast > 20>>
+				<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/20)>>
+				<<if canTalk($args[0]) && $args[0].voice == 3>>
+					<<set $beauty += ($arcologies[0].FSSlimnessEnthusiast/40)>>
+				<</if>>
+			<</if>>
 		<</if>>
 	<</if>>
 <</if>>
 
 
 <<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty > 0>>
-	<<if (Math.abs($args[0].weight) <= 30) && $arcologies[0].FSHedonisticDecadence == "unset">>
-		<<if $arcologies[0].FSPhysicalIdealist != "unset">>
-			<<set _genderLawPass = 1>>
-		<<elseif $arcologies[0].FSPhysicalIdealist == "unset" && $args[0].muscles <= 30>>
-			<<set _genderLawPass = 1>>
-		<<else>>
-			<<set _genderLawPass = 0>>
-		<</if>>
-		<<if _genderLawPass == 1>>
-			<<if $arcologies[0].FSAssetExpansionist != "unset">>
-				<<if $args[0].boobs >= 500 && $args[0].boobs <= 1600 && $args[0].butt >= 3 && $args[0].butt <= 6>>
-					<<set _genderLawPass = 1>>
-				<<else>>
-					<<set _genderLawPass = 0>>
-				<</if>>
-			<<elseif $args[0].boobs >= 500 && $args[0].boobs <= 800 && $args[0].butt >= 3 && $args[0].butt <= 4>>
-				<<set _genderLawPass = 1>>
-			<<else>>
-				<<set _genderLawPass = 0>>
+	<<set $genderLawPass = 1>>
+	<<if $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadenceStrongFat == 0 && $args[0].muscles > 30>> /*muscle check*/
+		<<set $genderLawPass = 0>>
+	<</if>>
+	<<if $genderLawPass == 1>>
+		<<if $arcologies[0].FSHedonisticDecadence != "unset" || $arcologies[0].FSPhysicalIdealistStrongFat == 1>> /*weight check*/
+			<<if $args[0].weight > 130 || $args[0].weight <= -30>>
+				<<set $genderLawPass = 0>>
 			<</if>>
+		<<elseif (Math.abs($args[0].weight) > 30)>>
+			<<set $genderLawPass = 0>>
 		<</if>>
-	<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && $args[0].weight <= 130 && $args[0].weight > -30>>
-		<<if _genderLawPass == 1>>
-			<<if $arcologies[0].FSAssetExpansionist != "unset">>
-				<<if $args[0].boobs >= 500 && $args[0].boobs <= 1600 && $args[0].butt >= 3 && $args[0].butt <= 6>>
-					<<set _genderLawPass = 1>>
-				<<else>>
-					<<set _genderLawPass = 0>>
-				<</if>>
-			<<elseif $args[0].boobs >= 500 && $args[0].boobs <= 800 && $args[0].butt >= 3 && $args[0].butt <= 4>>
-				<<set _genderLawPass = 1>>
-			<<else>>
-				<<set _genderLawPass = 0>>
+	<</if>>
+	<<if $genderLawPass == 1>> /*asset check*/
+		<<if $arcologies[0].FSAssetExpansionist != "unset">>
+			<<if $args[0].boobs < 500 || $args[0].boobs > 1600 && $args[0].butt < 3 && $args[0].butt > 6>>
+				<<set $genderLawPass = 0>>
 			<</if>>
+		<<elseif $args[0].boobs < 500 && $args[0].boobs > 800 && $args[0].butt < 3 && $args[0].butt > 4>>
+			<<set $genderLawPass = 0>>
 		<</if>>
-	<<else>>
-		<<set _genderLawPass = 0>>
 	<</if>>
-	<<if _genderLawPass == 1>>
+	<<if $genderLawPass == 1>>
 		<<set $beauty += 60>>
 	<<else>>
 		<<set $beauty -= 10>>
@@ -889,16 +902,20 @@
 
 <<if $arcologies[0].FSSlimnessEnthusiastLaw == 1>>
 	<<if ($args[0].boobs < 300) && ($args[0].butt <= 1) && ($args[0].waist <= 10)>>
-		<<if $arcologies[0].FSPhysicalIdealist != "unset" && ($args[0].weight <= 10)>>
-			<<set _slimPass = 1>>
-		<<elseif $arcologies[0].FSHedonisticDecadence != "unset" && $args[0].weight <= 30 && $args[0].muscles <= 30>>
-			<<set _slimPass = 1>>
-		<<elseif $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadence == "unset" && $args[0].muscles <= 30 && ($args[0].weight <= 10)>>
-			<<set _slimPass = 1>>
-		<<else>>
-			<<set _slimPass = 0>>
+		<<set $slimPass = 1>>
+		<<if $arcologies[0].FSPhysicalIdealist == "unset" && $arcologies[0].FSHedonisticDecadenceStrongFat == 0 && $args[0].muscles > 30>> /*muscle check*/
+			<<set $slimPass = 0>>
+		<</if>>
+		<<if $slimPass == 1>>
+			<<if $arcologies[0].FSHedonisticDecadence != "unset" || $arcologies[0].FSPhysicalIdealistStrongFat == 1>> /*weight check*/
+				<<if $args[0].weight > 30>>
+					<<set $slimPass = 0>>
+				<</if>>
+			<<elseif $args[0].weight > 10>>
+				<<set $slimPass = 0>>
+			<</if>>
 		<</if>>
-		<<if _slimPass == 1>>
+		<<if $slimPass == 1>>
 			<<set $beauty += 40+($arcologies[0].FSSlimnessEnthusiast/20)>> /*45*/
 		<<else>>
 			<<set $beauty -= ($arcologies[0].FSSlimnessEnthusiast/20)>>
diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw
index f512c85bc87..f99a14e2acc 100644
--- a/src/utility/descriptionWidgets.tw
+++ b/src/utility/descriptionWidgets.tw
@@ -218,3 +218,16 @@
 
 <</widget>>
 
+<<widget "brandDescription">>
+
+<<if ($activeSlave.brand != 0)>>
+	<<set $bellyAccessory = $activeSlave.bellyAccessory>>
+	<<if setup.fakeBellies.includes($bellyAccessory) && ($activeSlave.brandLocation == "belly")>>
+		$possessiveCap fake belly has $activeSlave.brand branded on it.
+	<<else>>
+		$pronounCap has $activeSlave.brand branded into the flesh of $possessive $activeSlave.brandLocation.
+	<</if>>
+<</if>>
+
+<</widget>>
+	
\ No newline at end of file
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index b5856d0583d..bcc6d9030c4 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -1257,11 +1257,10 @@ $possessiveCap
 
 <<nipplesPiercingDescription>>
 <<boobsTatDescription>>
-<<if $activeSlave.fuckdoll != 0>>
+<<if $activeSlave.fuckdoll == 0>>
 	<<if ($activeSlave.brand != 0) && (($activeSlave.brandLocation == "left breast") || ($activeSlave.brandLocation == "right breast") || ($activeSlave.brandLocation == "breasts"))>>
-		$pronounCap has $activeSlave.brand branded into the flesh of one of $possessive $activeSlave.brandLocation.
-	<</if>>
-	
+		<<brandDescription>>
+	<</if>>	
 <</if>>
 <</if>>
 
@@ -3648,7 +3647,7 @@ $pronounCap's got a
 <<if $showBodyMods == 1>>
 	<<if ($activeSlave.brand != 0)>>
 	<<if ($activeSlave.brandLocation == "pubic mound")>>
-		$pronounCap has $activeSlave.brand branded into the flesh of $possessive $activeSlave.brandLocation.
+		<<brandDescription>>
 	<</if>>
 	<</if>>
 <</if>>
diff --git a/src/utility/descriptionWidgetsTattoos.tw b/src/utility/descriptionWidgetsTattoos.tw
index 4486226eb4a..0a2fc460409 100644
--- a/src/utility/descriptionWidgetsTattoos.tw
+++ b/src/utility/descriptionWidgetsTattoos.tw
@@ -24,7 +24,7 @@
   <<elseif $activeSlave.shouldersTat == "counting">>
 	¤ tattoo counting her earnings and acquirements cover her shoulders.
   <<elseif $activeSlave.shouldersTat == "bovine patterns">>
-	Bovine tattoos cover her shoulders.
+	Her shoulders are flecked with tattoos of bovine blotches.
   <<elseif $activeSlave.shouldersTat == "possessive">>
 	A rendition of your face inside a heart is tattooed onto her left shoulder, and the words 'I love my <<if $PC.title == 1>>Master<<else>>Mistress<</if>>' inside an identical heart are tattooed on her right.
   <<elseif $activeSlave.shouldersTat == "sacrament">>
@@ -191,7 +191,7 @@
 		  Tiny dick, pussy, and anus symbols are tattooed all over both her arms, one for each organ she's manually pleasured.
 		<</if>>
 	<<elseif $activeSlave.armsTat == "bovine patterns">>
-		Cow-like spots go down her arms, but stop short of each of her elbows.
+		Tattoos of cow-like spots cover her arms, but stop short of each of her elbows.
 	<</if>>
   <</if>>
 <</widget>>
@@ -262,7 +262,7 @@
 			here: $seed of them.
 		<</if>>
 	<<elseif $activeSlave.shouldersTat == "bovine patterns">>
-		$possessiveCap back is covered in a large saddle-like blotch.
+		$possessiveCap back is tattooed to resemble the dappled flank of a cow.
 <</if>>
 <</widget>>
 
@@ -306,7 +306,7 @@
 		<<case "paternalist">>
 			$pronounCap has a tramp stamp which reads 'Fuck me slowly' with an arrow pointing downward.
 		<<case "bovine patterns">>
-			Spots run right down to where her tail would be.
+			$pronounCap has an identifying barcode tattooed across $possessive lower back.
 	<</switch>>
 	<</if>>
 	<</if>>
@@ -369,7 +369,7 @@
 		'Treat it' is tattooed across $possessive left buttock; 'Gently' is tattooed across $possessive right.
 	<</switch>>
 	<<if ($activeSlave.brand != 0) && (($activeSlave.brandLocation == "left buttock") || ($activeSlave.brandLocation == "right buttock") || ($activeSlave.brandLocation == "buttocks") || ($activeSlave.brandLocation == "left thigh") || ($activeSlave.brandLocation == "right thigh") || ($activeSlave.brandLocation == "thighs"))>>
-		$pronounCap has $activeSlave.brand branded into the flesh of $possessive $activeSlave.brandLocation.
+		<<brandDescription>>
 	<</if>>
 <</widget>>
 
@@ -556,12 +556,6 @@
 	<<case "paternalist">>
 		$possessiveCap left thigh reads 'I Love My Life,' and the right 'It's All I'm Good For.'
 	<<case "bovine patterns">>
-		$possessiveCap legs are completely colored to look like a cow, from her hips to the tops of her feet.
+		$possessiveCap legs are covered in tattoos of spots, giving $possessive a noticeably bovine appearance.
 	<</switch>>
 <</widget>>
-
-
-/* Special tats */
-<<widget "bovineTatDescription">> /* For fully bovinated.  Not used for the more technical bodyMod, but useful for longSlaveDescriptions */
-	Bovine tattoos cover her back and shoulders, and go down her arms, but stop short of each of her elbows.  Her legs, too, have splotches that reach down to her ankles.
-<</widget>>
\ No newline at end of file
-- 
GitLab