From 89a0b809064d8b2c3d1d9122c9747e51638a63f8 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Wed, 26 Apr 2017 01:39:56 -0400
Subject: [PATCH] Lots of vanilla things and lots of modders making submissions
 too.

---
 slave variables documentation - Pregmod.txt  |  14 +-
 src/events/intro/introSummary.tw             |  24 --
 src/gui/Encyclopedia/encyclopedia.tw         |  20 +-
 src/init/storyInit.tw                        |   2 +-
 src/js/storyJS.tw                            |  11 +-
 src/npc/startingGirls/startingGirls.tw       |  54 ++---
 src/pregmod/fSlaveSlaveDickConsummate.tw     |   4 +-
 src/pregmod/saInflation.tw                   |   6 +-
 src/pregmod/widgets/extendedFamilyWidgets.tw | 231 +++++++++++++++----
 src/uncategorized/PESS.tw                    |   2 +-
 src/uncategorized/RECI.tw                    |   2 +-
 src/uncategorized/RESS.tw                    |   2 +-
 src/uncategorized/RESSTR.tw                  |  10 +-
 src/uncategorized/dairy.tw                   |  10 +-
 src/uncategorized/dairyReport.tw             |   4 +-
 src/uncategorized/economics.tw               |  12 +-
 src/uncategorized/hgApplication.tw           |  12 +-
 src/uncategorized/jeSlaveDispute.tw          |   2 +-
 src/uncategorized/labReport.tw               |   2 +-
 src/uncategorized/managePenthouse.tw         |   3 +-
 src/uncategorized/pRivalryActions.tw         |   2 +-
 src/uncategorized/ptWorkaround.tw            |   4 +-
 src/uncategorized/reNoEvent.tw               |   2 +-
 src/uncategorized/reRelativeRecruiter.tw     |   2 +-
 src/uncategorized/reStandardPunishment.tw    |   2 +-
 src/uncategorized/remoteSurgery.tw           |   8 +-
 src/uncategorized/rulesAssistant.tw          |   3 +
 src/uncategorized/saDrugs.tw                 |   2 +-
 src/uncategorized/seIndependenceDay.tw       |   2 +-
 src/utility/descriptionWidgets.tw            |   8 +-
 src/utility/miscWidgets.tw                   |  94 ++++----
 src/utility/raWidgets.tw                     |  68 +++---
 src/utility/slaveCreationWidgets.tw          |   1 +
 33 files changed, 370 insertions(+), 255 deletions(-)

diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 79f5d46fe08..2387424b44d 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -2271,12 +2271,12 @@ To test if your slave is functioning, start up a normal game, swap to cheat mode
 
 
 
-@@color:green; 			- something good or health gain
-@@color:red; 			- something bad or health loss
-@@color:hotpink;		- devotion gain
-@@color:mediumorchid; 		- devotion loss
-@@color:mediumaquamarine;	- trust gain
-@@color:gold;			- trust loss
-@@color:lightcoral;		- fetish 
+@@.green; 			- something good or health gain
+@@.red; 			- something bad or health loss
+@@.hotpink;			- devotion gain
+@@.mediumorchid; 		- devotion loss
+@@.mediumaquamarine;		- trust gain
+@@.gold;			- trust loss
+@@.lightcoral;			- fetish 
 
 
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 49ac26ccece..fe2cc318c56 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -624,19 +624,6 @@ Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
 <<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>>
 
-/*testtest PC mother and father */
-<<if $familyTesting == 1>>
-<br><br>
-''PC ID'' //Remember this so you can create slaves related to you next//
-<br><<print $PC.ID>>
-<br><br>
-''mother ID''
-<<textbox "$PC.mother" $PC.mother "Intro Summary">>
-<br>
-''father ID''
-<<textbox "$PC.father" $PC.father "Intro Summary">>
-<</if>>
-
 <<else>>
 
 <br>
@@ -745,21 +732,10 @@ Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
 <<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>>
 
-/*testtest PC mother and father */
-<<if $familyTesting == 1>>
-<br><br>
-''PC ID'' //Remember this so you can create slaves related to you next//
-<br><<print $PC.ID>>
 <br><br>
-''mother ID''
-<br>
-''father ID''
-<</if>>
 
 <</if>>
 
-<br><br>
-
 Image display
 <<if $seeImages == 1>>
 	''enabled.'' [[Disable|Intro Summary][$seeImages = 0]]
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index ae11653899b..3dcaa4a5698 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -17,7 +17,7 @@ __Economics and events__
 The economics report offers some flavor, but you should leave the options it offers alone until you've got some spare cash. An event or two will follow; feel free to reload the page on each (F5 on most browsers) to see what the different options do. Generally, try to pick options that give you money and improve devotion. Trust and reputation can wait.
 
 __Moving forward__
-Hopefully, many of your slaves learned skills during their week of whoring. Three levels of skill (@@color:cyan;Veteran Whore@@ or @@.cyan;W+++@@ for example) is the maximum, though slaves without vaginas will only acquire two complete levels of sexual skills. As you move through the first ten weeks or so, many of your slaves will max out their whoring and sexual skills. When they do, switch them over to public service until they achieve maximum entertainment skill, and then put them back on whoring, since cross training will improve their whoring performance. When your head girl alternate has maxed skills, make her the head girl and train up the MILF she replaced. Switch your personal attention around; for now, fix the Quirks of the most devoted slave who has any, since that's the best way to maximize your chances of success each turn. Pay attention to your cash flow. If it's positive and you have a decent buffer of ¤10000 or so built up, wait for the slave market prices to naturally dip, and then purchase a girl or two to work on once your starting stable is well trained, though you may have to confine or rest new purchases for a while if they're rebellious or sick. If you get a virgin, consider applying chastity to preserve value for resale. When prices are high, consider selling anyone who's free of flaws and has a discovered sexual fetish, since this maximizes value bonuses. Within ten turns, you should be making decent weekly profit, with resale of slaves building up your bank when prices favor sale. Once you're confident of the whoring mechanics, consider building a brothel. Your alternate head girl will make a good madam.
+Hopefully, many of your slaves learned skills during their week of whoring. Three levels of skill (@@.cyan;Veteran Whore@@ or @@.cyan;W+++@@ for example) is the maximum, though slaves without vaginas will only acquire two complete levels of sexual skills. As you move through the first ten weeks or so, many of your slaves will max out their whoring and sexual skills. When they do, switch them over to public service until they achieve maximum entertainment skill, and then put them back on whoring, since cross training will improve their whoring performance. When your head girl alternate has maxed skills, make her the head girl and train up the MILF she replaced. Switch your personal attention around; for now, fix the Quirks of the most devoted slave who has any, since that's the best way to maximize your chances of success each turn. Pay attention to your cash flow. If it's positive and you have a decent buffer of ¤10000 or so built up, wait for the slave market prices to naturally dip, and then purchase a girl or two to work on once your starting stable is well trained, though you may have to confine or rest new purchases for a while if they're rebellious or sick. If you get a virgin, consider applying chastity to preserve value for resale. When prices are high, consider selling anyone who's free of flaws and has a discovered sexual fetish, since this maximizes value bonuses. Within ten turns, you should be making decent weekly profit, with resale of slaves building up your bank when prices favor sale. Once you're confident of the whoring mechanics, consider building a brothel. Your alternate head girl will make a good madam.
 <<case "How to Play">>\
 This is not a game in which the PC slaveowner is some magical sexual god whose mere presence turns women into submissives. This means that sane slaves will tend to lose obedience and trust over time if you don't take any steps to maintain their mental state. Mental stats have maximum and minimum values. These are somewhat 'sticky,' so slaves at minimum devotion for example may require an extra jolt to break free of this state. Maximized devotion and trust are not useless; if one of these stats is maximized and the other is not, the extra devotion or trust will boost the other. If both are maximized, the player gains reputation instead.
 
@@ -937,6 +937,8 @@ __I do not give credit without explicit permission to do so.__ If you have contr
 ''anon'' for forcing dicks into slavegirls and forced slave riding.
 ''Unknown modder'' who did betterRA mod for old 0.9.5.4 version of original FC.
 ''brpregmodfan'' for Brazilian start and slave gen.
+''fcanon'' for various fixes and wrangling my inabilty to spll gud.
+''stuffedgameanon'' for fixes and streamlining the starting girls family code.
 ''Bane70'' optimized huge swaths of code with notable professionalism.
 ''Circle Tritagonist'' provided several new collars and outfits.
 ''Qotsafan'' submitted bugfixes.
@@ -948,6 +950,8 @@ __I do not give credit without explicit permission to do so.__ If you have contr
 ''FC_BourbonDrinker'' went into the code to locate and fix bugs.
 ''Shokushu'' created a rendered imagepack comprising 775 images, and assisted with the code necessary to display them.
 ''NovX'' created a vector art system.
+''Mauve'' contributed vector collars and pubic hair.
+''Rodziel'' contributed the cybernetics mod.
 
 ''Many other anonymous contributors'' helped fix bugs via GitHub. They will be credited by name upon request.
 
@@ -1685,14 +1689,14 @@ At the beginning of the game, the lingua franca of the arcology will be determin
 \
 <<case "Urban Terrain">>\
 ''Urban'' terrain is one of the possible settings for the Free City in which the arcology is located. It provides:
-&nbsp;&nbsp;&nbsp;&nbsp;@@color:yellow;Low@@ minimum slave value and initial @@.yellow;bear market@@ for slaves.
-&nbsp;&nbsp;&nbsp;&nbsp;@@color:green;High@@ ease of commerce with the old world.
-&nbsp;&nbsp;&nbsp;&nbsp;@@color:green;High@@ access to refugees and other desperate people.
-&nbsp;&nbsp;&nbsp;&nbsp;@@color:red;Low@@ cultural independence.
+&nbsp;&nbsp;&nbsp;&nbsp;@@.yellow;Low@@ minimum slave value and initial @@.yellow;bear market@@ for slaves.
+&nbsp;&nbsp;&nbsp;&nbsp;@@.green;High@@ ease of commerce with the old world.
+&nbsp;&nbsp;&nbsp;&nbsp;@@.green;High@@ access to refugees and other desperate people.
+&nbsp;&nbsp;&nbsp;&nbsp;@@.red;Low@@ cultural independence.
 \
 <<case "Rural Terrain">>\
 ''Rural'' terrain is one of the possible settings for the Free City in which the arcology is located. It provides:
-&nbsp;&nbsp;&nbsp;&nbsp;@@color:yellow;High@@ minimum slave value and initial @@.yellow;bull market@@ for slaves.
+&nbsp;&nbsp;&nbsp;&nbsp;@@.yellow;High@@ minimum slave value and initial @@.yellow;bull market@@ for slaves.
 &nbsp;&nbsp;&nbsp;&nbsp;Moderate ease of commerce with the old world.
 &nbsp;&nbsp;&nbsp;&nbsp;Moderate access to refugees and other desperate people.
 &nbsp;&nbsp;&nbsp;&nbsp;Moderate cultural independence.
@@ -1701,8 +1705,8 @@ At the beginning of the game, the lingua franca of the arcology will be determin
 ''Marine'' terrain is one of the possible settings for the Free City in which the arcology is located. It provides:
 &nbsp;&nbsp;&nbsp;&nbsp;Moderate minimum slave value and initially balanced market for slaves.
 &nbsp;&nbsp;&nbsp;&nbsp;Moderate ease of commerce with the old world.
