diff --git a/src/endWeek/saRest.tw b/src/endWeek/saRest.tw
index f24e5ab4c2bbe52e0d841b51d70ee91cc4dfd9b6..80894ff985f2ba4e8d3481722caf4625e50b99b2 100644
--- a/src/endWeek/saRest.tw
+++ b/src/endWeek/saRest.tw
@@ -52,5 +52,85 @@ window.saRest = function saRest(slave) {
 			}
 		}
 	}
+
+	if (V.showVignettes == 1) {
+		_vignette = GetVignette(slave);
+		t += ` __This week__ ${_vignette.text} `
+		if (_vignette.type == "cash") {
+			if (_vignette.effect > 0) {
+				t += `<span class='yellowgreen'>making you an extra ${cashFormat(Math.trunc(V.FResult*_vignette.effect))}.</span>`;
+			} else if (_vignette.effect < 0) {
+				t += `<span class='red'>losing you ${cashFormat(Math.abs(Math.trunc(V.FResult*_vignette.effect)))}.</span>`;
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			V.cash += Math.trunc(V.FResult*_vignette.effect);
+		} else if (_vignette.type == "devotion") {
+			if (_vignette.effect > 0) {
+				if (slave.devotion > 50) {
+					t += `<span class='hotpink'>increasing ${his} devotion to you.</span>`;
+				} else if (slave.devotion >= -20) {
+					t += `<span class='hotpink'>increasing ${his} acceptance of you.</span>`;
+				} else if (slave.devotion > -10) {
+					t += `<span class='hotpink'>reducing ${his} dislike of you.</span>`;
+				} else {
+					t += `<span class='hotpink'>reducing ${his} hatred of you.</span>`;
+				}
+			} else if (_vignette.effect < 0) {
+				if (slave.devotion > 50) {
+					t += `<span class='mediumorchid'>reducing ${his} devotion to you.</span>`;
+				} else if (slave.devotion >= -20) {
+					t += `<span class='mediumorchid'>reducing ${his} acceptance of you.</span>`;
+				} else if (slave.devotion > -10) {
+					t += `<span class='mediumorchid'>increasing ${his} dislike of you.</span>`;
+				} else {
+					t += `<span class='mediumorchid'>increasing ${his} hatred of you.</span>`;
+				}
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			slave.devotion += (1*_vignette.effect);
+		} else if (_vignette.type == "trust") {
+			if (_vignette.effect > 0) {
+				if (slave.trust > 20) {
+					t += `<span class='mediumaquamarine'>increasing ${his} trust in you.</span>`;
+				} else if (slave.trustt > -10) {
+					t += `<span class='mediumaquamarine'>reducing ${his} fear of you.</span>`;
+				} else {
+					t += `<span class='mediumaquamarine'>reducing ${his} terror of you.</span>`;
+				}
+			} else if (_vignette.effect < 0) {
+				if (slave.trust > 20) {
+					t += `<span class='gold'>reducing ${his} trust in you.</span>`;
+				} else if (slave.trust > -20) {
+					t += `<span class='gold'>increasing ${his} fear of you.</span>`;
+				} else {
+					t += `<span class='gold'>increasing ${his} terror of you.</span>`;
+				}
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			slave.trust += (1*_vignette.effect);
+		} else if (_vignette.type == "health") {
+			if (_vignette.effect > 0) {
+				t += `<span class='green'>improving ${his} health.</span>`;
+			} else if (_vignette.effect < 0) {
+				t += `<span class='red'>affecting ${his} health.</span>`;
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			slave.health += (2*_vignette.effect);
+		} else {
+			if (_vignette.effect > 0) {
+				t += `<span class='green'>gaining you a bit of reputation.</span>`;
+			} else if (_vignette.effect < 0) {
+				t += `<span class='red'>losing you a bit of reputation.</span>`;
+			} else {
+				t += `an incident without lasting effect.';
+			}
+			V.rep += Math.trunc(V.FResult*_vignette.effect*0.1);
+		}
+	}
+
 	return t;
 }
\ No newline at end of file
diff --git a/src/endWeek/saServant.tw b/src/endWeek/saServant.tw
index 9a873a7fbf8dcf561949316d85d5ff24ee70998d..dfbd1dbc5f60d6f5244155a654e3aad377f3e344 100644
--- a/src/endWeek/saServant.tw
+++ b/src/endWeek/saServant.tw
@@ -98,5 +98,84 @@ window.saServant = function saServant(slave) {
 		t += `as a drink dispenser at mealtimes, and makes a meaningful contribution to ${his} fellow slaves' nutrition in concert with the feeding systems.`;
 	}
 
+	if (V.showVignettes == 1) {
+		_vignette = GetVignette(slave);
+		t += ` __This week__ ${_vignette.text} `
+		if (_vignette.type == "cash") {
+			if (_vignette.effect > 0) {
+				t += `<span class='yellowgreen'>making you an extra ${cashFormat(Math.trunc(V.FResult*_vignette.effect))}.</span>`;
+			} else if (_vignette.effect < 0) {
+				t += `<span class='red'>losing you ${cashFormat(Math.abs(Math.trunc(V.FResult*_vignette.effect)))}.</span>`;
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			V.cash += Math.trunc(V.FResult*_vignette.effect);
+		} else if (_vignette.type == "devotion") {
+			if (_vignette.effect > 0) {
+				if (slave.devotion > 50) {
+					t += `<span class='hotpink'>increasing ${his} devotion to you.</span>`;
+				} else if (slave.devotion >= -20) {
+					t += `<span class='hotpink'>increasing ${his} acceptance of you.</span>`;
+				} else if (slave.devotion > -10) {
+					t += `<span class='hotpink'>reducing ${his} dislike of you.</span>`;
+				} else {
+					t += `<span class='hotpink'>reducing ${his} hatred of you.</span>`;
+				}
+			} else if (_vignette.effect < 0) {
+				if (slave.devotion > 50) {
+					t += `<span class='mediumorchid'>reducing ${his} devotion to you.</span>`;
+				} else if (slave.devotion >= -20) {
+					t += `<span class='mediumorchid'>reducing ${his} acceptance of you.</span>`;
+				} else if (slave.devotion > -10) {
+					t += `<span class='mediumorchid'>increasing ${his} dislike of you.</span>`;
+				} else {
+					t += `<span class='mediumorchid'>increasing ${his} hatred of you.</span>`;
+				}
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			slave.devotion += (1*_vignette.effect);
+		} else if (_vignette.type == "trust") {
+			if (_vignette.effect > 0) {
+				if (slave.trust > 20) {
+					t += `<span class='mediumaquamarine'>increasing ${his} trust in you.</span>`;
+				} else if (slave.trustt > -10) {
+					t += `<span class='mediumaquamarine'>reducing ${his} fear of you.</span>`;
+				} else {
+					t += `<span class='mediumaquamarine'>reducing ${his} terror of you.</span>`;
+				}
+			} else if (_vignette.effect < 0) {
+				if (slave.trust > 20) {
+					t += `<span class='gold'>reducing ${his} trust in you.</span>`;
+				} else if (slave.trust > -20) {
+					t += `<span class='gold'>increasing ${his} fear of you.</span>`;
+				} else {
+					t += `<span class='gold'>increasing ${his} terror of you.</span>`;
+				}
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			slave.trust += (1*_vignette.effect);
+		} else if (_vignette.type == "health") {
+			if (_vignette.effect > 0) {
+				t += `<span class='green'>improving ${his} health.</span>`;
+			} else if (_vignette.effect < 0) {
+				t += `<span class='red'>affecting ${his} health.</span>`;
+			} else {
+				t += `an incident without lasting effect.`;
+			}
+			slave.health += (2*_vignette.effect);
+		} else {
+			if (_vignette.effect > 0) {
+				t += `<span class='green'>gaining you a bit of reputation.</span>`;
+			} else if (_vignette.effect < 0) {
+				t += `<span class='red'>losing you a bit of reputation.</span>`;
+			} else {
+				t += `an incident without lasting effect.';
+			}
+			V.rep += Math.trunc(V.FResult*_vignette.effect*0.1);
+		}
+	}
+
 	return t;
 };
\ No newline at end of file
diff --git a/src/js/vignettes.tw b/src/js/vignettes.tw
index cf12d4917eabb1423d5ff4807173681d10f8f990..65f70c1ec2fa24e82a6c788bc8dc2f2de87b20e5 100644
--- a/src/js/vignettes.tw
+++ b/src/js/vignettes.tw
@@ -972,6 +972,20 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			}
 		}
+		if (slave.visualAge > 40) {
+			if (slave.face > 10 && slave.race == "asian") {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who loves well-preserved asian ladies,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			vignettes.push({
+				text: `${he} earned repeat business from a customer with serious mommy issues,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
 		if (slave.face > 40) {
 			vignettes.push({
 				text: `${he} lost a potential customer who was so intimidated by ${his} great beauty that they decided to find a homelier whore,`,
@@ -1035,6 +1049,21 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
+		if (!canWalk(slave)) {
+			vignettes.push({
+				text: `${his} lack of mobility severely hindered ${his} attempts to find customers,`,
+				type: "cash",
+				effect: -1,
+			});
+		} else {
+			if (slave.boobs > 1500 && slave.boobsImplant === 0) {
+				vignettes.push({
+					text: `a young customer hired ${him} to jump rope so they could watch ${his} massive natural breasts flop around,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		}
 		if (slave.amp === 1) {
 			vignettes.push({
 				text: `${he} disappointed a customer who thought they would enjoy fucking a quadruple amputee, but found it revolting,`,
@@ -1121,21 +1150,13 @@ window.GetVignette = function GetVignette(slave) {
 				type: "cash",
 				effect: -1,
 			});
-		} else {
-			if (slave.heels === 1 && !(["heels", "pumps", "extreme heels", "boots"].includes(slave.shoes))) {
-				vignettes.push({
-					text: `${he} enticed a new customer who had never really considered buttsex before they saw ${him} crawling along with ${his} asshole vulnerable,`,
-					type: "cash",
-					effect: 1,
-				});
-			}
-			if (slave.boobs > 1500 && slave.boobsImplant === 0) {
-				vignettes.push({
-					text: `a young customer hired ${him} to jump rope so they could watch ${his} massive natural breasts flop around,`,
-					type: "cash",
-					effect: 1,
-				});
-			}
+		}
+		if (slave.heels === 1 && !(["heels", "pumps", "extreme heels", "boots"].includes(slave.shoes))) {
+			vignettes.push({
+				text: `${he} enticed a new customer who had never really considered buttsex before they saw ${him} crawling along with ${his} asshole vulnerable,`,
+				type: "cash",
+				effect: 1,
+			});
 		}
 		if (slave.vaginalAccessory === "chastity belt") {
 			vignettes.push({
@@ -2519,6 +2540,13 @@ window.GetVignette = function GetVignette(slave) {
 			});
 		}
 		if (slave.visualAge > 40) {
+			if (slave.face > 10 && slave.race == "asian") {
+				vignettes.push({
+					text: `${he} got extra gratitude from a citizen who loves well-preserved asian ladies,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
 			vignettes.push({
 				text: `${he} earned extra gratitude from a citizen with serious mommy issues,`,
 				type: "rep",
@@ -2568,20 +2596,13 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.amp === 1) {
+		if (!canWalk(slave)) {
 			vignettes.push({
-				text: `${he} disappointed a citizen who thought they would enjoy fucking a quadruple amputee, but found it revolting,`,
+				text: `${his} lack of mobility severely hindered ${his} attempts to please citizens,`,
 				type: "rep",
 				effect: -1,
 			});
 		} else {
-			if (slave.heels === 1 && !(["heels", "pumps", "extreme heels", "boots"].includes(slave.shoes))) {
-				vignettes.push({
-					text: `${he} enticed a new patron who had never really considered buttsex before they saw ${him} crawling along with ${his} asshole vulnerable,`,
-					type: "rep",
-					effect: 1,
-				});
-			}
 			if (slave.boobs > 1500 && slave.boobsImplant === 0) {
 				vignettes.push({
 					text: `a young citizen convinced ${him} to jump rope so they could watch ${his} massive natural breasts flop around,`,
@@ -2590,6 +2611,100 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			}
 		}
+		if (slave.amp === 1) {
+			vignettes.push({
+				text: `${he} disappointed a citizen who thought they would enjoy fucking a quadruple amputee, but found it revolting,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -1) {
+			vignettes.push({
+				text: `a strange citizen was excited by the sight of ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a citizen was disgusted at the thought of ${his} basic prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+			vignettes.push({
+				text: `a citizen was put off by ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -2) {
+			vignettes.push({
+				text: `a citizen was excited by ${his} vibrating fingertips,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a citizen was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "rep",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a citizen was put off by ${his} crude artificial limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -3) {
+			vignettes.push({
+				text: `a strange citizen was excited by the sight of ${his} artificial limbs,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a citizen was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "rep",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a citizen was put off by the sight of ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -4) {
+			vignettes.push({
+				text: `a citizen was excited by the thought of having sex with a slave with p-limbs, but was scared off by ${his} combat p-limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+			vignettes.push({
+				text: "a citizen was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "rep",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a citizen was greatly intimidated by ${his} combat p-limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -5) {
+			vignettes.push({
+				text: `a citizen was fascinated by ${his} cybernetic limbs, and spent almost as much time examining them as they did having sex with ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a citizen was excited by the thought of having sex with a cybernetically enhanced slave,",
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a citizen was greatly intimidated by the sight of ${his} cybernetic limbs and was frightened away,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.heels === 1 && !(["heels", "pumps", "extreme heels", "boots"].includes(slave.shoes))) {
+			vignettes.push({
+				text: `${he} enticed a new patron who had never really considered buttsex before they saw ${him} crawling along with ${his} asshole vulnerable,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
 		if (slave.vaginalAccessory === "chastity belt") {
 			vignettes.push({
 				text: `a wavering citizen who was disappointed that ${his} pussy is unavailable decided to try ${his} ass instead,`,