diff --git a/devNotes/Extended Family Mode Explained.txt b/devNotes/Extended Family Mode Explained.txt
index 6e888e909c3cd5e091c850382c4c9e346714a1a4..2e80c02cca58b6815b7c5db34b31d40055a2cb9c 100644
--- a/devNotes/Extended Family Mode Explained.txt	
+++ b/devNotes/Extended Family Mode Explained.txt	
@@ -9,7 +9,7 @@ Everything about a slave's family can be gathered by looking into her mother and
 The following values are used with .mother and .father:
 Valid slave IDs (in other words, a value > 0) - Serves as both a target for checks and as a check itself to see if effort should be expended to search for the parent.
 0 - Slave has no known parent. A slave with a parent value of 0 is capable of having a parent added via reRelativeRecruiter
-MissingParentIDs (in other words, a value < -2) - Serves as a placeholder to preserve sibling relations in the case of a parent being sold or lost. Outside of extreme cases, this value will never be restored to its' previous value. $missingParentID starts at -10000 and decrements after application. On NG+, positive values are incremented the same as a normal slave and checked for validity. Should it be invalid, it will be replaced with $missingParentID. Negative values, on the other hand, are decremented by 1200000. Values of -1 and -2 are ignored by the JS, so don't use them. Also -9999 through -9994 are used by hero slaves to preserve their sibling status no matter when they are purchased or obtained during the same game.
+MissingParentIDs (in other words, a value < -2) - Serves as a placeholder to preserve sibling relations in the case of a parent being sold or lost. Outside of extreme cases, this value will never be restored to its previous value. $missingParentID starts at -10000 and decrements after application. On NG+, positive values are incremented the same as a normal slave and checked for validity. Should it be invalid, it will be replaced with $missingParentID. Negative values, on the other hand, are decremented by 1200000. Values of -1 and -2 are ignored by the JS, so don't use them. Also -9999 through -9994 are used by hero slaves to preserve their sibling status no matter when they are purchased or obtained during the same game.
 
 
 The limiters: .sisters and .daughters
