diff --git a/src/endWeek/saRelationships.js b/src/endWeek/saRelationships.js
index e98d4a5534c4a62924e03c7e560f4f9315966bc9..8e905f89ecd783ad85078cd116d5cb88fb757dbd 100644
--- a/src/endWeek/saRelationships.js
+++ b/src/endWeek/saRelationships.js
@@ -61,6 +61,7 @@ App.SlaveAssignment.relationships = (function() {
 
 	/** Does the facility head accept her advances?
 	 * @param {App.Entity.SlaveState} potentialFriend
+	 * @param {number} manipulationSkill
 	 * @returns {boolean}
 	 */
 	function silverTongue(potentialFriend, manipulationSkill) {
@@ -70,6 +71,7 @@ App.SlaveAssignment.relationships = (function() {
 	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {App.Entity.SlaveState} friend
+	 * @param {number} degree
 	 */
 	function startFriendship(slave, friend, degree) {
 		friend.relationship = degree;
@@ -125,19 +127,17 @@ App.SlaveAssignment.relationships = (function() {
 				slave.relationship = -2;
 			}
 		} else if (slave.career === "a Futanari Sister" && slave.rules.relationship === "permissive") {
-			for (const potentialFriend of V.slaves) {
-				if (potentialFriend.career === "a Futanari Sister" && potentialFriend.rules.relationship === "permissive" && canStartFriendship(slave, potentialFriend)) {
-					r.push(`${slave.slaveName} greets ${potentialFriend.slaveName} with joy. It's not clear whether they ever knew each other during their lives as Futanari Sisters, but it seems that they believe themselves to be in a relationship by simple virtue of having been Sisters. In any case, ${slave.slaveName} and ${potentialFriend.slaveName} <span class="relationship">become inseparable lovers</span> instantly, as though there's no possibility they would do anything else. They're even surprised when other slaves ask them about it; it's as though they're unaware that other possibilities even exist.`);
-					startFriendship(slave, potentialFriend, 4);
-					break;
-				}
+			const potentialFriend = V.slaves.find((s) => s.career === "a Futanari Sister" && s.rules.relationship === "permissive" && canStartFriendship(slave, s));
+			if (potentialFriend !== undefined) {
+				r.push(`${slave.slaveName} greets ${potentialFriend.slaveName} with joy. It's not clear whether they ever knew each other during their lives as Futanari Sisters, but it seems that they believe themselves to be in a relationship by simple virtue of having been Sisters. In any case, ${slave.slaveName} and ${potentialFriend.slaveName} <span class="relationship">become inseparable lovers</span> instantly, as though there's no possibility they would do anything else. They're even surprised when other slaves ask them about it; it's as though they're unaware that other possibilities even exist.`);
+				startFriendship(slave, potentialFriend, 4);
 			}
-		} else if (slave.origin === "You were acquainted with $him before you were an arcology owner; your rival tried to use $him to manipulate you, but you rescued $him." && V.rivalryDuration > 20 && !["Intellectual Dependency", "Paternalism", "Racial Supremacism", "Slave Professionalism"].includes(V.rivalryFS)&& slave.newGamePlus === 0) {
-			potentialFriend = V.slaves.find((s) => (s.prestigeDesc === "You bankrupted and enslaved $him in revenge for $his part in the attack on your arcology by the Daughters of Liberty." && s.fuckdoll === 0 && s.fetish !== "mindbroken" && s.newGamePlus === 0));
+		} else if (slave.origin === "You were acquainted with $him before you were an arcology owner; your rival tried to use $him to manipulate you, but you rescued $him." && V.rivalryDuration > 20 && !["Intellectual Dependency", "Paternalism", "Racial Supremacism", "Slave Professionalism"].includes(V.rivalryFS) && slave.newGamePlus === 0) {
+			const potentialFriend = V.slaves.find((s) => (s.prestigeDesc === "You bankrupted and enslaved $him in revenge for $his part in the attack on your arcology by the Daughters of Liberty." && s.fuckdoll === 0 && s.fetish !== "mindbroken" && s.newGamePlus === 0));
 			if (potentialFriend !== undefined) {
 				r.push(`${slave.slaveName} greets ${potentialFriend.slaveName} with joy, happy to see a familiar face again. Without any regard to you, <span class="relationship">they continue their prior relationship.</span>`);
 				if (potentialFriend.relationship > 0) { // remove me with multi-friend system
-					formerFriend = V.slaves.find((s) => (s.ID === potentialFriend.relationshipTarget));
+					const formerFriend = getSlave(potentialFriend.relationshipTarget);
 					if (formerFriend !== undefined) {
 						formerFriend.relationshipTarget = 0;
 						formerFriend.relationship = 0;
@@ -239,7 +239,7 @@ App.SlaveAssignment.relationships = (function() {
 								}
 							} else if (potentialFriend.ID === V.WardenessID && slave.assignment === Job.CELLBLOCK) {
 								if (potentialFriend.rules.relationship !== "restrictive" && silverTongue(potentialFriend, manipulationSkill)) {
-									r.push(`${slave.slaveName} manages to earn the respect of the Wardeness, ${potentialFriend}.slaveName. The two slaves have <span class="relationship">struck up a friendship.</span>`);
+									r.push(`${slave.slaveName} manages to earn the respect of the Wardeness, ${potentialFriend.slaveName}. The two slaves have <span class="relationship">struck up a friendship.</span>`);
 									startFriendship(slave, potentialFriend, 1);
 									break;
 								} else {
@@ -372,7 +372,7 @@ App.SlaveAssignment.relationships = (function() {
 			slave.relationship = 0;
 			slave.relationshipTarget = 0;
 		} else if (slave.relationship === -1) {
-			if ([Job.DJ, Job.CLUB, Job.PUBLIC, Job.WHORE, job.BROTHEL].includes(slave.assignment)) {
+			if ([Job.DJ, Job.CLUB, Job.PUBLIC, Job.WHORE, Job.BROTHEL].includes(slave.assignment)) {
 				r.push(`${His} endless stream of lovers maintains and satisfies ${his} emotional reliance on sex.`);
 			} else if (slave.assignment === Job.MASTERSUITE && V.masterSuiteUpgradeLuxury === 2) {
 				r.push(`Forming a part of the pile of copulating bodies in ${V.masterSuiteName} satisfies ${his} voracious sexual appetite.`);
@@ -393,7 +393,7 @@ App.SlaveAssignment.relationships = (function() {
 		} else if (slave.relationship === -2) {
 			incestReactions(slave, PC);
 			if (slave.devotion + slave.trust < 150) {
-				if (random(1, 100) > 50) {
+				if (slave.devotion < 75 && random(1, 100) > 50) {
 					r.push(`${He} is no longer as devoted to you as ${he} once was, and has <span class="relationship dec">begun to look elsewhere for emotional support.</span>`);
 					slave.relationship = 0;
 				} else if (slave.trust < 75 && random(1, 100) > 50) {
@@ -611,8 +611,8 @@ App.SlaveAssignment.relationships = (function() {
 			switch (slave.relationship) {
 				case 1: // friends
 					r.push(`is friends with ${friend.slaveName}.`);
-					if (slave.devotion + slave.trust > 170 && random(1, 2) === 1) {
-						r.push(`${He}'s very devoted to you, and strongly trusts both you and ${his} place as a ${slave}. Since ${he} is just friends with ${friend.slaveName},`);
+					if (slave.devotion + slave.trust > 170 && random(1, 100) > 95) { // 5% chance to abandon friend to ebond/eslut
+						r.push(`${He}'s very devoted to you, and strongly trusts both you and ${his} place as a slave. Since ${he} is just friends with ${friend.slaveName},`);
 						if (slave.sexualQuirk === "romantic") {
 							r.push(`and persistently interprets sex in the most romantic possible terms, ${he} has decided that ${he} wants to be yours in ${his} heart as well as ${his} `);
 							if (slave.vagina > 0) {
@@ -666,7 +666,7 @@ App.SlaveAssignment.relationships = (function() {
 						r.push(`${His} romantic bent drives ${him} to search for a regular sexual partner.`);
 						seed = 10;
 					}
-					if (slave.devotion + slave.trust > 95 && random(1, 2) === 1) {
+					if (slave.devotion + slave.trust > 95 && random(1, 100) === 100) { // 1% chance to abandon best friend to ebond/eslut
 						r.push(`${slave.slaveName} is totally devoted to you, and implicitly trusts both you and ${his} place as a slave. Since ${his} relationship with ${friend.slaveName} has not yet turned sexual, and`);
 						if (slave.sexualQuirk === "romantic") {
 							r.push(`${he} persistently interprets sex in the most romantic possible terms, ${he} has decided that ${he} wants to be yours in ${his} heart as well as ${his}`);
@@ -689,49 +689,51 @@ App.SlaveAssignment.relationships = (function() {
 						friend.relationship = 0;
 						friend.relationshipTarget = 0;
 						slave.relationshipTarget = 0;
-					} else if (mutualChildren(slave, friend, V.slaves) > 0 && random(1, 100) < (50 + (10 * mutualChildren(slave, friend, V.slaves)) + seed)) {
-						r.push(`Having already had kids together, their relationship turns sexual once again, turning them into <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if (V.seeIncest === 1 && slave.energy > 95 && areRelated(slave, friend) && random(1, 100) > (90-seed)) {
-						r.push(`Driven by nymphomania to attempt to have sex with everyone, ${slave.slaveName} successfully seduces ${his} ${relativeTerm(slave, friend)}, ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if (V.seeIncest === 1 && slave.sexualQuirk === "perverted" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) {
-						r.push(`Reveling in the taboo nature of ${his} attraction to ${friend.slaveName}, ${slave.slaveName} successfully seduces ${his} ${relativeTerm(slave, friend)}, making them <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if (V.seeIncest === 1 && slave.behavioralQuirk === "sinful" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) {
-						r.push(`Aroused by the chance to commit the sin of incest, ${slave.slaveName} successfully seduces  ${his} ${relativeTerm(slave, friend)}, ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if (slave.energy > 95 && random(1, 100) > (80 - seed)) {
-						r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXX)) && (friend.vagina > -1 || friend.faceShape !== "masculine")) {
-						r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXY)) && (canAchieveErection(friend) || friend.faceShape === "masculine")) {
-						r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if (V.seeIncest === 1 && areRelated(slave, friend) && (random(1, 100) > (95 - seed))) {
-						r.push(`Eventually, they happen to be together and horny, and find themselves fucking without thinking. They have become incestuous <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
-					} else if (random(1, 100) > (95 - seed)) {
-						if (friend.vagina !== -1 && slave.behavioralFlaw === "hates women" && random(1, 2) === 1) {
-							r.push(`Despite ${slave.slaveName}'s dislike of pussy,`);
-						} else if ((friend.dick > 0 || friend.faceShape === "masculine") && slave.behavioralFlaw === "hates men" && random(1, 2) === 1) {
-							r.push(`Despite ${slave.slaveName}'s distaste for cock,`);
-						} else {
-							r.push(`Living in an atmosphere of omnipresent sexuality,`);
+					} else if (App.Utils.sexAllowed(slave, friend) && slave.rules.relationship !== "just friends" && friend.rules.relationship !== "just friends") {
+						if (mutualChildren(slave, friend, V.slaves) > 0 && random(1, 100) < (50 + (10 * mutualChildren(slave, friend, V.slaves)) + seed)) {
+							r.push(`Having already had kids together, their relationship turns sexual once again, turning them into <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if (V.seeIncest === 1 && slave.energy > 95 && areRelated(slave, friend) && random(1, 100) > (90-seed)) {
+							r.push(`Driven by nymphomania to attempt to have sex with everyone, ${slave.slaveName} successfully seduces ${his} ${relativeTerm(slave, friend)}, ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if (V.seeIncest === 1 && slave.sexualQuirk === "perverted" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) {
+							r.push(`Reveling in the taboo nature of ${his} attraction to ${friend.slaveName}, ${slave.slaveName} successfully seduces ${his} ${relativeTerm(slave, friend)}, making them <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if (V.seeIncest === 1 && slave.behavioralQuirk === "sinful" && areRelated(slave, friend) && random(1, 100) > (80 - seed)) {
+							r.push(`Aroused by the chance to commit the sin of incest, ${slave.slaveName} successfully seduces  ${his} ${relativeTerm(slave, friend)}, ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if (slave.energy > 95 && random(1, 100) > (80 - seed)) {
+							r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXX)) && (friend.vagina > -1 || friend.faceShape !== "masculine")) {
+							r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if ((random(1, 100) > (100 - seed) - (0.2 * slave.attrXY)) && (canAchieveErection(friend) || friend.faceShape === "masculine")) {
+							r.push(`${slave.slaveName} successfully seduces ${friend.slaveName}, making them <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if (V.seeIncest === 1 && areRelated(slave, friend) && (random(1, 100) > (95 - seed))) {
+							r.push(`Eventually, they happen to be together and horny, and find themselves fucking without thinking. They have become incestuous <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
+						} else if (random(1, 100) > (95 - seed)) {
+							if (friend.vagina !== -1 && slave.behavioralFlaw === "hates women" && random(1, 2) === 1) {
+								r.push(`Despite ${slave.slaveName}'s dislike of pussy,`);
+							} else if ((friend.dick > 0 || friend.faceShape === "masculine") && slave.behavioralFlaw === "hates men" && random(1, 2) === 1) {
+								r.push(`Despite ${slave.slaveName}'s distaste for cock,`);
+							} else {
+								r.push(`Living in an atmosphere of omnipresent sexuality,`);
+							}
+							r.push(`they fuck in a weak moment and find themselves becoming <span class="relationship">friends with benefits.</span>`);
+							slave.relationship++;
+							friend.relationship = slave.relationship;
 						}
-						r.push(`they fuck in a weak moment and find themselves becoming <span class="relationship">friends with benefits.</span>`);
-						slave.relationship++;
-						friend.relationship = slave.relationship;
 					}
 					break;
 				case 3: // FWB
@@ -869,7 +871,7 @@ App.SlaveAssignment.relationships = (function() {
 
 	/**
 	 * @param {App.Entity.SlaveState} slave
-	 *
+	 * @param {App.Entity.SlaveState} relative
 	 */
 	function incestReactions(slave, relative) {
 		if (areRelated(slave, relative)) {
@@ -1025,7 +1027,7 @@ App.SlaveAssignment.relationships = (function() {
 				}
 			}
 			if (slave.attrXX <= 95 && random(1, 100) < (slave.relationship * 5) && (lover.vagina > -1 || lover.faceShape !== "masculine")) {
-				if (slave.attrKnown === 1) { // just becuase you don't know about it doesn't mean it's not happening.
+				if (slave.attrKnown === 1) { // just because you don't know about it doesn't mean it's not happening.
 					r.push(`After finding comfort with a feminine lover, ${slave.slaveName} begins to experience more attraction to women.`);
 				}
 				slave.attrXX += 2;
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index aa1033cf81860978cd6a7dc6ea0dc831687405d7..65795a7f90d4900c0c3d2c2b2efb5b7d4ae50853 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -8540,7 +8540,7 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h
 	<<link "No, and $his role is to suck dick and take it in the ass">>
 		<<replace "#result">>
 			You patiently explain that you've decided to use $him as an oral and anal slave, and leave $his pussy unfucked. $He's unsurprised, but $he understands your decision. You usually fuck slaves during your inspection, and you don't exempt $him from this, but you do let $him take it easy. Rather than facefucking $him you let $him suckle you gently. Rather that a hard buttfuck, you take $him to the couch and gently spoon $him with your <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> up $his ass while making out with $him and playing with $his nipples. $He understands your forbearance and @@.hotpink;appreciates how kind $his <<= WrittenMaster()>> is.@@
-			<<set $activeSlave.devotion += 4,>>
+			<<set $activeSlave.devotion += 4>>
 			<<run seX($activeSlave, "oral", $PC, "penetrative")>>
 			<<= VCheck.Anal()>>
 		<</replace>>