-&nbsp;&nbsp;&nbsp;&nbsp;@@color:red;Low@@ access to refugees and other desperate people.
-&nbsp;&nbsp;&nbsp;&nbsp;@@color:green;High@@ cultural independence.
+&nbsp;&nbsp;&nbsp;&nbsp;@@.red;Low@@ access to refugees and other desperate people.
+&nbsp;&nbsp;&nbsp;&nbsp;@@.green;High@@ cultural independence.
 \
 \<<case "Security Force">>\
 ''NOTE: The Security Force is an optional mod, and as such will only be initialized in-game if it is enabled at game start or in the options menu.''
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index e2327e5d5da..24c191debc8 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -82,7 +82,7 @@
 		<</if>>
 	<</if>>
 	<<if $slaves[_i].relationship > 0>>
-		<<set _seed = 0, _rt = $slaves[_i].relationshipTarget _ID = $slaves[_i].ID>>
+		<<set _seed = 0, _rt = $slaves[_i].relationshipTarget, _ID = $slaves[_i].ID>>
 		<<for _j = 0; _j < _SL; _j++>>
 		<<if _rt == $slaves[_j].ID>>
 			<<if $slaves[_j].relationshipTarget == _ID>>
diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw
index a1b144dac19..7924a178b9c 100644
--- a/src/js/storyJS.tw
+++ b/src/js/storyJS.tw
@@ -755,9 +755,11 @@ window.ruleApplied = function(slave, ID) {
 };
 
 window.ruleAssignment = function(applyAssignment, assignment) {
+	if (!applyAssignment) {
+		return true;
+	}
 	for(var d=0; d < applyAssignment.length; ++d){
 		if(applyAssignment[d] == assignment){
-
 			return true;
 		}
 	}return false;
@@ -865,7 +867,7 @@ window.ruleExcludeSlaveFacility = function(rule, slave) {
 					return true;
 				}
 			}
-		}
+		}return false;
 	}
 };
 