diff --git a/src/endWeek/saLongTermMentalEffects.js b/src/endWeek/saLongTermMentalEffects.js
index abdbd4002001649bb838180e17a41f6300c5593f..7d6027a8b5a29372315201b5a28cd022d4a6afba 100644
--- a/src/endWeek/saLongTermMentalEffects.js
+++ b/src/endWeek/saLongTermMentalEffects.js
@@ -1396,24 +1396,28 @@ App.SlaveAssignment.longTermMentalEffects = (function() {
 					r.push(`Living in a society that glorifies ${his} paraphilia <span class="devotion inc">leaves ${him} in perpetual ecstasy.</span>`);
 					slave.devotion += 5;
 				}
-				if (["get milked", "work in the dairy"].includes(slave.assignment) && slave.lactation > 0) {
+				if (slave.drugs === "intensive breast injections" || slave.drugs === "hyper breast injections") {
+					r.push(`${His} paraphilia makes ${him} feel <span class="trust inc">fulfilled to be a sex slave</span> if it means breast expansion like this.`);
+					slave.trust += 2;
+					slave.paraphiliaSatisfied = 1;
+				} else if (slave.drugs === "breast injections") {
+					r.push(`${His} paraphilia makes breast injections very satisfying for ${him}.`);
+					slave.paraphiliaSatisfied = 1;
+				} else if (["get milked", "work in the dairy"].includes(slave.assignment) && slave.lactation > 0) {
 					r.push(`${His} paraphilia is satisfied by ${his} work as a cow; ${he} can feel ${his} udders swelling with milk.`);
 					slave.paraphiliaSatisfied = 1;
 				} else if (slave.geneticQuirks.gigantomastia === 2 && slave.geneticQuirks.macromastia === 2 && V.geneticMappingUpgrade >= 1) {
 					r.push(`${His} paraphilia is satisfied by the knowledge that ${his} genetic abnormality will keep ${his} breasts growing for the rest of ${his} life.`);
+					slave.paraphiliaSatisfied = 1;
 				} else if (V.geneticMappingUpgrade >= 1 && (slave.geneticQuirks.gigantomastia === 2 || slave.geneticQuirks.macromastia === 2)) {
 					r.push(`${His} paraphilia is satisfied by the knowledge that ${his} genetic abnormality will keep ${his} breasts bigger than ${his} head.`);
+					slave.paraphiliaSatisfied = 1;
 				} else if (slave.geneticQuirks.gigantomastia === 2) {
 					r.push(`${His} paraphilia is satisfied by ${his} chest's curious tendency toward perpetual growth.`);
+					slave.paraphiliaSatisfied = 1;
 				} else if (slave.health.condition < 0) {
 					r.push(`${His} paraphilia is ameliorated by ${his} poor health; ${he} knows ${he} can't take expansion right now.`);
-				} else if (slave.drugs === "intensive breast injections" || slave.drugs === "hyper breast injections") {
-					r.push(`${His} paraphilia makes ${him} feel <span class="trust inc">fulfilled to be a sex slave</span> if it means breast expansion like this.`);
-					slave.trust += 2;
-					slave.paraphiliaSatisfied = 1;
-				} else if (slave.drugs === "breast injections") {
-					r.push(`${His} paraphilia makes breast injections very satisfying for ${him}.`);
-					slave.paraphiliaSatisfied = 1;
+					//paraphilia neither satisfied nor dissatisfied
 				} else {
 					r.push(`${He} feels ${his} breasts are shrinking horribly, leaving the growth addict <span class="devotion dec">depressed and anxious.</span>`);
 					slave.paraphiliaSatisfied = -1;
diff --git a/src/events/RETS/reSiblingTussle.js b/src/events/RETS/reSiblingTussle.js
index bf386b5a3b5e74c47ef4d7983627d588b629b15e..61c3495243fea5cf37f945d8b9e4ca3c2ba54a10 100644
--- a/src/events/RETS/reSiblingTussle.js
+++ b/src/events/RETS/reSiblingTussle.js
@@ -90,7 +90,7 @@ App.Events.RETSSiblingTussle = class RETSSiblingTussle extends App.Events.BaseEv
 					t = [];
 					t.push(`As soon as they realize you aren't going to stop them, the kiss gets deeper and the groping starts in earnest.`);
 					if (sib1.dick > 0) {
-						t.push(`${sib2.slaveName} immediately reaches for ${his2} ${relativeTerm(sib2, sib1)}'s dick, fondling and tugging on it to make sure it's hard for what they're about to do.`);
+						t.push(`${sib2.slaveName} immediately reaches for ${his2} ${relativeTerm(sib2, sib1)}'s dick, fondling and tugging on it to make sure it's ${canAchieveErection(sib1) ? `hard` : `as half-hard as it can be`} for what they're about to do.`);
 					} else if (sib1.vagina >= 0) {
 						t.push(`${sib2.slaveName} immediately reaches for ${his2} ${relativeTerm(sib2, sib1)}'s soft slit, rubbing and massaging it to make sure ${he}'s good and wet.`);
 					} else if (sib1.boobs >= 300) {
@@ -105,7 +105,7 @@ App.Events.RETSSiblingTussle = class RETSSiblingTussle extends App.Events.BaseEv
 					} else if (sib2.balls > 0 && sib1.dick > 0) { // avoid double dick groping by going for the balls
 						t.push(`grabs ${his} ${relativeTerm(sib1, sib2)}'s balls, fondling them to make sure ${he2}'s going to make plenty of cum.`);
 					} else if (sib2.dick > 0) {
-						t.push(`grabs ${his} ${relativeTerm(sib1, sib2)}'s dick, fondling and tugging on it to make sure it's hard for what they're about to do.`);
+						t.push(`grabs ${his} ${relativeTerm(sib1, sib2)}'s dick, fondling and tugging on it to make sure it's ${canAchieveErection(sib2) ? `hard` : `at least semi-hard`} for what they're about to do.`);
 					} else if (sib2.clit > 0 && sib1.vagina >= 0) { // avoid double vagina groping by going for the clit
 						t.push(`reaches for ${his} ${relativeTerm(sib1, sib2)}'s clit, rubbing and flicking it to make sure ${he2}'s ready for action.`);
 					} else if (sib2.vagina >= 0) {
diff --git a/src/facilities/brothel/brothel.js b/src/facilities/brothel/brothel.js
index e33b84142930e831e7a26d171a7dc156a3f87922..fe0cf230f7494657f9eb3efb67281c0842a6afbf 100644
--- a/src/facilities/brothel/brothel.js
+++ b/src/facilities/brothel/brothel.js
@@ -43,7 +43,7 @@ App.Facilities.Brothel.brothel = class Brothel extends App.Facilities.Facility {
 			"Chinese Revivalist": `is furnished as an old Chinese pleasure house, with each girl set up in her own low room. They stand outside the doors, luring customers back one by one.`,
 			"Chattel Religionist": `is decorated as a place of carnal worship. The air is scented by censers, and the slaves here maintain an air of holiness even when being sodomized in public.`,
 			"Degradationist": `is decorated to look like a dungeon. The décor involves a lot of black leather and burnished steel, and the slaves on offer are mostly chained to beds and walls.`,
-			"Repopulationist": `is clean and full of soft couches and chairs for its' pregnant whores to lounge upon while showing off their assets. Several of the rooms are prepped to allow a whore to give birth in front of an audience. A supply of freshly squeezed breast milk is available on tap.`,
+			"Repopulationist": `is clean and full of soft couches and chairs for its pregnant whores to lounge upon while showing off their assets. Several of the rooms are prepped to allow a whore to give birth in front of an audience. A supply of freshly squeezed breast milk is available on tap.`,
 			"Eugenics": `is decorated to look like a club. Loud music is playing, and the whores that aren't with customers are stripping and pole dancing on a stage. Safe sex is greatly encouraged. The real action happens in several reserved rooms dedicated to society's best, since the loud music drowns out private conversations.`,
 			"Asset Expansionist": `is decorated to look like a club. Loud music is playing, and the whores that aren't with customers are stripping and pole dancing on a stage.`,
 			"Transformation Fetishist": `is sterile and clean. Interactive screens on the walls list the whores and their modifications in clinical detail.`,
@@ -58,7 +58,7 @@ App.Facilities.Brothel.brothel = class Brothel extends App.Facilities.Facility {
 			"Youth Preferentialist": `is decorated to look like the sort of bar old world students visit on spring break. Vapid music is playing, and when whores aren't with customers, they dance and make out with each other to attract some.`,
 			"Body Purist": `is decorated to look like an old world bordello. The rich décor includes erotic photography and pornographic statuary, depicting idealized human forms in the act of love.`,
 			"Slimness Enthusiast": `is decorated to look like an old world bordello. The rich décor includes erotic photography and pornographic statuary, depicting slim, girlish figures playing, dancing, and loving.`,
-			"Hedonistic": `is comfortable and full of soft couches and chairs for its' overweight whores to lounge upon between clients ${V.arcologies[0].FSHedonisticDecadenceResearch === 1 ? `and enjoy a plate of snacks` : `and enjoy a big cup of slave food`}. The smells of fresh baked goods are pumped into the facility to mask the smell of sweat. It's not unusual for a client to fuck a whore right on her chosen couch, since the effort of moving is often too much.`,
+			"Hedonistic": `is comfortable and full of soft couches and chairs for its overweight whores to lounge upon between clients ${V.arcologies[0].FSHedonisticDecadenceResearch === 1 ? `and enjoy a plate of snacks` : `and enjoy a big cup of slave food`}. The smells of fresh baked goods are pumped into the facility to mask the smell of sweat. It's not unusual for a client to fuck a whore right on her chosen couch, since the effort of moving is often too much.`,
 			"Intellectual Dependency": `is decorated to look like a club. The sexually charged atmosphere has the whores horny and making out with each other. Customers are expected to come in, grab a bimbo to their tastes, and pull them off to have a good time.`,
 			"Slave Professionalism": `is decorated to look like a high-class bordello. Courtesans are expected to greet and entice customers to join them for a night they'll never forget.`,
 			"Petite Admiration": `is decorated to look like an old world whorehouse. The whores have personal platforms to stand on for inspection from their taller customers.`,
diff --git a/src/facilities/brothel/brothelAds.js b/src/facilities/brothel/brothelAds.js
index 1be152743ce848b53129df7f3b270cffe3aa1287..18fc869b86717fbe2cb78518aafb34e5da1f43aa 100644
--- a/src/facilities/brothel/brothelAds.js
+++ b/src/facilities/brothel/brothelAds.js
@@ -44,7 +44,7 @@ App.Facilities.Brothel.ads = function() {
 				text.push(`${capFirstChar(V.brothelName)} is decorated to look like a dungeon. The décor involves a lot of black leather and burnished steel, and the slaves on offer are mostly chained to beds and walls.`);
 				break;
 			case "Repopulationist":
-				text.push(`${capFirstChar(V.brothelName)} is clean and full of soft couches and chairs for its' pregnant whores to lounge upon while showing off their assets. Several of the rooms are prepped to allow a whore to give birth in front of an audience. A supply of freshly squeezed breast milk is available on tap.`);
+				text.push(`${capFirstChar(V.brothelName)} is clean and full of soft couches and chairs for its pregnant whores to lounge upon while showing off their assets. Several of the rooms are prepped to allow a whore to give birth in front of an audience. A supply of freshly squeezed breast milk is available on tap.`);
 				break;
 			case "Eugenics":
 				text.push(`${capFirstChar(V.brothelName)} is decorated to look like a club. Loud music is playing, and the whores that aren't with customers are stripping and pole dancing on a stage. Safe sex is greatly encouraged. The real action happens in several reserved rooms dedicated to society's best, since the loud music drowns out private conversations.`);