diff --git a/src/endWeek/healthFunctions.js b/src/endWeek/healthFunctions.js
index 35be3de28b79b6b5ee63d371c857382df024eef0..4a39a5eb130b95f3d784d5eced8e68a51f38e541 100644
--- a/src/endWeek/healthFunctions.js
+++ b/src/endWeek/healthFunctions.js
@@ -419,6 +419,37 @@ globalThis.tired = function(slave) {
 			} else {
 				assignment += 10;
 			}
+		} else if ([Job.SUBORDINATE].includes(slave.assignment)) {
+			if (slaveResting(slave)) {
+				assignment -= 20;
+				V.slaveUsedRest = 1;
+			} else if (slave.subTarget === -1) {
+				if (slave.health.tired + 5 >= 90 && !willWorkToDeath(slave)) {
+					assignment += 1;
+				} else if (slave.devotion > 20) {
+					assignment += 3;
+				} else {
+					assignment += 5;
+				}
+			} else if (slave.subTarget === 0) {
+				const workload = ((V.dormitoryPopulation + V.roomsPopulation - V.subSlaves) > 5) ? (V.subSlaves / (V.dormitoryPopulation + V.roomsPopulation - V.subSlaves)) : 1;
+				if (slave.devotion > 20) {
+					assignment += 7;
+				} else {
+					assignment += 10;
+				}
+				assignment = Math.ceil(assignment / workload); // 50 if very overloaded, make sure to have enough girls serving!
+			} else {
+				if (slave.relationshipTarget === slave.subTarget && slave.health.tired > 60) {
+					assignment += 2;
+				} else if (slave.health.tired + 10 >= 90 && !willWorkToDeath(slave)) {
+					assignment += 1;
+				} else if (slave.devotion > 20 || slave.relationshipTarget === slave.subTarget) {
+					assignment += 5;
+				} else {
+					assignment += 10;
+				}
+			}
 		} else if ([Job.MILKED].includes(slave.assignment)) {
 			if (slave.devotion > 20) {
 				assignment += 2;
@@ -656,7 +687,7 @@ globalThis.restEffects = function(slave, exhaustion=0) {
 		if (slave.rules.rest === "mandatory") {
 			return 0.86;
 		} else if (slaveResting(slave)) {
-			if (slave.assignment === window.Job.HOUSE || slave.assignment === window.Job.QUARTER) {
+			if (slave.assignment === window.Job.HOUSE || slave.assignment === window.Job.QUARTER || window.Job.SUBORDINATE) {
 				return 0.60;
 			} else {
 				return 0.25;
diff --git a/src/endWeek/saServeYourOtherSlaves.js b/src/endWeek/saServeYourOtherSlaves.js
index 91fd1fed205fb1c6acbc2a9a25a662b00628a9c1..c98bcc2d17573307aa78145b84effc3090719b26 100644
--- a/src/endWeek/saServeYourOtherSlaves.js
+++ b/src/endWeek/saServeYourOtherSlaves.js
@@ -28,6 +28,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 	let domFetishKnown;
 	let domSlaveUsedFetish;
 	let subSlaveLikedFetish;
+	let subHatesDom;
 
 	let subName;
 	let subRace;
@@ -94,6 +95,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 				domName = domSlave.slaveName;
 				domFetishKnown = domSlave.fetishKnown;
 				domSlaveUsedFetish = 0;
+				subHatesDom = 0;
 			} else {
 				jobType = "cumdump";
 				slave.subTarget = 0;
@@ -242,7 +244,6 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 				r.push(`With ${his} servicing sisters, ${his} workload is reasonable and ${he} isn't overworked.`);
 			} else if (load > 0.2) {
 				r.push(`While ${he} may have support in servicing your stock, ${he} is <span class="red">overwhelmed by their collective need.</span>`);
-				slave.health.tired += 10;
 				if (slave.sexualFlaw === "self hating") {
 					r.push(`With so many other slaves taking advantage of ${his} body, ${his} life's purpose of <span class="hotpink">being nothing more than a piece of meat</span> has come true.`);
 					slave.devotion += 5;
@@ -268,7 +269,6 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 					r.push(`there are so few other slaves`);
 				}
 				r.push(`servicing your stock, ${he} is used to the <span class="red">point of exhaustion.</span>`);
-				slave.health.tired += 30;
 				healthDamage(slave, 10);
 				if (V.averageDick > 5) {
 					if (canDoVaginal(slave) && slave.vagina > 0 && slave.vagina < 4) {
@@ -1351,6 +1351,8 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 		mammaryUse = slave.counter.mammary - mammaryUse;
 		penetrativeUse = slave.counter.penetrative - penetrativeUse;
 
+		slave.sexAmount = oralUse + analUse + vaginalUse + mammaryUse + penetrativeUse;
+
 		if (jobType === "stud") {
 			slave.need -= 50;
 			if (subSlaveLikedFetish) {
@@ -1378,7 +1380,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 							r.push(`${He} seems to enjoy getting pushed down and fucked; ${he}'s got a <span class="lightcoral"> ${slave.fetish === "masochist" ? "masochistic" : "submissive"} streak</span> in ${him}.`);
 							slave.fetishKnown = 1;
 						}
-						slave.need = 0;
+						subSlaveLikedFetish = 1;
 					}
 					break;
 				case "cumslut":
@@ -1389,7 +1391,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 							r.push(`${He} seems to enjoy putting ${his} mouth to use; ${he}'s got a <span class="lightcoral">taste for cum.</span>`);
 							slave.fetishKnown = 1;
 						}
-						slave.need = 0;
+						subSlaveLikedFetish = 1;
 					}
 					break;
 				case "buttslut":
@@ -1400,7 +1402,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 							r.push(`${He} seems to rather enjoy getting assfucked; <span class="lightcoral">anal gets ${him} worked up.</span>`);
 							slave.fetishKnown = 1;
 						}
-						slave.need = 0;
+						subSlaveLikedFetish = 1;
 					}
 					break;
 				case "pregnancy":
@@ -1412,7 +1414,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 								r.push(`Frequent unprotected sex in ${his} fertile hole exposes ${him} for the <span class="lightcoral">pregnancy fetishist ${he} is.</span>`);
 								slave.fetishKnown = 1;
 							}
-							slave.need = 0;
+							subSlaveLikedFetish = 1;
 						} else if (slave.mpreg === 1 && analUse > 7) {
 							if (slave.fetishKnown) {
 								r.push(`Having ${his} fertile ass see so much use really satisfies ${subName}.`);
@@ -1420,7 +1422,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 								r.push(`Frequent unprotected sex in ${his} fertile hole exposes ${him} for the <span class="lightcoral">pregnancy fetishist ${he} is.</span>`);
 								slave.fetishKnown = 1;
 							}
-							slave.need = 0;
+							subSlaveLikedFetish = 1;
 						}
 					}
 					break;
@@ -1431,7 +1433,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 						r.push(`${He} seems to enjoy ${his} humiliating role; ${he} <span class="lightcoral"> gets off to being degraded.</span>`);
 						slave.fetishKnown = 1;
 					}