@@ -875,9 +877,9 @@ window.ruleAppliedToSlaveFacility = function(rule, slave) {
 	}else if (!rule) {
 		return null;
 	}else if (!rule.facility) {
-		return false;
+		return true;
 	} else {
-		for(var d=0; d < rule.facility.length; ++d){
+		for(var d = 0; d < rule.facility.length; ++d){
 			if(rule.facility[d] == "hgsuite"){
 				if(slave.assignment == "live with your Head Girl" ){
 					return true;
@@ -998,6 +1000,7 @@ window.ruleSlaveExcluded = function(slave, rule) {
 		}return false;
 	}
 };
+
 window.hasSurgeryRule = function(slave, rules) {
 	if (!slave) {
 		return false;
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 84465162a17..903f6d7b352 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -82,7 +82,7 @@ __You are customizing this slave:__
 	<<StartingGirlsWorkaround>>
 <</if>>
 
-<<if ($activeSlave.dick == 0)>>
+<<if $activeSlave.dick == 0>>
 	<<set $activeSlave.foreskin = 0>>
 <</if>>
 <<if ($activeSlave.balls == 0)>>
@@ -412,7 +412,7 @@ __You are customizing this slave:__
 <<link "Normal">><<set $activeSlave.voice = 2>><<replace "#voice">>Normal.<</replace>><<StartingGirlsCost>><</link>> |
 <<link "High.">><<set $activeSlave.voice = 3>><<replace "#voice">>High.<</replace>><<StartingGirlsCost>><</link>>
 
-<br>
+&nbsp;&nbsp;&nbsp;&nbsp;
 <span id="language">
 <<if $activeSlave.voice != 0>>
 	''$language:''
@@ -435,29 +435,22 @@ __You are customizing this slave:__
 <<textbox "$activeSlave.actualAge" $activeSlave.actualAge "Starting Girls">>
 </span>
 
+&nbsp;&nbsp;&nbsp;&nbsp;
 ''Birth week:''
 <span id="birthWeek">
 <<textbox "$activeSlave.birthWeek" $activeSlave.birthWeek "Starting Girls">>
 </span>
 
-<br>''Genes:''
+&nbsp;&nbsp;&nbsp;&nbsp;
+''Genes:''
 @@.yellow;<span id="originalSex">$activeSlave.genes</span>.@@&nbsp;
 <<link "XX">><<set $activeSlave.genes = "XX">><<replace "#originalSex">>$activeSlave.genes<</replace>><</link>>
  |
 <<link "XY">><<set $activeSlave.genes = "XY">><<replace "#originalSex">>$activeSlave.genes<</replace>><</link>>
 
 <<if $familyTesting == 1>>
-<br>''Slave ID'' //be reasonable. Make sure to refresh to resync IDs.//
 <<if $saveImported == 1>>//Player children are not available in NG+ due to code limitations (Since the player's background changes with ng+, consistancy issues arise.)//<</if>>
-<br><<print $activeSlave.ID>>
-
-<br>''mother ID''
-<<textbox "$activeSlave.mother" $activeSlave.mother "Starting Girls">>
-
-<br>''father ID''
-<<textbox "$activeSlave.father" $activeSlave.father "Starting Girls">>
-
-
+<br><<editFamily>>
 <</if>>
 
 <br>''Health:''
@@ -502,17 +495,6 @@ __You are customizing this slave:__
 <<link "Unattractive">><<set $activeSlave.waist = 15>><<replace "#waist">>Unattractive.<</replace>><<StartingGirlsCost>><</link>> |
 <<link "Ugly">><<set $activeSlave.waist = 55>><<replace "#waist">>Ugly.<</replace>><<StartingGirlsCost>><</link>> |
 <<link "Masculine">><<set $activeSlave.waist = 100>><<replace "#waist">>Masculine.<</replace>><<StartingGirlsCost>><</link>>
-&nbsp;&nbsp;&nbsp;&nbsp;
-<<if $seeExtreme == 1>>
-''Limbs:''
-<span id="amp">
-<<if $activeSlave.amp == 1>>Amputee.
-<<else>>Normal.
-<</if>>
-</span>
-<<link "Normal">><<set $activeSlave.amp = 0>><<replace "#amp">>Normal.<</replace>><<StartingGirlsCost>><</link>> |
-<<link "Amputee">><<set $activeSlave.amp = 1>><<replace "#amp">>Amputee.<</replace>><<StartingGirlsCost>><</link>>
-<</if>>
 
 <br>''Height:''
 <span id="height">
@@ -529,6 +511,18 @@ __You are customizing this slave:__
 	<<ResyncHeight $activeSlave>><<goto "Starting Girls">>
 <</link>>
 
+&nbsp;&nbsp;&nbsp;&nbsp;
+<<if $seeExtreme == 1>>
+''Limbs:''
+<span id="amp">
+<<if $activeSlave.amp == 1>>Amputee.
+<<else>>Normal.
+<</if>>
+</span>
+<<link "Normal">><<set $activeSlave.amp = 0>><<replace "#amp">>Normal.<</replace>><<StartingGirlsCost>><</link>> |
+<<link "Amputee">><<set $activeSlave.amp = 1>><<replace "#amp">>Amputee.<</replace>><<StartingGirlsCost>><</link>>
+<</if>>
+
 <br>''Weight:''
 <span id="weight">
 <<if $activeSlave.weight < -95>>@@.red;Emaciated.@@
@@ -559,7 +553,7 @@ Her nationality is $activeSlave.nationality.
 <<if $seeRace == 1>>
 <br>''Ethnicity:'' <span id="ethnicity"><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">></span>
 
-<br>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
 <<link "White">><<set $activeSlave.race = "white">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</link>> |
 <<link "Black">><<set $activeSlave.race = "black">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</link>> |
 <<link "Latina">><<set $activeSlave.race = "latina">><<replace "#ethnicity">><<textbox "$activeSlave.race" $activeSlave.race "Starting Girls">><</replace>><<StartingGirlsCost>><</link>> |
@@ -576,7 +570,7 @@ Her nationality is $activeSlave.nationality.
 
 <br>''Skin color:'' <span id="skin"><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">></span>
 
-<br>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
 <<link "White">><<set $activeSlave.skin = "white">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</link>> |
 <<link "Fair">><<set $activeSlave.skin = "fair">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</link>> |
 <<link "Tanned">><<set $activeSlave.skin = "tanned">><<replace "#skin">><<textbox "$activeSlave.skin" $activeSlave.skin "Starting Girls">><</replace>><<StartingGirlsCost>><</link>>  |
@@ -836,10 +830,10 @@ Her nationality is $activeSlave.nationality.
 <<else>>Barren.
 <</if>>
 </span>
-<<link "Ready to Drop">><<set $activeSlave.preg = 35,$activeSlave.pregType = 1,$activeSlave.pubertyXX = 1>><<replace "#preg">>Ready to drop.<</replace>><<StartingGirlsCost>><</link>> | 
-<<link "Advanced">><<set $activeSlave.preg = 25,$activeSlave.pregType = 1,$activeSlave.pubertyXX = 1>><<replace "#preg">>Advanced.<</replace>><<StartingGirlsCost>><</link>> | 
-<<link "Early">><<set $activeSlave.preg = 10,$activeSlave.pregType = 1,$activeSlave.pubertyXX = 1>><<replace "#preg">>Early.<</replace>><<StartingGirlsCost>><</link>> | 
-<<link "None">><<set $activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.pregSource = 0>><<replace "#preg">>None.<</replace>><<StartingGirlsCost>><</link>> | 
+<<link "Ready to Drop">><<set $activeSlave.preg = 35,$activeSlave.pregType = 1,$activeSlave.pubertyXX = 1>><<replace "#preg">>Ready to drop.<</replace>><<StartingGirlsCost>><</link>> |
+<<link "Advanced">><<set $activeSlave.preg = 25,$activeSlave.pregType = 1,$activeSlave.pubertyXX = 1>><<replace "#preg">>Advanced.<</replace>><<StartingGirlsCost>><</link>> |
+<<link "Early">><<set $activeSlave.preg = 10,$activeSlave.pregType = 1,$activeSlave.pubertyXX = 1>><<replace "#preg">>Early.<</replace>><<StartingGirlsCost>><</link>> |
+<<link "None">><<set $activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.pregSource = 0>><<replace "#preg">>None.<</replace>><<StartingGirlsCost>><</link>> |
 <<link "Barren">><<set $activeSlave.preg = -2,$activeSlave.pregType = 0,$activeSlave.pregSource = 0>><<replace "#preg">>Barren.<</replace>><<StartingGirlsCost>><</link>>
 <br>''Puberty:''
 <span id="pub">
diff --git a/src/pregmod/fSlaveSlaveDickConsummate.tw b/src/pregmod/fSlaveSlaveDickConsummate.tw
index 3c4b3873336..4fb5f9bb1cf 100644
--- a/src/pregmod/fSlaveSlaveDickConsummate.tw
+++ b/src/pregmod/fSlaveSlaveDickConsummate.tw
@@ -73,7 +73,7 @@ Next, you see to $slaverapistx.slaveName.
 
 
 <<if $activeSlave.mother == $slaverapistx.ID>>
-	<<if ($slaverapistx.fetish == "perverted">>
+	<<if $slaverapistx.fetish == "perverted">>
 		$slaverapistx.slaveName is well aware that she is about to rape her own daughter, but despite that seems to feel some arousal at the thought.
 	<<else>>
 		$slaverapistx.slaveName is well aware that she is about to rape her own daughter and is understandingly distrurbed.	
@@ -81,7 +81,7 @@ Next, you see to $slaverapistx.slaveName.
 <</if>>
 
 <<if $slaverapistx.mother == $activeSlave.ID>>
-	<<if ($slaverapistx.fetish == "perverted">>
+	<<if $slaverapistx.fetish == "perverted">>
 		$activeSlave.slaveName is well aware that she is about to rape her own mother, but despite that seems to feel some arousal at the thought.
 	<<else>>
 		$slaverapistx.slaveName is well aware that she is about to rape her own mother and is understandingly distrurbed.	
diff --git a/src/pregmod/saInflation.tw b/src/pregmod/saInflation.tw
index 6eeb13a9d49..dae9605e8ad 100644
--- a/src/pregmod/saInflation.tw
+++ b/src/pregmod/saInflation.tw
@@ -30,7 +30,7 @@
 				Besides being humiliating, it chemically @@.hotpink;increases $possessive acceptance@@ of sexual slavery.
 				<<set $slaves[$i].devotion += 5>>
 			<</if>>
-			<<if ($arcologies[0].FSBodyPuristLaw == 0) || ($healthyDrugsUpgrade == 0)>>
+			<<if ($arcologies[0].FSBodyPuristLaw == 0) && ($healthyDrugsUpgrade == 0)>>
 				Such a high dosage held for so long @@.red;isn't healthy@@.
 				<<set $slaves[$i].health -= 5*$slaves[$i].inflation>>
 			<</if>>
@@ -63,7 +63,7 @@
 				Besides being humiliating, it chemically @@.hotpink;increases $possessive acceptance@@ of sexual slavery.
 				<<set $slaves[$i].devotion += 5>>
 			<</if>>
-			<<if ($arcologies[0].FSBodyPuristLaw == 0) || ($healthyDrugsUpgrade == 0)>>
+			<<if ($arcologies[0].FSBodyPuristLaw == 0) && ($healthyDrugsUpgrade == 0)>>
 				Such a high dosage held for so long @@.red;isn't healthy@@.
 				<<set $slaves[$i].health -= 3*$slaves[$i].inflation>>
 			<</if>>
@@ -96,7 +96,7 @@
 				Besides being humiliating, it chemically @@.hotpink;increases $possessive acceptance@@ of sexual slavery.
 				<<set $slaves[$i].devotion += 5>>
 			<</if>>
-			<<if ($arcologies[0].FSBodyPuristLaw == 0) || ($healthyDrugsUpgrade == 0)>>
+			<<if ($arcologies[0].FSBodyPuristLaw == 0) && ($healthyDrugsUpgrade == 0)>>
 				Such a high dosage held for so long @@.red;isn't healthy@@.
 				<<set $slaves[$i].health -= 5>>
 			<</if>>
diff --git a/src/pregmod/widgets/extendedFamilyWidgets.tw b/src/pregmod/widgets/extendedFamilyWidgets.tw
index b7354ecf92e..2620619bbba 100644
--- a/src/pregmod/widgets/extendedFamilyWidgets.tw
+++ b/src/pregmod/widgets/extendedFamilyWidgets.tw
@@ -52,7 +52,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	$pronounCap @@.lightgreen;fathered a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@	
+	$pronounCap @@.lightgreen;fathered a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@
 <<elseif $children.length > 0>>
 	$pronounCap @@.lightgreen;fathered a single slave of yours: $children[0].slaveName.@@
 <</if>>
@@ -73,7 +73,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	$pronounCap @@.lightgreen;gave birth to a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@	
+	$pronounCap @@.lightgreen;gave birth to a pair of your slaves: $children[0].slaveName, and $children[1].slaveName.@@
 <<elseif $children.length > 0>>
 	$pronounCap @@.lightgreen;gave birth to a single of your slaves: $children[0].slaveName.@@
 <</if>>
@@ -129,7 +129,7 @@
 		<</for>>
 	<<elseif $PC.ID == $activeSlave.father && $slaves[$i].ID == $PC.father>>
 		$possessiveCap paternal @@.lightgreen;grandfather is $slaves[$i].slaveName.@@
-	<</if>>	
+	<</if>>
 <</for>>
 
 /*testtest PC grandparents passage - determines if the current slave is your grandparent*/
@@ -168,7 +168,7 @@
 	<</if>>
 <</for>>
 <<if $children.length > 0>>
-	$pronounCap 
+	$pronounCap
 <<if $children.length > 2>>
 	has @@.lightgreen;many grandchildren,
 	<<for $j to 0; $j < $children.length; $j++>>
@@ -179,7 +179,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	has @@.lightgreen;two grandchildren, $children[0].slaveName, and $children[1].slaveName as your slaves.@@ 
+	has @@.lightgreen;two grandchildren, $children[0].slaveName, and $children[1].slaveName as your slaves.@@
 <<elseif $children.length > 0>>
 	has a @@.lightgreen;grandchild, $children[0].slaveName as your slave.@@
 <</if>>
@@ -189,7 +189,7 @@
 /*testtest PC aunt passage - determines how many aunts you have*/
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<if $slaves[$i].ID != $activeSlave.ID>>
-	<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>> 
+	<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>>
 	<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
 		<<for $j to 0; $j < $slaves.length; $j++>>
 			<<if $slaves[$i].ID != $slaves[$j].ID >>
@@ -205,9 +205,9 @@
 	<</if>>
 <</for>>
 <<if $activeSlave.genes == "XX" && $children.length > 0>>
-	$pronounCap 
+	$pronounCap
 	<<if $children.length > 2>>
-		is @@.lightgreen;your aunt along with 
+		is @@.lightgreen;your aunt along with
 		<<for $j to 0; $j < $children.length; $j++>>
 			<<if $j < $children.length-1>>
 				$children[$j].slaveName,
@@ -220,7 +220,7 @@
 	<<elseif $children.length > 0>>
 		<<for $i = 0; $i < $slaves.length; $i++>>
 			<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XX">>
-			<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>> 
+			<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>>
 			<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
 				$pronounCap is @@.lightgreen;your aunt.@@
 			<</if>>
@@ -234,7 +234,7 @@
 /*testtest PC uncle passage - determines how many uncles you have*/
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<if $slaves[$i].ID != $activeSlave.ID>>
-	<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>> 
+	<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>>
 	<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
 		<<for $j to 0; $j < $slaves.length; $j++>>
 			<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].dick > 0 && $slaves[$j].genes == "XY">>
@@ -248,9 +248,9 @@
 	<</if>>
 <</for>>
 <<if $activeSlave.genes == "XY" && $children.length > 0>>
-	$pronounCap 
+	$pronounCap
 	<<if $children.length > 2>>
-		is @@.lightgreen;your uncle along with 
+		is @@.lightgreen;your uncle along with
 		<<for $j to 0; $j < $children.length; $j++>>
 			<<if $j < $children.length-1>>
 				$children[$j].slaveName,
@@ -263,7 +263,7 @@
 	<<elseif $children.length > 0>>
 		<<for $i = 0; $i < $slaves.length; $i++>>
 			<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XY">>
-			<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>> 
+			<<if areSisters($slaves[$i], $activeSlave) == 1 ||  areSisters($slaves[$i], $activeSlave) == 2>>
 			<<if $slaves[$i].ID == $PC.mother || $slaves[$i].ID == $PC.father>>
 				$pronounCap is @@.lightgreen;your uncle.@@
 			<</if>>
@@ -280,7 +280,7 @@
 	<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
 		<<for $j to 0; $j < $slaves.length; $j++>>
 			<<if $slaves[$j].genes == "XX">>
-			<<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>> 
+			<<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>>
 				<<set $children.push($slaves[$j])>>
 			<</if>>
 			<</if>>
@@ -289,7 +289,7 @@
 	<</if>>
 <</for>>
 <<if $children.length > 0>>
-	$pronounCap 
+	$pronounCap
 <<if $children.length > 2>>
 	has @@.lightgreen;many aunts,
 	<<for $j to 0; $j < $children.length; $j++>>
@@ -300,7 +300,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	 has @@.lightgreen;two aunts, $children[0].slaveName, and $children[1].slaveName.@@ 
+	 has @@.lightgreen;two aunts, $children[0].slaveName, and $children[1].slaveName.@@
 <<elseif $children.length > 0>>
 	 has @@.lightgreen;an aunt, $children[0].slaveName.@@
 <</if>>
@@ -313,7 +313,7 @@
 	<<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>>
 		<<for $j to 0; $j < $slaves.length; $j++>>
 			<<if $slaves[$j].genes == "XY">>
-			<<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>> 
+			<<if areSisters($slaves[$j], $slaves[$i]) == 1 || areSisters($slaves[$j], $slaves[$i]) == 2>>
 				<<set $children.push($slaves[$j])>>
 			<</if>>
 			<</if>>
@@ -322,7 +322,7 @@
 	<</if>>
 <</for>>
 <<if $children.length > 0>>
-	$pronounCap 
+	$pronounCap
 <<if $children.length > 2>>
 	has @@.lightgreen;many aunts,
 	<<for $j to 0; $j < $children.length; $j++>>
@@ -333,7 +333,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	 has @@.lightgreen;two aunts, $children[0].slaveName, and $children[1].slaveName.@@ 
+	 has @@.lightgreen;two aunts, $children[0].slaveName, and $children[1].slaveName.@@
 <<elseif $children.length > 0>>
 	 has @@.lightgreen;an aunt, $children[0].slaveName.@@
 <</if>>
@@ -359,7 +359,7 @@
 <<if $activeSlave.genes == "XX" && $children.length > 0>>
 	$pronounCap
 <<if $children.length > 2>>
-	is @@.lightgreen;your niece along with 
+	is @@.lightgreen;your niece along with
 	<<for $j = 0; $j < $children.length; $j++>>
 		<<if $j < $children.length-1>>
 			$children[$j].slaveName,
@@ -368,7 +368,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	is @@.lightgreen;your niece along with $children[0].slaveName.@@ 
+	is @@.lightgreen;your niece along with $children[0].slaveName.@@
 <<elseif $children.length > 0>>
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XX">>
@@ -386,7 +386,7 @@
 /* testtest niece passage - determines how many nieces a slave has*/
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<if $slaves[$i].ID != $activeSlave.ID>>
-	<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>> 
+	<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
 		<<for $j = 0; $j < $slaves.length; $j++>>
 			<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].ID != $activeSlave.ID && $slaves[$j].genes == "XX">>
 			<<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>>
@@ -409,7 +409,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	has @@.lightgreen;two nieces, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@ 
+	has @@.lightgreen;two nieces, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@
 <<elseif $children.length > 0>>
 	has @@.lightgreen;a niece, $children[0].slaveName, who is your slave.@@
 <</if>>
@@ -435,7 +435,7 @@
 <<if $activeSlave.genes == "XY" && $children.length > 0>>
 	$pronounCap
 <<if $children.length > 2>>
-	is @@.lightgreen;your nephew along with 
+	is @@.lightgreen;your nephew along with
 	<<for $j = 0; $j < $children.length; $j++>>
 		<<if $j < $children.length-1>>
 			$children[$j].slaveName,
@@ -444,7 +444,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	is @@.lightgreen;your nephew along with $children[0].slaveName.@@ 
+	is @@.lightgreen;your nephew along with $children[0].slaveName.@@
 <<elseif $children.length > 0>>
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.genes == "XY">>
@@ -462,7 +462,7 @@
 /* testtest nephew passage - determines how many nephews a slave has*/
 <<for $i = 0; $i < $slaves.length; $i++>>
 	<<if $slaves[$i].ID != $activeSlave.ID>>
-	<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>> 
+	<<if areSisters($slaves[$i], $activeSlave) == 1 || areSisters($slaves[$i], $activeSlave) == 2>>
 		<<for $j = 0; $j < $slaves.length; $j++>>
 			<<if $slaves[$i].ID != $slaves[$j].ID && $slaves[$j].ID != $activeSlave.ID && $slaves[$j].genes == "XY">>
 			<<if $slaves[$i].ID == $slaves[$j].mother || $slaves[$i].ID == $slaves[$j].father>>
@@ -485,7 +485,7 @@
 		<</if>>
 	<</for>>
 <<elseif $children.length > 1>>
-	has @@.lightgreen;two nephews, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@ 
+	has @@.lightgreen;two nephews, $children[0].slaveName, and $children[1].slaveName, who are your slaves.@@
 <<elseif $children.length > 0>>
 	has @@.lightgreen;a nephew, $children[0].slaveName, who is your slave.@@
 <</if>>
@@ -516,7 +516,7 @@
 			<</if>>
 		<</if>>
 	<</for>>
-	$pronounCap 
+	$pronounCap
 <<if $children.length > 1>>
 	@@.lightgreen;is _rel_desc _rel_type along with
 	<<for $j = 0; $j < $children.length; $j++>>
@@ -525,14 +525,14 @@
 		<<else>>
 			and $children[$j].slaveName.@@
 		<</if>>
-	<</for>>	
+	<</for>>
 <<elseif $children.length > 0>>
-	is @@.lightgreen;_rel_desc _rel_type with $children[0].slaveName.@@	
+	is @@.lightgreen;_rel_desc _rel_type with $children[0].slaveName.@@
 <<else>>
 	is @@.lightgreen;_rel_desc _rel_type.@@
 <</if>>
 <</if>>
-<<set $children = []>> 
+<<set $children = []>>
 */
 
 <<set _twins = [], _sisters = [], _brothers = [], _halfsisters = [], _halfbrothers = []>>
@@ -551,11 +551,11 @@
 
 /*testtest PC twin passages - determines how many twins you have but not implemented yet*/
 <<if areSisters($activeSlave, $PC) == 1>>
-	$pronounCap 
+	$pronounCap
 	<<if _twins.length > 1>>
 		@@.lightgreen;shared a cramped womb with you, <<print _twins.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 	<<elseif _twins.length > 0>>
-		is @@.lightgreen;your twin along with _twins[0].slaveName.@@	
+		is @@.lightgreen;your twin along with _twins[0].slaveName.@@
 	<<else>>
 		is @@.lightgreen;your twin <<if $activeSlave.genes == "XX">>sister<<else>>brother<</if>>.@@
 	<</if>>
@@ -563,11 +563,11 @@
 
 /*testtest PC sister passages - determines how many sisters you have*/
 <<if areSisters($activeSlave, $PC) < 3 && areSisters($activeSlave, $PC) > 0 && $activeSlave.genes == "XX">>
-	$pronounCap 
+	$pronounCap
 	<<if _sisters.length > 1>>
 		@@.lightgreen;is your sister along with <<print _sisters.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 	<<elseif _sisters.length > 0>>
-		is @@.lightgreen;your sister along with _sisters[0].slaveName.@@	
+		is @@.lightgreen;your sister along with _sisters[0].slaveName.@@
 	<<else>>
 		is @@.lightgreen;your sister.@@
 	<</if>>
@@ -575,7 +575,7 @@
 
 /*testtest PC brother passages - determines how many brothers you have*/
 <<if areSisters($activeSlave, $PC) < 3 && areSisters($activeSlave, $PC) > 0 && $activeSlave.genes == "XY">>
-	$pronounCap 
+	$pronounCap
 	<<if _brothers.length > 1>>
 		@@.lightgreen;is your brother along with <<print _brothers.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 	<<elseif _brothers.length > 0>>
@@ -587,11 +587,11 @@
 
 /*testtest PC half-sister passages - determines how many half-sisters you have*/
 <<if areSisters($activeSlave, $PC) == 3 && $activeSlave.genes == "XX">>
-	$pronounCap 
+	$pronounCap
 	<<if _halfsisters.length > 1>>
 		@@.lightgreen;is your half-sister along with <<print _halfsisters.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 	<<elseif _halfsisters.length > 0>>
-		is @@.lightgreen;your half-sister along with _halfsisters[0].slaveName.@@	
+		is @@.lightgreen;your half-sister along with _halfsisters[0].slaveName.@@
 	<<else>>
 		is @@.lightgreen;your half-sister.@@
 	<</if>>
@@ -599,11 +599,11 @@
 
 /*testtest PC half-brother passages - determines how many half-brothers you have*/
 <<if areSisters($activeSlave, $PC) == 3 && $activeSlave.genes == "XY">>
-	$pronounCap 
+	$pronounCap
 	<<if _halfbrothers.length > 1>>
 		@@.lightgreen;is your half-brother along with <<print _halfbrothers.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 	<<elseif _halfbrothers.length > 0>>
-		is @@.lightgreen;your half-brother along with _halfbrothers[0].slaveName.@@	
+		is @@.lightgreen;your half-brother along with _halfbrothers[0].slaveName.@@
 	<<else>>
 		is @@.lightgreen;your half-brother.@@
 	<</if>>
@@ -615,7 +615,7 @@
 	<<if _twins.length > 2>>
 		@@.lightgreen;shared a cramped womb with <<print _twins.reduce(function(res, ch, i, arr) { return (res.slaveName || res) + (i == arr.length - 1 ? ' and ' : ', ') + ch.slaveName; })>>.@@
 	<<elseif _twins.length > 1>>
-		is a @@.lightgreen;one of a set of triplets; _twins[0].slaveName, and _twins[1].slaveName@@ complete the trio.	
+		is a @@.lightgreen;one of a set of triplets; _twins[0].slaveName, and _twins[1].slaveName@@ complete the trio.
 	<<else>>
 		is @@.lightgreen;twins with _twins[0].slaveName.@@
 	<</if>>
@@ -880,4 +880,151 @@
 <</if>>
 <<set $children = []>>
 
-<</widget>>
\ No newline at end of file
+<</widget>>
+
+<<widget "parentName">>
+<<if $activeSlave[$args[0]] == $PC.ID>>You<</if>><<for _j = 0; _j < $slaves.length; _j++>><<if $slaves[_j].ID == $activeSlave[$args[0]]>><<print $slaves[_j].slaveName>><</if>><</for>>
+<</widget>>
+
+<<widget "listOfSlavesWithSameParent">>
+<<if $activeSlave[$args[0]] != 0>>
+<<set _printSeperator = false>>
+<<if $activeSlave[$args[0]] == $PC[$args[0]]>>You<<set _printSeperator = true>><</if>><<for _j = 0; _j < $slaves.length; _j++>><<if $slaves[_j][$args[0]] == $activeSlave[$args[0]]>><<if _printSeperator>> | <</if>><<set _printSeperator to true>><<print $slaves[_j].slaveName>><</if>><</for>>
+<</if>>
+<</widget>>
+
+<<widget "editFamily">>
+<br>''Mother:'' <span id="motherName"><<parentName "mother">></span>.
+<<link "Reset">>
+<<set $activeSlave.mother = 0>>
+<<replace '#motherName'>><</replace>>
+<<replace '#sameMotherNames'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+<<if $PC.vagina == 1>> | <<link "You">><<set $activeSlave.mother = $PC.ID>><<replace '#motherName'>>You<</replace>><<replace '#familySummary'>><<Family>><</replace>><</link>><</if>>
+<<for _i = 0; _i < $slaves.length; _i++>>
+<<if $slaves[_i].vagina > 0>>
+ |
+<<set _id = $slaves[_i].ID>>
+<<set _slaveName = $slaves[_i].slaveName>>
+<<print "
+<<link _slaveName>>
+<<set $activeSlave.mother = _id>>
+<<replace '#motherName'>>_slaveName<</replace>>
+<<replace '#sameMotherNames'>><<listOfSlavesWithSameParent 'mother'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+">>
+<</if>>
+<</for>>
+<br>''Father:'' <span id="fatherName"><<parentName "father">></span>.
+<<link "Reset">>
+<<set $activeSlave.father = 0>>
+<<replace '#fatherName'>><</replace>>
+<<replace '#sameFatherNames'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+<<if ($PC.dick == 1) and (($PC.actualAge - $activeSlave.actualAge) >= $fertilityAge) >> | <<link "You">><<set $activeSlave.father = $PC.ID>><<replace '#fatherName'>>You<</replace>><<replace '#familySummary'>><<Family>><</replace>><</link>><</if>>
+<<for _i = 0; _i < $slaves.length; _i++>>
+<<if ($slaves[_i].dick > 0) and ((($slaves[_i].actualAge - $activeSlave.actualAge) >= $fertilityAge))>>
+ |
+<<set _id = $slaves[_i].ID>>
+<<set _slaveName = $slaves[_i].slaveName>>
+<<print "
+<<link _slaveName>>
+<<set $activeSlave.father = _id>>
+<<replace '#fatherName'>>_slaveName<</replace>>
+<<replace '#sameFatherNames'>><<listOfSlavesWithSameParent 'father'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+">>
+<</if>>
+<</for>>
+
+<br>''Same mother as:'' <span id="sameMotherNames"><<listOfSlavesWithSameParent "mother">></span>.
+<<link "Reset">>
+<<set $activeSlave.mother = 0>>
+<<replace '#motherName'>><</replace>>
+<<replace '#sameMotherNames'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+ | <<link "You">>
+<<if $PC.mother != 0>>
+<<set $activeSlave.mother = $PC.mother>>
+<<elseif $activeSlave.mother != 0>>
+<<set $PC.mother = $activeSlave.mother>>
+<<else>>
+<<set $activeSlave.mother = -5 - 2*$activeSlave.ID >>
+<<set $PC.mother = $activeSlave.mother>>
+<</if>>
+<<replace '#motherName'>><<parentName "mother">><</replace>>
+<<replace '#sameMotherNames'>><<listOfSlavesWithSameParent "mother">><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+<<for _i = 0; _i < $slaves.length; _i++>>
+ |
+<<set _slaveName = $slaves[_i].slaveName>>
+<<set _slave = $slaves[_i]>>
+
+<<link _slaveName>>
+<<if _slave.mother != 0>>
+<<set $activeSlave.mother = _slave.mother>>
+<<elseif $activeSlave.mother != 0>>
+<<set _slave.mother = $activeSlave.mother>>
+<<else>>
+<<set $activeSlave.mother = -5 - 2*$activeSlave.ID >>
+<<set _slave.mother = $activeSlave.mother>>
+<</if>>
+<<replace '#motherName'>><<parentName "mother">><</replace>>
+<<replace '#sameMotherNames'>><<listOfSlavesWithSameParent 'mother'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+
+<</for>>
+
+<br>''Same father as:'' <span id="sameFatherNames"><<listOfSlavesWithSameParent "father">></span>.
+<<link "Reset">>
+<<set $activeSlave.father = 0>>
+<<replace '#fatherName'>><</replace>>
+<<replace '#sameFatherNames'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+| <<link "You">>
+<<if $PC.father != 0>>
+<<set $activeSlave.father = $PC.father>>
+<<elseif $activeSlave.father != 0>>
+<<set $PC.father = $activeSlave.father>>
+<<else>>
+<<set $activeSlave.father = -5 - 2*$activeSlave.ID -1>>
+<<set $PC.father = $activeSlave.father>>
+<</if>>
+<<replace '#fatherName'>><<parentName "father">><</replace>>
+<<replace '#sameFatherNames'>><<listOfSlavesWithSameParent "father">><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+
+<<for _i = 0; _i < $slaves.length; _i++>>
+ |
+<<set _slaveName = $slaves[_i].slaveName>>
+<<set _slave = $slaves[_i]>>
+
+<<link _slaveName>>
+<<if _slave.father != 0>>
+<<set $activeSlave.father = _slave.father>>
+<<elseif $activeSlave.father != 0>>
+<<set _slave.father = $activeSlave.father>>
+<<else>>
+<<set $activeSlave.father = -5 - 2*$activeSlave.ID -1 >>
+<<set _slave.father = $activeSlave.father>>
+<</if>>
+<<replace '#fatherName'>><<parentName "father">><</replace>>
+<<replace '#sameFatherNames'>><<listOfSlavesWithSameParent 'father'>><</replace>>
+<<replace '#familySummary'>><<Family>><</replace>>
+<</link>>
+
+<</for>>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;<span id="familySummary"><<Family>></span>
+<br>
+
+<</widget>>
diff --git a/src/uncategorized/PESS.tw b/src/uncategorized/PESS.tw
index dd47edb3421..8cac446acf4 100644
--- a/src/uncategorized/PESS.tw
+++ b/src/uncategorized/PESS.tw
@@ -40,7 +40,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
     <<SlaveArt $activeSlave 2 0>>
 </div>
 <</if>>
diff --git a/src/uncategorized/RECI.tw b/src/uncategorized/RECI.tw
index ea6f9acb9b2..ea0c36fd07d 100644
--- a/src/uncategorized/RECI.tw
+++ b/src/uncategorized/RECI.tw
@@ -20,7 +20,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
         <<SlaveArt $activeSlave 2 0>>
     </div>
 <</if>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 6e2d36a5ef9..f6877fbe781 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -20,7 +20,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
         <<SlaveArt $activeSlave 2 0>>
     </div>
 <</if>>
diff --git a/src/uncategorized/RESSTR.tw b/src/uncategorized/RESSTR.tw
index c324ca3f549..0bf9e2b9028 100644
--- a/src/uncategorized/RESSTR.tw
+++ b/src/uncategorized/RESSTR.tw
@@ -8,7 +8,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
         <<SlaveArt $activeSlave 2 0>>
     </div>
 <</if>>
@@ -27,7 +27,7 @@ You happen to come across <span id="name"><<print "[[$activeSlave.slaveName|Long
 
 <<case "ass fitting">>
 
-Your slaves get dressed in a large wardrobe area adjacent to the dormitory, rooms, and showers. There are always slaves working, so groups of slaves can be seen putting on their clothing here several times a day. Your naked sex slaves hurrying into the outfits you've selected for them is an undeniably erotic sight. Sometimes it's comical, especially when your transformations of your slaves' bodies produce amusing inconveniences. Today, it's <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> who is having trouble. Her <<if $activeSlave.buttImplant > 1>>fake<<elseif $activeSlave.butt > 8>>gigantic<<else>>plush<</if>> ass is 
+Your slaves get dressed in a large wardrobe area adjacent to the dormitory, rooms, and showers. There are always slaves working, so groups of slaves can be seen putting on their clothing here several times a day. Your naked sex slaves hurrying into the outfits you've selected for them is an undeniably erotic sight. Sometimes it's comical, especially when your transformations of your slaves' bodies produce amusing inconveniences. Today, it's <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> who is having trouble. Her <<if $activeSlave.buttImplant > 1>>fake<<elseif $activeSlave.butt > 8>>gigantic<<else>>plush<</if>> ass is
 <<if $activeSlave.drugs == "butt injections">>
 	growing explosively due to the expansion injections.
 <<elseif $activeSlave.diet == "fattening">>
@@ -53,7 +53,7 @@ She can't manage to
 <<case "Western clothing">>
 	get the upper part of her chaps pulled up and over her buttocks. She's got them
 <<case "a slutty qipao">>
-	the middle part of her step in qipao, the part which doesn't open from the top or the bottom, pulled up and over her buttocks. She's got it 
+	the middle part of her step in qipao, the part which doesn't open from the top or the bottom, pulled up and over her buttocks. She's got it
 <<case "uncomfortable straps">>
 	fit some of her straps around her buttocks. She's got them
 <<case "restrictive latex">>
@@ -121,7 +121,7 @@ up to the tops of her thighs, but that's all she can manage. The wardrobe includ
 
 <<case "arcade sadist">>
 
-<br><<link "Ask her about her fantasy">>
+<<link "Ask her about her fantasy">>
 	<<replace "#name">>$activeSlave.slaveName<</replace>>
 	<<replace "#result">>
 		<<set _pussy = false>>
@@ -250,4 +250,4 @@ up to the tops of her thighs, but that's all she can manage. The wardrobe includ
 	ERROR: bad event
 <</switch>>
 
-</span>
\ No newline at end of file
+</span>
diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw
index 82b2fe9561a..1fa7fc8876a 100644
--- a/src/uncategorized/dairy.tw
+++ b/src/uncategorized/dairy.tw
@@ -320,7 +320,7 @@ $dairyNameCaps
 <</if>>
 
 <<set _Tmult0 = Math.trunc($dairy*1000*$upgradeMultiplierArcology)>>
-<br>$dairyName can support $dairy milkers. [[Expand the dairy|Dairy][$cash -= _Tmult0, $dairy += 5]] //Costs ¤_Tmult0 and will increase upkeep costs//
+<br>$dairyNameCaps can support $dairy milkers. [[Expand the dairy|Dairy][$cash -= _Tmult0, $dairy += 5]] //Costs ¤_Tmult0 and will increase upkeep costs//
 
 <<set _Tmult1 = Math.trunc(10000*$upgradeMultiplierArcology)>>
 <br>
@@ -340,7 +340,7 @@ $dairyNameCaps
 
 <br>
 <<if $dairyPregUpgrade == 1>>
-	$dairyName can support cow pregnancies.
+	$dairyNameCaps can support cow pregnancies.
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;Fertile cows' wombs are
 	<<if $dairyPregSetting == 3>>
 		''worked to capacity.'' [[Industrial|Dairy][$dairyPregSetting = 2]]
@@ -368,16 +368,16 @@ $dairyNameCaps
 		''inactive.'' [[Activate|Dairy][$dairyStimulatorsSetting = 1]]
 	<</if>>
 <<else>>
-	$dairyName does not automatically sodomize. [[Upgrade the cockmilking machines with sodomizers|Dairy][$cash -= _Tmult1, $dairyStimulatorsUpgrade = 1]] //Costs ¤_Tmult1 and will increase upkeep costs//
+	$dairyNameCaps does not automatically sodomize. [[Upgrade the cockmilking machines with sodomizers|Dairy][$cash -= _Tmult1, $dairyStimulatorsUpgrade = 1]] //Costs ¤_Tmult1 and will increase upkeep costs//
 <</if>>
 
 <<set _Tmult2 = Math.trunc(5000*$upgradeMultiplierArcology)>>
 <<if ($dairyPregUpgrade == 2) || ($dairyStimulatorsSetting == 2)>>
 <br>
 <<if $dairyPrepUpgrade == 1>>
-	$dairyName features a preparatory raper designed to gape slaves for integration.
+	$dairyNameCaps features a preparatory raper designed to gape slaves for integration.
 <<else>>
-	$dairyName's industrial machines can only accept slaves with loose holes. [[Install a preparatory raper|Dairy][$cash -= _Tmult2, $dairyPrepUpgrade = 1]] //Costs ¤_Tmult2//
+	$dairyNameCaps's industrial machines can only accept slaves with loose holes. [[Install a preparatory raper|Dairy][$cash -= _Tmult2, $dairyPrepUpgrade = 1]] //Costs ¤_Tmult2//
 <</if>>
 <</if>>
 
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index 8c9d8dd5fac..b026732d508 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -407,11 +407,13 @@
 					<<set _balltacular++>>
 					<</if>>
 				<</if>>
-				<<if ($slaves[_i].dick < 10)>>
+				<<if $slaves[_i].dick > 0>>
+				<<if $slaves[_i].dick < 10>>
 					<<if (random(1,100) > (40+(10*$slaves[_i].dick)-(10*$dairyRestraintsSetting)-($injectionUpgrade*10)))>>
 					<<set $slaves[_i].dick++>>
 					<</if>>
 				<</if>>
+				<</if>>
 			<</if>>
 		<</if>>
 	<</if>>
diff --git a/src/uncategorized/economics.tw b/src/uncategorized/economics.tw
index 15c9332a701..912e78bdaed 100644
--- a/src/uncategorized/economics.tw
+++ b/src/uncategorized/economics.tw
@@ -246,7 +246,7 @@ __Personal Business__
 			You are now a @@.green;master venture capitalist.@@
 		<</if>>
 	<</if>>
-	
+
 <<elseif ($personalAttention == "warfare")>>
 	<<set _oldSkill = $PC.warfare>>
 	<<set $PC.warfare += random(5,10)>>
@@ -290,7 +290,7 @@ __Personal Business__
 			You are now a @@.green;master slaver.@@
 		<</if>>
 	<</if>>
-	
+
 <<elseif ($personalAttention == "engineering")>>
 	<<set _oldSkill = $PC.engineering>>
 	<<set $PC.engineering += random(5,10)>>
@@ -312,7 +312,7 @@ __Personal Business__
 			You are now a @@.green;master arcology engineer.@@
 		<</if>>
 	<</if>>
-	
+
 <<elseif ($personalAttention == "medicine")>>
 	<<set _oldSkill = $PC.medicine>>
 	<<set $PC.medicine += random(5,10)>>
@@ -334,7 +334,7 @@ __Personal Business__
 			You are now a @@.green;master slave surgeon.@@
 		<</if>>
 	<</if>>
-	
+
 <</if>>
 
 <<if $cash > 1000>>
@@ -507,10 +507,10 @@ On formal occasions, you are announced as $PCTitle.
 			@@.green;strongly approve@@ of the large
 			<<FSChange "ChattelReligionist" 5>>
 		<<elseif $slaves.length > 20>>
-			@@.green;approve@@ of the good 
+			@@.green;approve@@ of the good
 			<<FSChange "ChattelReligionist" 2>>
 		<<elseif $slaves.length > 20>>
-			are not impressed by the 
+			are not impressed by the
 		<</if>>
 		number of people you're giving the honor of sexual servitude.
 	<<elseif $nicaeaAchievement == "devotion">>
diff --git a/src/uncategorized/hgApplication.tw b/src/uncategorized/hgApplication.tw
index 6a396012332..2aaa57386ac 100644
--- a/src/uncategorized/hgApplication.tw
+++ b/src/uncategorized/hgApplication.tw
@@ -159,7 +159,7 @@ She helps $activeSlave.slaveName however she can. The tender care has @@.green;i
 <<if $HGtraining == "obedience">>
 
 <<set _effectiveness -= $activeSlave.intelligence*15>>
-<<set $activeSlave.trust -= Math.trunc(_effectiveness/4)>>
+<<set $activeSlave.trust -= Math.ceil(_effectiveness/4)>>
 <<if $activeSlave.devotion < -50>>
 	She helps watch and restrain the rebellious $activeSlave.slaveName, helping wear her down, @@.gold;breaking $activeSlave.slaveName's rebelliousness.@@
 <<elseif $activeSlave.devotion < -20>>
@@ -270,7 +270,7 @@ She punishes $activeSlave.slaveName whenever she sees her breaking the rules yet
 <<else>>
 	In spare moments she teaches $activeSlave.slaveName how to suck cocks, cunts, and assholes. $activeSlave.slaveName's oral skills have improved.
 <</if>>
-<<set $skillIncrease = Math.trunc(_effectiveness/10)>><<OralSkillIncrease $activeSlave>>
+<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<OralSkillIncrease $activeSlave>>
 
 <<elseif $HGtraining == "anal skill">>
 
@@ -287,7 +287,7 @@ She punishes $activeSlave.slaveName whenever she sees her breaking the rules yet
 <<else>>
 	In spare moments she teaches $activeSlave.slaveName how to take a dick up the butt. $activeSlave.slaveName's anal skills have improved.
 <</if>>
-<<set $skillIncrease = Math.trunc(_effectiveness/10)>><<AnalSkillIncrease $activeSlave>>
+<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<AnalSkillIncrease $activeSlave>>
 
 <<elseif $HGtraining == "fuck skill">>
 
@@ -304,13 +304,13 @@ She punishes $activeSlave.slaveName whenever she sees her breaking the rules yet
 <<else>>
 	In spare moments she teaches $activeSlave.slaveName how to take a dick. $activeSlave.slaveName's vanilla sex skills have improved.
 <</if>>
-<<set $skillIncrease = Math.trunc(_effectiveness/10)>><<VaginalSkillIncrease $activeSlave>>
+<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<VaginalSkillIncrease $activeSlave>>
 
 <<elseif $HGtraining == "whore skill">>
 
 <<set $activeSlave.training = 0>>
 In spare moments she teaches $activeSlave.slaveName how to prostitute herself. $activeSlave.slaveName's whoring skills have improved.
-<<set $skillIncrease = Math.trunc(_effectiveness/10)>><<WhoreSkillIncrease $activeSlave>>
+<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<WhoreSkillIncrease $activeSlave>>
 
 <<elseif $HGtraining == "entertain skill">>
 
@@ -321,7 +321,7 @@ In spare moments she teaches $activeSlave.slaveName how to prostitute herself. $
 <<else>>
 	In spare moments she teaches $activeSlave.slaveName how to entertain. $activeSlave.slaveName's entertainment skills have improved.
 <</if>>
-<<set $skillIncrease = Math.trunc(_effectiveness/10)>><<EntertainSkillIncrease $activeSlave>>
+<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<EntertainSkillIncrease $activeSlave>>
 
 <</if>>
 <</if>>
diff --git a/src/uncategorized/jeSlaveDispute.tw b/src/uncategorized/jeSlaveDispute.tw
index 0bf3189ffe6..c3675d548cd 100644
--- a/src/uncategorized/jeSlaveDispute.tw
+++ b/src/uncategorized/jeSlaveDispute.tw
@@ -145,7 +145,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
     <<SlaveArt $activeSlave 2 0>>
 </div>
 <</if>>
diff --git a/src/uncategorized/labReport.tw b/src/uncategorized/labReport.tw
index 3bd3bacf270..41470d95063 100644
--- a/src/uncategorized/labReport.tw
+++ b/src/uncategorized/labReport.tw
@@ -2,7 +2,7 @@
 
 ''Lab Report''<hr style="margin:0">
 <br>
-<<if ($researchLab.hired += $researchLab.menials) != 0>>
+<<if ($researchLab.hired + $researchLab.menials) != 0>>
 	<<if $researchLab.research == "none" && $researchLab.manufacture == "none">>
 		Since lab is currently not working on any projects they take contract work and earn you @@.yellowgreen;¤<<print (($researchLab.hired * 3 + $researchLab.menials) * $researchLab.aiModule * 20)>>.@@
 		<<set $cash += (($researchLab.hired * 3 + $researchLab.menials) * $researchLab.aiModule * 20)>>
diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw
index b3581aa6f4d..b56f379f41e 100644
--- a/src/uncategorized/managePenthouse.tw
+++ b/src/uncategorized/managePenthouse.tw
@@ -226,7 +226,6 @@ __Penthouse Improvements__
 
 <br>
 
-
 <<if $cyberMod == 0>>
 	<<switch $prostheticsUpgrade>>
 	<<case 1>>
@@ -255,4 +254,4 @@ __Penthouse Improvements__
 		//You lack the reputation to construct a prosthetics facility.//
 	<</if>>
 	<</switch>>
-<</if>>
+<</if>>
\ No newline at end of file
diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw
index d0947fc0c27..af7157e2f23 100644
--- a/src/uncategorized/pRivalryActions.tw
+++ b/src/uncategorized/pRivalryActions.tw
@@ -8,7 +8,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $hostage 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
     <<SlaveArt $hostage 2 0>>
 </div>
 <</if>>
diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw
index 533a578993d..2ec86b16d7f 100644
--- a/src/uncategorized/ptWorkaround.tw
+++ b/src/uncategorized/ptWorkaround.tw
@@ -405,7 +405,7 @@
 		@@.gold;encourages her fear@@ of you.
 		<<set $activeSlave.trust -= 10>>
 	<</if>>
-	<<if ($PC.slaving >= 100)>>
+	<<if $PC.slaving >= 100>>
 		Your @@.springgreen;slave-breaking experience@@ allows you to apply @@.gold;exquisite agony@@ without any increase in damage.
 		<<set $activeSlave.trust -= 5>>
 	<</if>>
@@ -449,7 +449,7 @@
 		$activeSlave.slaveName remains devoted to an old world faith that serves her as a reservoir of mental resilience. You carefully select pressure points to break her of this by forcing her to violate her faith's purity codes, constantly. She is forced to eat, dress, and fuck in ways that convince her that she must either condemn herself as an irredeemable sinner, or abandon her beliefs.
 	<</if>>
 	<<set $activeSlave.training += 120-($activeSlave.intelligence*10)+(($activeSlave.devotion+$activeSlave.trust)/10)>>
-	<<if ($PC.slaving >= 100)>>
+	<<if $PC.slaving >= 100>>
 		<<set $activeSlave.training += 20>>
 	<</if>>
 	<<if $activeSlave.training < 100>>
diff --git a/src/uncategorized/reNoEvent.tw b/src/uncategorized/reNoEvent.tw
index 10d0b4782b4..d8563f9870e 100644
--- a/src/uncategorized/reNoEvent.tw
+++ b/src/uncategorized/reNoEvent.tw
@@ -12,7 +12,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
         <<SlaveArt $activeSlave 2 0>>
     </div>
 <</if>>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 4352ae97b22..2e8365639e0 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -7,7 +7,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $eventSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
         <<SlaveArt $eventSlave 2 0>>
     </div>
 <</if>>
diff --git a/src/uncategorized/reStandardPunishment.tw b/src/uncategorized/reStandardPunishment.tw
index 237af708fef..656ab8bcd91 100644
--- a/src/uncategorized/reStandardPunishment.tw
+++ b/src/uncategorized/reStandardPunishment.tw
@@ -7,7 +7,7 @@
 /* 000-250-006 */
 /* <<if $seeImages == 1>><<SlaveArt $activeSlave 2 0>><</if>> */
 <<if $seeImages == 1>>
-    <div class="imageRef medImg">
+    <div class="imageRef lrgImg">
         <<SlaveArt $activeSlave 2 0>>
     </div>
 <</if>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index b417b56e623..a90ccdd87eb 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -567,7 +567,7 @@ $pronounCap has
 		[[Convert genitalia to female|Surgery Degradation][$activeSlave.dick = 0,$activeSlave.dickAccessory = "none",$activeSlave.foreskin = 0,$activeSlave.scrotum = 0,$activeSlave.balls = 0,$activeSlave.vagina = 0,$activeSlave.preg = -2,$activeSlave.vaginalSkill = 0,$cash -= $surgeryCost, $activeSlave.health -= 40, $surgeryType = "mtf"]] |
 	<</if>>
 	<<if $activeSlave.dick > 0>>
-	[[Remove penis|Surgery Degradation][$activeSlave.dick = 0,$activeSlave.dickAccessory = "none",$activeSlave.foreskin = 0,$activeSlave.scrotum = 0,$activeSlave.balls = 0,$activeSlave.vaginalSkill = 0,$cash -= $surgeryCost, $activeSlave.health -= 20, $surgeryType = "chop"]]
+	[[Remove penis|Surgery Degradation][$activeSlave.dick = 0,$activeSlave.dickAccessory = "none",$activeSlave.foreskin = 0,$activeSlave.vaginalSkill = 0,$cash -= $surgeryCost, $activeSlave.health -= 20, $surgeryType = "chop"]]
 	<</if>>
 <</if>>
 <<if ($activeSlave.dick != 0) && ($activeSlave.vagina == -1) && ($surgeryUpgrade == 1)>>
@@ -1923,13 +1923,13 @@ $pronounCap has doorway-jamming hips.
 		<</if>>
 	<<elseif ($activeSlave.amp == 1) && ($activeSlave.PLimb == 0)>>
 		<<if ($stockpile.basicPLimbInterface > 0)>> | 
-			[[Install basic prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1,$activeSlave.assignment = "rest",$activeSlave.assignmentVisible = 1,$cash -= $surgeryCost, $activeSlave.health -= 20,$surgeryType = "PLimb interface1"]]
+			[[Install basic prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1,$stockpile.basicPLimbInterface -= 1,$activeSlave.assignment = "rest",$activeSlave.assignmentVisible = 1,$cash -= $surgeryCost, $activeSlave.health -= 20,$surgeryType = "PLimb interface1"]]
 		<</if>>
 		<<if $stockpile.advPLimbInterface > 0>> | 
-			[[Install advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2,$activeSlave.assignment = "rest",$activeSlave.assignmentVisible = 1,$cash -= $surgeryCost, $activeSlave.health -= 20,$surgeryType = "PLimb interface2"]]
+			[[Install advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2,$stockpile.advPLimbInterface -= 1,$activeSlave.assignment = "rest",$activeSlave.assignmentVisible = 1,$cash -= $surgeryCost, $activeSlave.health -= 20,$surgeryType = "PLimb interface2"]]
 		<</if>>
 	<<elseif $activeSlave.amp == 1 && $activeSlave.PLimb == 1 && $stockpile.advPLimbInterface > 0>> | 
-		[[Upgrade = advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2,$activeSlave.assignment = "rest",$activeSlave.assignmentVisible = 1,$cash -= $surgeryCost, $activeSlave.health -= 5,$surgeryType = "PLimb interface3"]]
+		[[Upgrade = advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2,$stockpile.advPLimbInterface -= 1,$activeSlave.assignment = "rest",$activeSlave.assignmentVisible = 1,$cash -= $surgeryCost, $activeSlave.health -= 5,$surgeryType = "PLimb interface3"]]
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw
index 7d8af346c8e..8cfe7d5b52b 100644
--- a/src/uncategorized/rulesAssistant.tw
+++ b/src/uncategorized/rulesAssistant.tw
@@ -909,6 +909,7 @@ Corsetage: ''$currentRule.bellyAccessory.''
 <span id = "vaccessory">
 Vaginal accessories for virgins: ''$currentRule.virginAccessory.''
 </span>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
 
 <<link "No default setting">>
 	<<set $currentRule.virginAccessory = "no default setting">>
@@ -971,6 +972,7 @@ Vaginal accessories for virgins: ''$currentRule.virginAccessory.''
 <span id = "avaccessory">
 Vaginal accessories for anal virgins: ''$currentRule.aVirginAccessory.''
 </span>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
 
 <<link "No default setting">>
 	<<set $currentRule.aVirginAccessory = "no default setting">>
@@ -1033,6 +1035,7 @@ Vaginal accessories for anal virgins: ''$currentRule.aVirginAccessory.''
 <span id = "voaccessory">
 Vaginal accessories for other slaves: ''$currentRule.vaginalAccessory.''
 </span>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
 
 <<link "No default setting">>
 	<<set $currentRule.vaginalAccessory = "no default setting">>
diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw
index f212bb3924c..87457a8c526 100644
--- a/src/uncategorized/saDrugs.tw
+++ b/src/uncategorized/saDrugs.tw
@@ -776,7 +776,7 @@
 		<<set $slaves[$i].devotion += 5>>
 	<</if>>
 	<</if>>
-	<<if ($arcologies[0].FSBodyPuristLaw == 0) || ($healthyDrugsUpgrade == 0)>>
+	<<if ($arcologies[0].FSBodyPuristLaw == 0) && ($healthyDrugsUpgrade == 0)>>
 		Such a high dosage @@.red;isn't healthy@@.
 		<<set $slaves[$i].health -= 5>>
 	<</if>>
diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw
index b7c9a79f6da..c7cb8457be8 100644
--- a/src/uncategorized/seIndependenceDay.tw
+++ b/src/uncategorized/seIndependenceDay.tw
@@ -50,7 +50,7 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve
 	<<elseif $arcologies[0].FSSupremacist >= $FSLockinLevel*0.9>>
 		the Grand Champion of the Blood can command complete attention from <<if $PC.title == 1>>his arcology the moment he<<else>>her arcology the moment she<</if>> wishes.
 	<<elseif $arcologies[0].FSSubjugationist >= $FSLockinLevel*0.9>>
-		the Grand Overseer of the Inferior Race
+		the Grand Overseer of the Inferior Race can command complete attention from <<if $PC.title == 1>>his arcology the moment he<<else>>her arcology the moment she<</if>> wishes.
 	<<elseif $arcologies[0].FSRepopulationFocus >= $FSLockinLevel*0.9>>
 		<<if $PC.title == 1>>
 		the Progenitor of the Future can command complete attention from her arcology the moment he wishes.
diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw
index 625c48e0602..c907651bc8f 100644
--- a/src/utility/descriptionWidgets.tw
+++ b/src/utility/descriptionWidgets.tw
@@ -2062,7 +2062,7 @@ $pronounCap's got a
 	<<case "advertisements">>
 		$possessiveCap thighs are used as simple ad space, promoting $arcologies[0].name and your business pursuits.
 	<<case "rude words">>
-		$possessiveCap left thigh reads $desc and the right 'Slut.'
+		$possessiveCap left thigh reads '$desc' and the right 'slut.'
 	<<case "scenes">>
 		$pronounCap has symmetrical tattoos on each thigh depicting $possessive being spitroasted.
 	<<case "degradation">>
@@ -2591,7 +2591,7 @@ $pronounCap's got a
 		<<if $activeSlave.dick > 0>>
 			$activeSlave.slaveName's dick is buried in $possessive milking machine's cum receptacle.
 		<<else>>
-			The milking machine keeps a cup against $activeSlave.slaveName's tiny cumhole, since $pronoun has balls, but lacks a penis. This limits the machine to anal stimulation to milk $possessive's balls, and it's raping her ass forcefully.
+			The milking machine keeps a cup against $activeSlave.slaveName's tiny cumhole, since $pronoun has balls, but lacks a penis. This limits the machine to anal stimulation to milk $possessive balls, and it's raping her ass forcefully.
 		<</if>>
 	<<elseif ($activeSlave.vagina > -1)>>
 		$activeSlave.slaveName's pussy is being serviced by a drug-ejaculating dildo.
@@ -2709,7 +2709,7 @@ $pronounCap's got a
 	<<elseif $activeSlave.dick > 0>>
 		the base of $possessive dick, letting it pass through.
 	<<elseif $activeSlave.vagina == -1>>
-		over the little hole in $possessive's featureless groin.
+		over the little hole in $possessive featureless groin.
 	<<else>>
 		over $possessive pussy.
 	<</if>>
@@ -3106,7 +3106,7 @@ $pronounCap's got a
 		$activeSlave.slaveName's pussy is bare.
 	<<elseif ($activeSlave.dickAccessory == "chastity") || ($activeSlave.dickAccessory == "combined chastity") || ($activeSlave.dickAccessory == "anal chastity")>>
 	<<elseif $activeSlave.vagina == -1 && $activeSlave.dick == 0 && $activeSlave.balls == 0>>
-		featureless groin is quite bare.
+		$activeSlave.slaveName's featureless groin is quite bare.
 	<<else>>
 		$activeSlave.slaveName's
 		<<switch $activeSlave.dick>>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index f18a8222209..d751687027e 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -1499,117 +1499,117 @@ This experience
 
 <<switch $args[0]>>
 <<case "Supremacist">>
-	<<if $activeArcology.FSSupremacist != "unset">>
+	<<if $arcologies[0].FSSupremacist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSSupremacist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSSupremacist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "Subjugationist">>
-	<<if $activeArcology.FSSSubjugationist != "unset">>
+	<<if $arcologies[0].FSSSubjugationist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSSSubjugationist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSSSubjugationist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "GenderRadicalist">>
-	<<if $activeArcology.FSGenderRadicalist != "unset">>
+	<<if $arcologies[0].FSGenderRadicalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSGenderRadicalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "GenderFundamentalist">>
-	<<if $activeArcology.FSGenderFundamentalist != "unset">>
+	<<if $arcologies[0].FSGenderFundamentalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSGenderFundamentalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "Paternalist">>
-	<<if $activeArcology.FSPaternalist != "unset">>
+	<<if $arcologies[0].FSPaternalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSPaternalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSPaternalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "Degradationist">>
-	<<if $activeArcology.FSDegradationist != "unset">>
+	<<if $arcologies[0].FSDegradationist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSDegradationist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSDegradationist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "AssetExpansionist">>
-	<<if $activeArcology.FSAssetExpansionist != "unset">>
+	<<if $arcologies[0].FSAssetExpansionist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSAssetExpansionist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSAssetExpansionist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "SlimnessEnthusiast">>
-	<<if $activeArcology.FSSlimnessEnthusiast != "unset">>
+	<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSSlimnessEnthusiast/$FSLockinLevel)>>
 		<<set $arcologies[0].FSSlimnessEnthusiast += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "TransformationFetishist">>
-	<<if $activeArcology.FSTransformationFetishist != "unset">>
+	<<if $arcologies[0].FSTransformationFetishist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSTransformationFetishist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSTransformationFetishist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "BodyPurist">>
-	<<if $activeArcology.FSBodyPurist != "unset">>
+	<<if $arcologies[0].FSBodyPurist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSBodyPurist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSBodyPurist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "MaturityPreferentialist">>
-	<<if $activeArcology.FSMaturityPreferentialist != "unset">>
+	<<if $arcologies[0].FSMaturityPreferentialist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSMaturityPreferentialist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSMaturityPreferentialist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "YouthPreferentialist">>
-	<<if $activeArcology.FSYouthPreferentialist != "unset">>
+	<<if $arcologies[0].FSYouthPreferentialist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSYouthPreferentialist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSYouthPreferentialist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "Pastoralist">>
-	<<if $activeArcology.FSPastoralist != "unset">>
+	<<if $arcologies[0].FSPastoralist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSPastoralist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSPastoralist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "PhysicalIdealist">>
-	<<if $activeArcology.FSPhysicalIdealist != "unset">>
+	<<if $arcologies[0].FSPhysicalIdealist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSPhysicalIdealist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSPhysicalIdealist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "ChattelReligionist">>
-	<<if $activeArcology.FSChattelReligionist != "unset">>
+	<<if $arcologies[0].FSChattelReligionist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSChattelReligionist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSChattelReligionist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "RomanRevivalist">>
-	<<if $activeArcology.FSRomanRevivalist != "unset">>
+	<<if $arcologies[0].FSRomanRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSRomanRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSRomanRevivalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "EgyptianRevivalist">>
-	<<if $activeArcology.FSEgyptianRevivalist != "unset">>
+	<<if $arcologies[0].FSEgyptianRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSEgyptianRevivalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "EdoRevivalist">>
-	<<if $activeArcology.FSEdoRevivalist != "unset">>
+	<<if $arcologies[0].FSEdoRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSEdoRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSEdoRevivalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "ArabianRevivalist">>
-	<<if $activeArcology.FSArabianRevivalist != "unset">>
+	<<if $arcologies[0].FSArabianRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSArabianRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSArabianRevivalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "ChineseRevivalist">>
-	<<if $activeArcology.FSChineseRevivalist != "unset">>
+	<<if $arcologies[0].FSChineseRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSChineseRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSChineseRevivalist += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "Repopulationist">>
-	<<if $activeArcology.FSRepopulationFocus != "unset">>
+	<<if $arcologies[0].FSRepopulationFocus != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSRepopulationFocus/$FSLockinLevel)>>
 		<<set $arcologies[0].FSRepopulationFocus += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<case "Eugenics">>
-	<<if $activeArcology.FSRestart != "unset">>
+	<<if $arcologies[0].FSRestart != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSRestart/$FSLockinLevel)>>
 		<<set $arcologies[0].FSRestart += 0.05*$args[1]*$FSSingleSlaveRep>>
 	<</if>>
 <<default>>
-	@@.red;ERROR: bad FS reference@@
+	@@.red;ERROR: bad FS reference $args[0]@@
 <</switch>>
 
 <</widget>>
@@ -1623,117 +1623,117 @@ This experience
 
 <<switch $args[0]>>
 <<case "Supremacist">>
-	<<if $activeArcology.FSSupremacist != "unset">>
+	<<if $arcologies[0].FSSupremacist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSSupremacist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSSupremacist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "Subjugationist">>
-	<<if $activeArcology.FSSSubjugationist != "unset">>
+	<<if $arcologies[0].FSSSubjugationist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSSSubjugationist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSSSubjugationist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "GenderRadicalist">>
-	<<if $activeArcology.FSGenderRadicalist != "unset">>
+	<<if $arcologies[0].FSGenderRadicalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSGenderRadicalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "GenderFundamentalist">>
-	<<if $activeArcology.FSGenderFundamentalist != "unset">>
+	<<if $arcologies[0].FSGenderFundamentalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSGenderFundamentalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "Paternalist">>
-	<<if $activeArcology.FSPaternalist != "unset">>
+	<<if $arcologies[0].FSPaternalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSPaternalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSPaternalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "Degradationist">>
-	<<if $activeArcology.FSDegradationist != "unset">>
+	<<if $arcologies[0].FSDegradationist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSDegradationist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSDegradationist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "AssetExpansionist">>
-	<<if $activeArcology.FSAssetExpansionist != "unset">>
+	<<if $arcologies[0].FSAssetExpansionist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSAssetExpansionist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSAssetExpansionist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "SlimnessEnthusiast">>
-	<<if $activeArcology.FSSlimnessEnthusiast != "unset">>
+	<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSSlimnessEnthusiast/$FSLockinLevel)>>
 		<<set $arcologies[0].FSSlimnessEnthusiast += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "TransformationFetishist">>
-	<<if $activeArcology.FSTransformationFetishist != "unset">>
+	<<if $arcologies[0].FSTransformationFetishist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSTransformationFetishist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSTransformationFetishist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "BodyPurist">>
-	<<if $activeArcology.FSBodyPurist != "unset">>
+	<<if $arcologies[0].FSBodyPurist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSBodyPurist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSBodyPurist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "MaturityPreferentialist">>
-	<<if $activeArcology.FSMaturityPreferentialist != "unset">>
+	<<if $arcologies[0].FSMaturityPreferentialist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSMaturityPreferentialist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSMaturityPreferentialist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "YouthPreferentialist">>
-	<<if $activeArcology.FSYouthPreferentialist != "unset">>
+	<<if $arcologies[0].FSYouthPreferentialist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSYouthPreferentialist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSYouthPreferentialist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "Pastoralist">>
-	<<if $activeArcology.FSPastoralist != "unset">>
+	<<if $arcologies[0].FSPastoralist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSPastoralist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSPastoralist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "PhysicalIdealist">>
-	<<if $activeArcology.FSPhysicalIdealist != "unset">>
+	<<if $arcologies[0].FSPhysicalIdealist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSPhysicalIdealist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSPhysicalIdealist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "ChattelReligionist">>
-	<<if $activeArcology.FSChattelReligionist != "unset">>
+	<<if $arcologies[0].FSChattelReligionist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSChattelReligionist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSChattelReligionist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "RomanRevivalist">>
-	<<if $activeArcology.FSRomanRevivalist != "unset">>
+	<<if $arcologies[0].FSRomanRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSRomanRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSRomanRevivalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "EgyptianRevivalist">>
-	<<if $activeArcology.FSEgyptianRevivalist != "unset">>
+	<<if $arcologies[0].FSEgyptianRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSEgyptianRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSEgyptianRevivalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "EdoRevivalist">>
-	<<if $activeArcology.FSEdoRevivalist != "unset">>
+	<<if $arcologies[0].FSEdoRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSEdoRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSEdoRevivalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "ArabianRevivalist">>
-	<<if $activeArcology.FSArabianRevivalist != "unset">>
+	<<if $arcologies[0].FSArabianRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSArabianRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSArabianRevivalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "ChineseRevivalist">>
-	<<if $activeArcology.FSChineseRevivalist != "unset">>
+	<<if $arcologies[0].FSChineseRevivalist != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSChineseRevivalist/$FSLockinLevel)>>
 		<<set $arcologies[0].FSChineseRevivalist += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "Repopulationist">>
-	<<if $activeArcology.FSRepopulationFocus != "unset">>
+	<<if $arcologies[0].FSRepopulationFocus != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSRepopulationFocus/$FSLockinLevel)>>
 		<<set $arcologies[0].FSRepopulationFocus += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<case "Eugenics">>
-	<<if $activeArcology.FSRestart != "unset">>
+	<<if $arcologies[0].FSRestart != "unset">>
 		<<set $rep += $args[1]*$FSSingleSlaveRep*($arcologies[0].FSRestart/$FSLockinLevel)>>
 		<<set $arcologies[0].FSRestart += 0.05*$args[1]*$FSSingleSlaveRep*$pornFameBonus>>
 	<</if>>
 <<default>>
-	@@.red;ERROR: bad FS reference@@
+	@@.red;ERROR: bad FS reference $args[0]@@
 <</switch>>
 
-<</widget>>
\ No newline at end of file
+<</widget>>
diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw
index 5b694fc52ff..b573ecf389e 100644
--- a/src/utility/raWidgets.tw
+++ b/src/utility/raWidgets.tw
@@ -179,14 +179,14 @@ Apply to assignments:
 <</for>>
 
 <<if _rest || _fucktoy || _servant || _confined || _whore || _public || _milked || _subordinate || _gloryhole>>