-					slave.need = 0;
+					subSlaveLikedFetish = 1;
 					break;
 				case "boobs":
 					if (mammaryUse > 5) {
@@ -1441,12 +1443,23 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 							r.push(`${He} seems to enjoy all the attention ${his} breasts are getting; ${he}'s a <span class="lightcoral">breast fetishist.</span>`);
 							slave.fetishKnown = 1;
 						}
-						slave.need = 0;
+						subSlaveLikedFetish = 1;
 						slave.induceLactation += 2;
 						r.push(`${induceLactation(slave)}`);
 					}
 					break;
 			}
+			if (subSlaveLikedFetish) {
+				slave.need = 0;
+				if (slave.fetishStrength < 100) {
+					slave.fetishStrength++;
+				}
+			} else if (fetishChange > jsRandom(0, 100) && slave.fetish !== "masochist" && slave.fetish !== "submissive" && load <= 0.8) {
+				r.push(`Being used as much as ${he} is starts to take a toll on ${him} sexuality; <span class="lightcoral">${he} begins to enjoy being your chattel's fucktoy.</span>`);
+				slave.fetish = "submissive";
+				slave.fetishStrength = 65;
+				slave.fetishKnown = 1;
+			}
 		} else if (jobType === "sub") {
 			domSlave.need = 0;
 			if (domSlaveUsedFetish) {
@@ -1619,13 +1632,119 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 * */
 	function physicalEffects(slave) {
-		if (jobType === "sub") {
-			if (domSlave.health.condition < 40) {
-				r.push(`<span class="green">${domName}'s health improves</span> with ${subName} to serve ${him2} and help with some of ${his2} harder duties.`);
-				// Add tiredness recovery here
-				improveCondition(domSlave, 10);
+		if (slave.health.illness > 0 || slave.health.tired > 60) {
+			if (jobType === "sub") {
+				r.push(`${subName}`);
+			} else {
+				r.push(`${He}`);
+			}
+			r.push(`is<span class="red">`);
+			if (slave.health.tired > 60) {
+				if (slave.health.illness === 1) {
+					r.push(`feeling under the weather`);
+				} else if (slave.health.illness === 2) {
+					r.push(`somewhat ill`);
+				} else if (slave.health.illness === 3) {
+					r.push(`sick`);
+				} else if (slave.health.illness === 4) {
+					r.push(`very sick`);
+				} else if (slave.health.illness === 5) {
+					r.push(`terribly ill`);
+				}
+				r.push(`and`);
+			} else {
+				if (slave.health.illness === 1) {
+					r.push(`feeling under the weather,`);
+				} else if (slave.health.illness === 2) {
+					r.push(`somewhat ill,`);
+				} else if (slave.health.illness === 3) {
+					r.push(`sick,`);
+				} else if (slave.health.illness === 4) {
+					r.push(`very sick,`);
+				} else if (slave.health.illness === 5) {
+					r.push(`terribly ill,`);
+				}
+			}
+			if (slave.health.tired > 90) {
+				r.push(`exhausted,`);
+			} else if (slave.health.tired > 60) {
+				r.push(`fatigued,`);
+			}
+			if (slave.health.illness !== 0) {
+				r.push(`</span> making ${him} rather unappealing to use.`);
+			} else {
+				r.push(`</span> making ${him} less enjoyable to fuck.`);
+			}
+		}
+		if (jobType === "stud") {
+			if (slaveResting(slave)) {
+				r.push(`${He} is only made available during certain hours to maximize ${his} potency while <span class="green">keeping ${him} rested.</span>`);
+				if (slave.fetish === "mindbroken" && slave.fuckdoll > 0) {
+					r.push(`This doesn't stop recreational breeding, should ${he} be in the mood, but gives ${him} a chance to recover as needed.`);
+				}
+			} else if (slave.health.tired + 5 >= 90 && !willWorkToDeath(slave)) {
+				r.push(`${He} <span class="devotion dec">underperforms in ${his} role,</span> mating far less than ${he} could be, and is <span class="trust dec">punished accordingly.</span>`);
+				slave.devotion -= 2;
+				slave.trust -= 5;
+			} else {
+				r.push(`${He} lives a simple life of sex and nothing more;`);
+				if (slave.devotion > 20) {
+					r.push(`understanding that ${his} role is to ejaculate, not pleasure ${his} partner, allows ${him} ample free time when ${he} needs it.`);
+				} else {
+					r.push(`all ${he} needs to do is ejaculate, though ${he} fails to realize it.`);
+				}
+			}
+		} else if (jobType === "cumdump") {
+			if (slaveResting(slave)) {
+				r.push(`${He} is only available during certain hours in <span class="green">an effort to keep ${him} rested.</span>`);
+			} else if (slave.health.tired >= 60 && !willWorkToDeath(slave)) {
+				r.push(`As much as ${he} <span class="devotion dec">wishes to resist being used</span> in ${his} tired state, ${he} <span class="trust dec">can do little to avoid it.</span>`);
+				slave.devotion -= 5;
+				slave.trust -= 5;
+			} else {
+				if (slave.devotion > 20) {
+					r.push(`${He} is accustomed enough to slave life to porperly manage ${his} time.`);
+				} else {
+					r.push(`${He} <span class="red">wastes time and energy resisting</span> where a properly broken slave would accept what is happening and take it.`);
+				}
 			}
+			tiredFucks(slave);
+		} else if (jobType === "sub") {
+			if (slaveResting(slave)) {
+				r.push(`${domName} only uses ${subName} sexually <span class="green">out of respect for ${his} rest rules.</span>`);
+			} else if (slave.relationshipTarget === domSlave.ID && slave.health.tired > 60) {
+				r.push(`${domName} goes easy on ${his2} ${relationshipTerm(domSlave)} ${subName} outside of the bedroom.`);
+			} else if (slave.health.tired + 10 >= 90 && !willWorkToDeath(slave)) {
+				r.push(`${subName} leverages sex with ${domName} in order to shirk ${his} other work;`);
+				if (domSlave.energy > 20 || domSlave.sexualQuirk === "caring") {
+					r.push(`${domName} prefers satisfaction and <span class="trust inc">lets ${subName} get away with it.</span>`);
+					slave.trust += 2;
+				} else {
+					r.push(`${domName} does not care for ${subName}'s game and <span class="trust dec">punishes ${him} appropriately.</span>`);
+					slave.trust -= 5;
+					subHatesDom = 1;
+				}
+			} else {
+				r.push(`Since ${subName} is essentially splitting chores with ${domName}, ${his} days are not particularly difficult;`);
+				if (slave.relationshipTarget === domSlave.ID) {
+					r.push(`spending that time with one's ${relationshipTerm(domSlave)} makes it even easier.`);
+				} else if (slave.devotion > 20) {
+					r.push(`${subName} understands that working with ${domName} makes things easier.`);
+				} else {
+					r.push(`${subName} fails to realize that working with, not against, ${domName} <span class="red">would make things go smoother.</span>`);
+				}
+				if (domSlave.health.condition < 40) {
+					r.push(`<span class="green">${domName}'s health improves</span> with ${subName} to serve ${him2} and`);
+					improveCondition(domSlave, 10);
+				} else {
+					r.push(`<span class="green">${domName} spends more time at ease</span> with ${subName} to`);
+				}
+				r.push(`help with some of ${his2} harder duties.`);
+				domSlave.health.tired -= 10;
+			}
+			tiredFucks(slave);
 		}
+		tired(slave);
 
 		if (slave.cervixImplant === 1 || slave.cervixImplant === 3) {
 			cervixPump += 20 * vaginalUse;
@@ -1681,50 +1800,52 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() {
 				}
 			}
 
-			if (slave.relationship === 0) {
-				if (slave.rivalryTarget !== domSlave.ID && slave.devotion >= 10 && domSlave.relationship === 0) {
-					if (jsRandom(1, 100) > 50) {
-						r.push(`${subName} and ${domName} enjoy spending time together and <span class="lightgreen">strike up a friendship.</span>`);
-						domSlave.relationship = 1;
-						domSlave.relationshipTarget = slave.ID;
-						slave.relationship = 1;
-						slave.relationshipTarget = domSlave.ID;
-					} else {
-						r.push(`${subName} and ${domName} find they enjoy their sexual relationship and <span class="lightgreen">become friends with benefits.</span>`);
-						domSlave.relationship = 3;
-						domSlave.relationshipTarget = slave.ID;
-						slave.relationship = 3;
-						slave.relationshipTarget = domSlave.ID;
-					}
-				}
-			} else if (slave.relationship > 0) {
-				if (slave.relationshipTarget === domSlave.ID && slave.devotion >= -20) {
-					r.push(`${subName} likes getting fucked by ${domName} and <span class="hotpink">appreciates</span> having it as ${his} job.`);
-					slave.devotion += 1;
-				}
-				if (slave.relationship < 3) {
-					if (slave.relationshipTarget === domSlave.ID) {
-						if (slave.devotion >= 10) {
-							r.push(`${subName} and ${domName} find that they enjoy having sex just as much as they like being friends, and become <span class="lightgreen">friends with benefits.</span>`);
+			if (!subHatesDom) {
+				if (slave.relationship === 0) {
+					if (slave.rivalryTarget !== domSlave.ID && slave.devotion >= 10 && domSlave.relationship === 0) {
+						if (jsRandom(1, 100) > 50) {
+							r.push(`${subName} and ${domName} enjoy spending time together and <span class="lightgreen">strike up a friendship.</span>`);
+							domSlave.relationship = 1;
+							domSlave.relationshipTarget = slave.ID;
+							slave.relationship = 1;
+							slave.relationshipTarget = domSlave.ID;
+						} else {
+							r.push(`${subName} and ${domName} find they enjoy their sexual relationship and <span class="lightgreen">become friends with benefits.</span>`);
 							domSlave.relationship = 3;
+							domSlave.relationshipTarget = slave.ID;
 							slave.relationship = 3;
-						} else if (slave.devotion <= 20) {
-							r.push(`${subName} and ${domName}'s relationship is <span class="lightsalmon">damaged</span> by ${domName} having the right to use ${subName}.`);
-							domSlave.relationship--;
-							slave.relationship--;
+							slave.relationshipTarget = domSlave.ID;
 						}
 					}
-				} else if (slave.relationship < 4) {
-					if (slave.relationshipTarget === domSlave.ID && slave.devotion >= 10) {
-						r.push(`${subName} and ${domName} don't have to be encouraged to have sex, but with extra time for it, they become <span class="lightgreen">lovers.</span>`);
-						domSlave.relationship++;
-						slave.relationship++;
+				} else if (slave.relationship > 0) {
+					if (slave.relationshipTarget === domSlave.ID && slave.devotion >= -20) {
+						r.push(`${subName} likes getting fucked by ${domName} and <span class="hotpink">appreciates</span> having it as ${his} job.`);
+						slave.devotion += 1;
+					}
+					if (slave.relationship < 3) {
+						if (slave.relationshipTarget === domSlave.ID) {
+							if (slave.devotion >= 10) {
+								r.push(`${subName} and ${domName} find that they enjoy having sex just as much as they like being friends, and become <span class="lightgreen">friends with benefits.</span>`);
+								domSlave.relationship = 3;
+								slave.relationship = 3;
+							} else if (slave.devotion <= 20) {
+								r.push(`${subName} and ${domName}'s relationship is <span class="lightsalmon">damaged</span> by ${domName} having the right to use ${subName}.`);
+								domSlave.relationship--;
+								slave.relationship--;
+							}
+						}
+					} else if (slave.relationship < 4) {
+						if (slave.relationshipTarget === domSlave.ID && slave.devotion >= 10) {
+							r.push(`${subName} and ${domName} don't have to be encouraged to have sex, but with extra time for it, they become <span class="lightgreen">lovers.</span>`);
+							domSlave.relationship++;
+							slave.relationship++;
+						}
 					}
 				}
 			}
 
 			if (slave.rivalry === 0) {
-				if (slave.relationshipTarget !== domSlave.ID && slave.devotion <= 50 && domSlave.rivalry === 0 && jsRandom(1, 100) > 50) {
+				if (slave.relationshipTarget !== domSlave.ID && slave.devotion <= 50 && domSlave.rivalry === 0 && jsRandom(1, 100) > 50 - (subHatesDom * 20)) {
 					r.push(`${subName} resents ${domName} for using ${him} and the two <span class="lightsalmon">start to dislike each other.</span>`);
 					domSlave.rivalry = 1;
 					domSlave.rivalryTarget = slave.ID;
diff --git a/src/endWeek/slaveAssignmentReport.js b/src/endWeek/slaveAssignmentReport.js
index d68248c0d9cf1da4bf8fada411ee88b6c9d852b4..64bfb6ffd7cf808552f35fea961eac9f565b7a3f 100644
--- a/src/endWeek/slaveAssignmentReport.js
+++ b/src/endWeek/slaveAssignmentReport.js
@@ -186,7 +186,7 @@ App.EndWeek.slaveAssignmentReport = function() {
 	// Stud gets off based on impregnations, so we need to check and see if they actually do anyone
 	if (V.StudID) {
 		const stud = S.Stud;
-		V.StudCum = 2 + Math.trunc(((stud.balls / 5) + (stud.energy / 95) + (stud.health.condition / 95) + (stud.devotion / 95) + (V.reproductionFormula * 5) - (stud.health.tired / 25)) * healthPenalty(stud));
+		V.StudCum = 2 + Math.trunc(((stud.balls / 5) + (stud.energy / 95) + (stud.health.condition / 95) + (stud.devotion / 95) + (V.reproductionFormula * 5) - (stud.health.tired / 25)) * restEffects(stud, 5));
 		if (stud.drugs === "hyper testicle enhancement") {
 			V.StudCum += 3;
 		} else if (stud.drugs === "testicle enhancement") {