-	<<link "None">>
+	<<link "All">>
 		<<set $currentRule.assignment = []>>
 		<<RAChangeApplyAssignment>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
 	<</link>> |
 <<else>>
-	''None'' |
+	''All'' |
 <</if>>
 
 <<if !_rest>>
@@ -606,14 +606,14 @@ Exclude assignments:
 Apply to facilities:
 <br>
 <<if (_facility.length > 0)>>
-	<<link "None">>
+	<<link "All">>
 		<<set _facility = []>>
 		<<RAChangeApplyFacility>>
 		<<RAChangeSave>>
 		<<RAChangeApply>>
 	<</link>>
 <<else>>
-	''None''
+	''All''
 <</if>>
 <<if ($HGSuite > 0)>>
 |
@@ -2984,7 +2984,7 @@ Your brand design is ''$brandDesign.''
 <<widget "DefaultRules">>
 <<for _r = 0; _r < $defaultRules.length; _r++>>
 <<set _currentRule = $defaultRules[_r]>>
-<<if (!ruleApplied($args[0], _currentRule.ID)) || ((def _currentRule.facility) && (_currentRule.facility.length > 1) && !ruleAppliedToSlaveFacility(_currentRule, $args[0]))>><<continue>><</if>>
+<<if !ruleApplied($args[0], _currentRule.ID) || (def _currentRule.facility && _currentRule.facility.length > 0 && !ruleAppliedToSlaveFacility(_currentRule, $args[0]))>><<continue>><</if>>
 
 <<if $args[0].fuckdoll == 0>>
 
@@ -3405,7 +3405,7 @@ Your brand design is ''$brandDesign.''
 	<</if>>
 <</if>>
 <</if>>
-<<if canGetPregant($args[0])>>
+<<if canGetPregnant($args[0])>>
 <<if (_currentRule.preg !== "no default setting")>>
 <<if (_currentRule.preg == -1)>>
 	<<if $args[0].preg !== -1>>
@@ -4618,56 +4618,42 @@ consequences.
 <<set _currentRule = $defaultRules[_r]>>
 <<set _rule = _r+1>>
 
-<<if (def _currentRule.excludedSlaves) && (_currentRule.excludedSlaves.length > 0)>>
-	<<if ruleSlaveExcluded($args[0], _currentRule)>>
-		<<if ruleApplied($args[0], _currentRule.ID)>>
-			<<RARemoveRule $args[0]>>
-		<</if>>
+<<if ruleApplied($args[0], _currentRule.ID)>>
+	<<if (def _currentRule.excludedSlaves) && (_currentRule.excludedSlaves.length > 0) && ruleSlaveExcluded($args[0], _currentRule)>>
+		<<RARemoveRule $args[0]>>
 		<<continue>>
 	<</if>>
-<</if>>
 
-<<if (def _currentRule.selectedSlaves) && (_currentRule.selectedSlaves.length > 0)>>
-	<<if !ruleSlaveSelected($args[0], _currentRule)>>
-		<<if ruleApplied($args[0], _currentRule.ID)>>
-			<<RARemoveRule $args[0]>>
-		<</if>>
+	<<if (def _currentRule.selectedSlaves) && (_currentRule.selectedSlaves.length > 0) && !ruleSlaveSelected($args[0], _currentRule)>>
+		<<RARemoveRule $args[0]>>
 		<<continue>>
 	<</if>>
-<</if>>
 
-<<if (def _currentRule.facility) && (_currentRule.facility.length > 0)>>
-	<<if !ruleAppliedToSlaveFacility(_currentRule, $args[0])>>
-		<<if ruleApplied($args[0], _currentRule.ID)>>
+	<<if $args[0].assignmentVisible == 0>>
+
+		<<if (def _currentRule.excludeFacility) && (_currentRule.excludeFacility.length > 0) && ruleExcludeSlaveFacility(_currentRule, $args[0])>>
 			<<RARemoveRule $args[0]>>
+			<<continue>>
 		<</if>>
-		<<continue>>
-	<</if>>
-<</if>>
-
-<<if (def _currentRule.excludeFacility) && (_currentRule.excludeFacility.length > 0)>>
-	<<if ruleExcludeSlaveFacility(_currentRule, $args[0])>>
-		<<if ruleApplied($args[0], _currentRule.ID)>>
+		
+		<<if (def _currentRule.facility) && (_currentRule.facility.length > 0) && !ruleAppliedToSlaveFacility(_currentRule, $args[0])>>
 			<<RARemoveRule $args[0]>>
+			<<continue>>
 		<</if>>
-		<<continue>>
-	<</if>>
-<</if>>
+		
+	<<else>>
 
-<<if (def _currentRule.assignment) && (_currentRule.assignment.length > 0)>>
-	<<if !ruleAssignment(_currentRule.assignment, $args[0].assignment)>>
-		<<if ruleApplied($args[0], _currentRule.ID)>>
+		<<if (def _currentRule.excludeAssignment) && (_currentRule.excludeAssignment.length > 0) && ruleAssignment(_currentRule.excludeAssignment, $args[0].assignment)>>
 			<<RARemoveRule $args[0]>>
+			<<continue>>
 		<</if>>
-		<<continue>>
-	<</if>>
-<</if>>
-<<if (def _currentRule.excludeAssignment) && (_currentRule.excludeAssignment.length > 0)>>
-	<<if ruleAssignment(_currentRule.excludeAssignment, $args[0].assignment)>>
-		<<if ruleApplied($args[0], _currentRule.ID)>>
+
+		<<if (def _currentRule.assignment) && (_currentRule.assignment.length > 0) && !ruleAssignment(_currentRule.assignment, $args[0].assignment)>>
 			<<RARemoveRule $args[0]>>
+			<<continue>>
 		<</if>>
-		<<continue>>
+
+		
 	<</if>>
 <</if>>
 
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index a6308d0f10e..60186fd15ae 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -66,6 +66,7 @@
 	<</replace>>
 
 	<<replace "#language">>
+		''$language:''
 		<<if $activeSlave.voice == 0>>
 		<<elseif $activeSlave.accent == 0>>Unaccented.
 		<<elseif $activeSlave.accent == 1>>Pretty $activeSlave.nationality accent.
-- 
GitLab