diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 616717cbfb9b05706d06d52da664b018029000ac..bfe5ea3750f752b141650adc6ec4234d9572f3d5 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -23295,6 +23295,2707 @@ window.clothing2artSuffix = function(v) {
           .replace(/\W/g,""); /* remove remaining whitespace */
 };
 
+/*::VignettesJS[script]*/
+
+window.GetVignette = function GetVignette(slave) {
+	const V = State.variables;
+	let vignettes = [];
+
+	const pronouns = getPronouns(slave);
+	const he = pronouns.pronoun;
+	const him = pronouns.object;
+	const his = pronouns.possessive;
+	const hers = pronouns.posessivePronoun;
+	const himself = pronouns.objectReflexive;
+	const boy = pronouns.noun;
+
+
+	if (slave.assignment === "whore" || slave.assignment === "work in the brothel") {
+		let seed = jsRandom(1, 10);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a domestic dispute over another whore,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a free whore finally sink into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that construction forced ${him} to move from ${his} usual spot,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that a customer used a new and improved sex toy on ${him},`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 5:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was an appointment with an unusually perverted family,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 6:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a man sell his wife into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 7:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a woman sell her daughters into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 8:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen descend into aphrodisiac addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 9:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen develop the beginnings of sex addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a citizen administering a brutal public punishment to one of their slaves,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `a citizen punished one of his slaves by tying ${his} up in public near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a citizen shared one of his slaves with the public near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a private brothel offered a promotion near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `some free sluts threw an aphrodisiac street party near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `a contract breaker was punished with the pillory near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `one of ${his} regular customers got a divorce and came to ${him} for repeated consolation,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a brothel near where ${slave.slaveName} usually works had business trouble,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a competing whore that looks like ${him} fell ill, driving a customer to look for an alternative,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `a street whore that works near ${him} was badly beaten by an abusive customer and had to take time off. The reduced competition got ${him} more business,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `an influx of tourists came into ${his} part of the arcology, earning ${him} more business for a day,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+		}
+
+		if (slave.fetishKnown === 1) {
+			switch (slave.fetish) {
+				case "submissive":
+					vignettes.push({
+						text: `${he} deeply impressed a customer with ${his} sincere submission to them,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} lost a customer who secretly wanted ${him} to show a little initiative,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "cumslut":
+					vignettes.push({
+						text: `${he} deeply impressed a customer with ${his} hunger for their cum,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much cum fetishes revolted them until ${he} displayed ${his},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "humiliation":
+					vignettes.push({
+						text: `${he} earned repeat business from a customer who didn't know how much they liked public sex until ${he} got them to try it,`,
+						type: "cash",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much exhibitionism turned them off until they tried public sex with ${him},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "buttslut":
+					if (canDoAnal(slave)) {
+						vignettes.push({
+							text: `${he} earned repeat business from a customer who didn't know how much they liked fucking buttholes until ${he} got them to try fucking ${his},`,
+							type: "cash",
+							effect: 1,
+						});
+						vignettes.push({
+							text: `${he} disgusted a customer who didn't know how much buttsex turned them off until ${he} got them to try fucking ${his} ass,`,
+							type: "rep",
+							effect: -1,
+						});
+					}
+					if (slave.butt >= 3) {
+						vignettes.push({
+							text: `${he} earned repeat business from a customer who didn't know how much they liked big butts until ${he} gave them a lap dance they'll never forget,`,
+							type: "cash",
+							effect: 1,
+						});
+					}
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who appreciated a nice rear, even if it is off limits,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much butts turned them off until ${he} put ${his} hands on theirs,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "boobs":
+					vignettes.push({
+						text: `${he} deeply impressed a customer by orgasming to nothing but the feeling of them sucking ${his} nipples,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disappointed a female customer who didn't know how uninterested she was in nipple play before trying it,`,
+						type: "rep",
+						effect: -1,
+					});
+					if (slave.nipples === "fuckable") {
+						vignettes.push({
+							text: `${he} left a lasting impression on a pair of customers after nearly passing out from a series of intense orgasms from getting ${his} nipples fucked,`,
+							type: "cash",
+							effect: 2,
+						});
+					}
+					break;
+				case "sadist":
+					vignettes.push({
+						text: `${he} deeply impressed a customer who brought their own slave to ${him} for abuse with ${his} sadism,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `a customer brought ${him} their own slave to abuse, but the sight proved to be a turn off,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "masochist":
+					vignettes.push({
+						text: `${he} helped a customer discover a new fetish by orgasming when they accidentally hurt ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disturbed a customer who accidentally hurt ${him} by orgasming,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "dom":
+					vignettes.push({
+						text: `${he} made a female customer ${his} bitch: fortunately, the customer wanted to be ${his} bitch and came back for more,`,
+						type: "cash",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} accidentally overwhelmed a customer with ${his} sexual dominance,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "pregnancy":
+					vignettes.push({
+						text: `${he} earned repeat business from a customer who didn't know how much they liked pregnancy play until ${he} begged them to knock ${him} up,`,
+						type: "cash",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much pregnancy play turned them off until ${he} begged them to knock ${him} up,`,
+						type: "rep",
+						effect: -1,
+					});
+			}
+		}
+		switch (slave.behavioralFlaw) {
+			case "arrogant":
+				vignettes.push({
+					text: `${he} manages to give a citizen the impression ${he} thinks ${himself} better than them,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "bitchy":
+				vignettes.push({
+					text: `${he} makes an emasculating remark to a customer right after they fuck ${him},`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "odd":
+				vignettes.push({
+					text: `${he} infuriates a potential customer with ${his} nervous tics,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "hates men":
+				vignettes.push({
+					text: `${his} disgust towards men surfaces at a bad time, losing ${him} a male customer,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "hates women":
+				vignettes.push({
+					text: `${his} disgust towards women surfaces at a bad time, losing ${him} a female customer,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "gluttonous":
+				vignettes.push({
+					text: `${he} accidentally lingers at a meal, missing a customer appointment,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "anorexic":
+				vignettes.push({
+					text: `${his} bulimia surfaces at an extremely inopportune moment, turning a customer off,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "devout":
+				vignettes.push({
+					text: `a customer catches ${him} praying to ${himself} as they inserts themselves into ${him}, turning them off,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "liberated":
+				vignettes.push({
+					text: `${he} treats a rude potential customer impolitely, because ${he} thinks that's fair,`,
+					type: "cash",
+					effect: -1,
+				});
+		}
+		switch (slave.sexualFlaw) {
+			case "hates oral":
+				vignettes.push({
+					text: `${he} vomits while trying to deepthroat a customer,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates anal":
+				vignettes.push({
+					text: `${he} cries while taking anal from a customer who isn't into painal,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates penetration":
+				vignettes.push({
+					text: `${he} cries while taking a pounding from a customer who likes their sex consensual,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "shamefast":
+				vignettes.push({
+					text: `${he} cries while a potential customer looks ${him} over,`,
+					type: "cash",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} disrobed so slowly that a potential customer gave up on ${him},`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "idealistic":
+				vignettes.push({
+					text: `${he} cries when explaining the price of ${his} body to a potential customer,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "repressed":
+				vignettes.push({
+					text: `${he} misunderstands a potential customer's lewd requests, turning them off,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "apathetic":
+				vignettes.push({
+					text: `${he} fails to notice when a customer achieves orgasm,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "neglectful":
+				vignettes.push({
+					text: `${he} brings a denial fetishist to orgasm three times without cumming ${himself}, earning their repeat business,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "cum addict":
+				vignettes.push({
+					text: `${he}'s so focused on sucking down a customer's cum that ${he} managed to drive them to repeated orgasm, earning their repeated business once they got the feeling back in their legs,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "anal addict":
+				vignettes.push({
+					text: `${he} takes a trio of dicks in ${his} ass without hesitation, earning repeat business from one of them thoroughly impressed by ${his} anal addiction,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "attention whore":
+				vignettes.push({
+					text: `${he} got repeat business from a man who loves fucking ${him} in the middle of crowded rooms,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "breast growth":
+				vignettes.push({
+					text: `${he} got repeat business from a woman with huge breasts who enjoys roleplaying her breast expansion fetishes with ${him},`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "abusive":
+				vignettes.push({
+					text: `${he} got repeat business from a man who loves physically abusive sex, though his testicles could only take so much in one week,`,
+					type: "cash",
+					effect: 2,
+				});
+				break;
+			case "malicious":
+				vignettes.push({
+					text: `${he} got repeat business from a masochistic woman who enjoys being whipped and degraded,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "self hating":
+				vignettes.push({
+					text: `${he} got repeat business from an abusive man who thoroughly enjoyed how diligently ${he} took it,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "breeder":
+				vignettes.push({
+					text: `${he} got repeat business from a pregnancy fetishist nearly driven mad with lust over ${his} pregnancy obsession,`,
+					type: "cash",
+					effect: 3,
+				});
+		}
+		switch (slave.behavioralQuirk) {
+			case "confident":
+				vignettes.push({
+					text: `${he} confidently presses forward with a wavering potential customer, and makes the sale,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "cutting":
+				vignettes.push({
+					text: `${he} makes such a gloriously cutting remark to a male customer that a female bystander comes to ${him} for repeat business,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "funny":
+				vignettes.push({
+					text: `${he} makes a group of citizens laugh so hard, one of them comes to ${him} for repeat business,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "fitness":
+				vignettes.push({
+					text: `${he} continues a marathon gangbang past the point where most would have passed out,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "adores women":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular female customer,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "adores men":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular male customer,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "insecure":
+				vignettes.push({
+					text: `${he} successfully convinces a regular customer that ${he}'s reliant on them emotionally,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "sinful":
+				vignettes.push({
+					text: `${he} helps a customer get past their religious hangups through sex with the friendly neighborhood whore,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "advocate":
+				vignettes.push({
+					text: `${he} successfully convinces a wavering potential customer that there's nothing wrong with banging a whore,`,
+					type: "cash",
+					effect: 1,
+				});
+		}
+		switch (slave.sexualQuirk) {
+			case "gagfuck queen":
+				vignettes.push({
+					text: `${he} earns repeat business from a citizen who's obsessed with gagfucks,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "painal queen":
+				vignettes.push({
+					text: `${he} earns repeat business from a citizen who's obsessed with painal,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "strugglefuck queen":
+				vignettes.push({
+					text: `${he} earns repeat business from a citizen who's obsessed with strugglefucking,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "tease":
+				vignettes.push({
+					text: `${he} convinces a citizen who's never had sex with a prostitute to patronize ${him} with some truly inspired flirting,`,
+					type: "cash",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a few partiers were so impressed with ${his} provocative teasing that they repeated ${his} wit to friends,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "romantic":
+				vignettes.push({
+					text: `a citizen becomes infatuated with ${him}, since they are convinced ${he}'s infatuated with them,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "perverted":
+				vignettes.push({
+					text: `${he} earns some momentary notoriety by engaging in a previously unheard-of sex act,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "caring":
+				vignettes.push({
+					text: `${he} serves as an impromptu sounding board for a customer having marital trouble,`,
+					type: "cash",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a customer was so enamored with ${his} kind and caring manner than they proposed to ${him} and offered to take ${him} away, and when ${he} refused, they left a sizable tip,`,
+					type: "cash",
+					effect: 1,
+				});
+		}
+
+		if (slave.pitKills > 0) {
+			vignettes.push({
+				text: `${he} earns repeat business from a customer obsessed with the fact that ${he}'s a killer,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.oralCount > 500) {
+			vignettes.push({
+				text: `a customer into degradation becomes obsessed with driving ${his} oral mileage as high as possible,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.analCount > 500 && slave.anus > 0) {
+			vignettes.push({
+				text: `a customer into degradation becomes obsessed with driving ${his} anal mileage as high as possible,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.vaginalCount > 500 && slave.vagina > 0) {
+			vignettes.push({
+				text: `a customer into degradation becomes obsessed with driving ${his} pussy mileage as high as possible,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.devotion > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to please a customer with tastes that disgusted ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.devotion < -50) {
+			vignettes.push({
+				text: `${his} fury at being sold for sex turned a customer off before they could fuck ${him},`,
+				type: "cash",
+				effect: -1,
+			});
+		} else if (slave.devotion <= 20) {
+			vignettes.push({
+				text: `${he} treasured a love token given to ${him} by a customer ${he} fooled into thinking ${his} affection was real,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.trust > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to accept a customer with tastes that frightened ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.trust < -50) {
+			vignettes.push({
+				text: `${his} tearful terror at being forced to sell ${himself} for sex turned a customer off before they could fuck ${him},`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (slave.livingRules === "luxurious") {
+			vignettes.push({
+				text: `${he} got a truly perfect night's sleep, which put ${him} in the right frame of mind for the whole day,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.livingRules === "spare") {
+			vignettes.push({
+				text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+			vignettes.push({
+				text: `a customer asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.releaseRules === "restrictive") {
+			vignettes.push({
+				text: `a customer asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
+				type: "cash",
+				effect: 0,
+			});
+		} else {
+			vignettes.push({
+				text: `a closeted female customer asked about ${his} sex life with ot${his} slaves, and was enthralled by ${his} answer,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.health > 80) {
+			vignettes.push({
+				text: `a potential customer in the medical field was fascinated by ${his} health, and spent almost as much time examining ${him} as they did having sex with ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+			if (slave.weight < 10) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a customer who misses ${boy}s without a spare tire around their middle,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.weight < 95) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} gains a lot more weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a customer who loves them big and soft`,
+					type: "cash",
+					effect: 0,
+				});
+			}
+			if (slave.weight > 30) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a customer who enjoyed the way ${his} middle jiggled as they fucked ${him},`,
+					type: "cash",
+					effect: 0,
+				});
+			}
+		} else {
+			if (slave.weight > 95) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} loses a lot of weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else if (slave.weight > 30) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} loses some weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else if (slave.weight <= -30) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} gains some weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else if (slave.weight < -95) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} gains a lot of weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			}
+		}
+		if (slave.drugs === "testicle enhancement") {
+			vignettes.push({
+				text: `${he} took it in public, with ${his} copious ejaculation getting ${him} another customer right away,`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.drugs === "hyper testicle enhancement") {
+			vignettes.push({
+				text: `${he} bloated a female customer's belly with ${his} copious ejaculate, leading her to say she is looking forward to come back and get filled again,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex due to ${his} extreme aphrodisiac dosage turned a potential customer off,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly pleased a customer who loves desperate ${boy}s,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly horrified a customer who didn't realize how low a ${boy} could stoop,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.addict > 50) {
+			vignettes.push({
+				text: `${he} zoned out badly due to a low point between aphrodisiac doses, disappointing a customer,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.bellyPreg >= 10000 || slave.bellyImplant >= 10000) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who likes to do nothing more than cuddle with ${his} swollen belly,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a night with guy who likes rough, hard sex with heavily pregnant ${boy}s took its toll on ${him},`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.bellyFluid >= 5000) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who loved the way ${his} belly moved as they fucked ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disgusted a customer when their forceful fucking caused ${him} to release ${his} contained ${slave.inflationType} all over them,`,
+				type: "rep",
+				effect: -2,
+			});
+		}
+		if (slave.hormoneBalance >= 100 && !canAchieveErection(slave)) {
+			if (slave.dick > 0) {
+				vignettes.push({
+					text: `${he} disappointed a customer who was sure they could get ${slave.slaveName}'s cock erect,`,
+					type: "rep",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} earned repeat business from a customer who seems unthreatened by ${his} soft dick,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (slave.hormoneBalance <= -100 && slave.dick === 0) {
+			vignettes.push({
+				text: `${he} earned repeat business from a female customer who adores the masculinity produced by ${slave.slaveName}'s hormone regime,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.dick > 0 && canPenetrate(slave)) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who likes to see his wife get fucked by a dick${boy} whore,`,
+				type: "cash",
+				effect: 1,
+			});
+			if (slave.dick > 3) {
+				vignettes.push({
+					text: `${he} earned repeat business from a female customer who likes big stiff cocks, and cannot lie,`,
+					type: "cash",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `${he} irritated a male customer who brought his girlfriend with him by accidentally showing him up,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.balls > 3) {
+			vignettes.push({
+				text: `${he} loses a customer who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (canDoVaginal(slave)) {
+			if (slave.vagina === 1) {
+				vignettes.push({
+					text: `${he} got extra business from a customer who really likes ${him}, and wants to fuck ${his} pussy as much as possible while it's still tight,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.vagina > 2) {
+				vignettes.push({
+					text: `${he} disappointed a customer whose cock is just too small for ${his} big cunt,`,
+					type: "rep",
+					effect: -1,
+				});
+				if (slave.behavioralQuirk === "cutting" && slave.intelligence >= 2) {
+					vignettes.push({
+						text: `${he} helped a customer discover a new fetish by making cutting remarks when their cock was too small for ${his} big cunt,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.behavioralFlaw === "bitchy") {
+					vignettes.push({
+						text: `${he} irritated a male customer with ${his} complaints that they were too small to please ${him},`,
+						type: "rep",
+						effect: -2,
+					});
+				}
+			}
+		}
+		if (canDoAnal(slave)) {
+			if (slave.anus === 1) {
+				vignettes.push({
+					text: `${he} got extra business from a customer who really likes ${his} butthole, and wants to fuck it as much as possible while it's still tight,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.anus > 2) {
+				vignettes.push({
+					text: `${he} disappointed a customer whose cock is just too small for ${his} loose butthole,`,
+					type: "rep",
+					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,`,
+				type: "cash",
+				effect: -1,
+			});
+		} else if (slave.face < -10) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who lacks self-confidence, and is more comfortable with homely whores,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.visualAge > 40) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer with serious mommy issues,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.lips > 70) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who likes to play with ${his} lips nonsexually (don't ask),`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (!canTalk(slave)) {
+			vignettes.push({
+				text: `${he} impressed a customer who didn't know how relaxing a ${boy} who can't talk could be,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.muscles > 95) {
+			vignettes.push({
+				text: `${he} impressed a customer who was so eager to share workout plans with ${him} that they almost forgot to have sex with ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} gained repeat business from a female customer who likes a ${boy} who can bench-press her before and after they fuck,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disappointed a customer by accidentally revealing that ${he}'s considerably stronger than them,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.lactation > 0) {
+			vignettes.push({
+				text: `${he} was well compensated for providing fresh milk for the coffee served at a customer's business meeting,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} served as a conveniently lactating whore near a trendy arcology coffeehouse,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.amp === 1) {
+			vignettes.push({
+				text: `${he} disappointed a customer who thought they would enjoy fucking an amputee, but found it revolting,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -1) {
+			vignettes.push({
+				text: `a strange customer was excited by the sight of ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a customer was disgusted at the thought of ${his} basic prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+			vignettes.push({
+				text: `a customer was put off by ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -2) {
+			vignettes.push({
+				text: `a customer was excited by ${his} vibrating fingertips,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "cash",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a customer was put off by ${his} crude artificial limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -3) {
+			vignettes.push({
+				text: `a strange customer was excited by the sight of ${his} artificial limbs,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "cash",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a customer was put off by the sight of ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -4) {
+			vignettes.push({
+				text: `a customer was excited by the thought of having sex with a slave with p-limbs, but was scared off by ${his} combat p-limbs,`,
+				type: "cash",
+				effect: -1,
+			});
+			vignettes.push({
+				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "cash",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a customer was greatly intimidated by ${his} combat p-limbs,`,
+				type: "cash",
+				effect: -1,
+			});
+		} else if (slave.amp === -5) {
+			vignettes.push({
+				text: `a customer was fascinated by ${his} cybernetic limbs, and spent almost as much time examining them as they did having sex with ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a customer was excited by the thought of having sex with a cybernetically enhanced slave,",
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a customer was greatly intimidated by the sight of ${his} cybernetic limbs and was frightened away,`,
+				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.vaginalAccessory === "chastity belt") {
+			vignettes.push({
+				text: `a wavering customer who was disappointed that ${his} pussy is unavailable decided to try ${his} ass instead,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.fetish === "mindbroken") {
+			vignettes.push({
+				text: `a customer really enjoyed being able to treat ${him} however they liked without eliciting a reaction,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.intelligence <= -2) {
+			vignettes.push({
+				text: `a customer managed to trick ${him} into fucking him without payment,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (slave.face > 10 && canDoAnal(slave)) {
+			if (slave.dick > 0) {
+				if (slave.fetish === "buttslut" && jsRandom(0, 100) < 50) {
+					vignettes.push({
+						text: `a customer was surprised by ${his} penis, so ${he} hid it and enjoyed the buttsex without touching it,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.fetish === "buttslut") {
+					vignettes.push({
+						text: `a customer was surprised by ${his} penis, so ${he} hid it, but could barely tolerate anal without touching it,`,
+						type: "rep",
+						effect: -1,
+					});
+				} else if (slave.analSkill >= 100) {
+					vignettes.push({
+						text: `a customer was surprised by ${his} penis, so ${he} hid it and skillfully pretended to be a real girl,`,
+						type: "rep",
+						effect: 1,
+					});
+				}
+			}
+			if (slave.analSkill < 100 && slave.anus > 2) {
+				vignettes.push({
+					text: `a pair of customers enticed by ${his} beauty but disappointed by ${his} loose butthole doubled up on ${his} poor anus without mercy,`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.fetishKnown === 1 && slave.fetishStrength > 95) {
+			if (slave.fetish === "buttslut" || slave.fetish === "dom") {
+				vignettes.push({
+					text: `${he} advertised ${himself} by forcing a slave in the stocks to eat ${his} ass, drumming up business,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.fetish === "masochist") {
+				vignettes.push({
+					text: `${he} cooperated with a citizen who wanted to whip ${his} tits black and blue,`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.health < 20) {
+			vignettes.push({
+				text: `${he} attracted the attention of a slaveowner alarmed by ${his} poor health, and thought they seemed kind,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.vaginalSkill >= 100) {
+			vignettes.push({
+				text: `${he} was hired to apply ${his} skills to a customer's virgin son,`,
+				type: "devotion",
+				effect: 0,
+			});
+		}
+		if (canDoAnal(slave) && slave.analSkill < 100 && slave.anus < 2) {
+			vignettes.push({
+				text: `a guy with a huge cock paid for the right to fuck ${him} in ${his} tight ass all night,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.relationship <= -2 && slave.intelligence < 1) {
+			vignettes.push({
+				text: `${he} accidentally mentions how much ${he} loves you during intercourse with a customer who doesn't like to share,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.prestige > 0) {
+			vignettes.push({
+				text: `a college fraternity visiting the arcology for rush week hired ${him} for a gangbang,`,
+				type: "cash",
+				effect: 3,
+			});
+		}
+
+		if (V.arcologies[0].FSSupremacist !== "unset" && slave.race === V.arcologies[0].FSSupremacistRace) {
+			vignettes.push({
+				text: `${he} lost a customer who couldn't bear to see a beautiful ${V.arcologies[0].FSSupremacistRace} be a whore,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSSubjugationist !== "unset" && slave.race === V.arcologies[0].FSSubjugationistRace) {
+			vignettes.push({
+				text: `${he} had a bad time in general, since most of ${his} customers didn't care about a ${V.arcologies[0].FSSubjugationistRace} prostitute's health or well-being,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
+			if (slave.visualAge > 35) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who wants to keep their MILF fetish in the closet,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
+			if (slave.visualAge <= 20) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who wants to keep their fetish for young ${boy}s in the closet,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSGenderRadicalist !== "unset") {
+			if (slave.dick > 0 && slave.dick < 3) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who is coming to terms with Gender Radicalism, and is unthreatened by ${his} little penis,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSGenderFundamentalist !== "unset" && slave.visualAge > 25) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who thinks ${he} resembles their ex-wife, who would never let them fuck her butt,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRepopulationFocus !== "unset") {
+			if (slave.pregType > 1 && slave.pregKnown > 1 && slave.belly >= 10000) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who loves fucking ${boy}s with wombs filled by more than a single child,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSRestart !== "unset" && canGetPregnant(slave)) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who misses the risk of getting a ${boy} pregnant,`,
+				type: "cash",
+				effect: 3,
+			});
+		}
+		if (V.arcologies[0].FSPaternalist !== "unset") {
+			if (slave.intelligence > 1) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who likes to chat with intelligent prostitutes while fucking,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSDegradationist !== "unset" && canTalk(slave) && slave.voice > 2) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who prefers ${boy}s with high-pitched screams,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSBodyPurist !== "unset") {
+			if (slave.boobsImplant > 0) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who wants to keep their fetish for breast implants in the closet,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSTransformationFetishist !== "unset" && slave.boobsImplant === 0) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who wants to keep their fetish for natural breasts in the closet,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
+			if (canTalk(slave) && slave.voice > 2) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who loves ${his} high-pitched squeals of pleasure,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (slave.boobs > 800) {
+				vignettes.push({
+					text: `${he} was publicly mocked as an ugly fat cow with dangling udders,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		} else if (V.arcologies[0].FSAssetExpansionist !== "unset" && slave.boobs < 300) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who wants to keep their fetish for flat chested ${boy}s in the closet,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSPastoralist !== "unset") {
+			if (slave.lactation === 0) {
+				vignettes.push({
+					text: `${he} lost a customer who could not understand why nothing was coming out of ${his} nipples when they sucked on them,`,
+					type: "cash",
+					effect: -1,
+				});
+			}
+			if (slave.nipples === "fuckable") {
+				vignettes.push({
+					text: `${he} lost a customer who refused ${he} could possibly be a proper cow with nipples like ${his},`,
+					type: "cash",
+					effect: -1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSPhysicalIdealist !== "unset" && slave.muscles <= 95) {
+			vignettes.push({
+				text: `${he} lost a customer who could barely believe that ${he} wasn't capable of holding ${himself} in a handstand,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSChattelReligionist !== "unset" && slave.behavioralFlaw === "devout") {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who desperately wants their cock to be the one that converts ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRomanRevivalist !== "unset" && slave.race === "white" && slave.height >= 185) {
+			vignettes.push({
+				text: `${he} attracted a customer who thought ${his} appearance worthy of a lusty northern barbarian,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSAztecRevivalist !== "unset" && slave.devotion > 75 && slave.intelligence >= 2) {
+			vignettes.push({
+				text: `${he} indulged a citizen by following a fertility ritual completely,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
+			vignettes.push({
+				text: `${he} got extra business from a group of citizens competing to get off with whores of each of the arcology's ethnic groups in the least time,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEdoRevivalist !== "unset" && slave.face > 40 && slave.intelligence > 1) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who wished to do nothing more than converse with a beautiful and intelligent ${boy},`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSArabianRevivalist !== "unset" && slave.entertainSkill >= 100 && canTalk(slave) && slave.voice > 0 && slave.accent < 2) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who prefers prostitutes who can tell lovely stories,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+
+		vignettes.push({
+			text: `one of the companies with an office in your arcology retained ${him} for a team-building bukkake party for its employees,`,
+			type: "rep",
+			effect: 1,
+		});
+		vignettes.push({
+			text: "a man dragged his crying wife along so she could watch him fuck a whore,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: "a woman dragged her angry husband along so he could watch her get eaten out by a whore,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you loving ${him},`,
+			type: "devotion",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you letting a customer hurt ${him},`,
+			type: "devotion",
+			effect: -1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you protecting ${him} from a mean customer,`,
+			type: "trust",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you selling ${him} for good,`,
+			type: "trust",
+			effect: -1,
+		});
+	} else if (slave.assignment === "serve the public" || slave.assignment === "serve in the club") {
+		let seed = jsRandom(1, 10);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a domestic dispute over another slut,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw an aphrodisiac addict ${he} knew sell herself into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} had to move to follow the <span class="green">most prominent citizens</span> to a newly fashionable hall,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that a citizen used a new and improved sex toy on ${him},`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 5:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was being used in public by an incestuous pair of citizens,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 6:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a notorious slut come of age and start swapping anal for aphrodisiacs,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 7:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a citizen experiment with lesbian sex for the first time, in public,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 8:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen descend into aphrodisiac addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 9:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen develop the beginnings of sex addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a citizen using a public slut so brutally that they had to pay compensation afterward,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `a citizen punished one of his slaves by tying her up in public near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a citizen shared one of his slaves with the public near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a private brothel offered a promotion near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `some free sluts threw an aphrodisiac street party near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `a contract breaker was punished with the pillory near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `one of ${his} regular patrons got a divorce and came to ${him} for repeated consolation,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a club near where ${slave.slaveName} usually works had business trouble,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a competing slut that looks like ${him} fell ill, driving a patron to look for an alternative,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `a street slut that works near ${him} was badly beaten by an abusive citizen and had to take time off. The reduced competition got ${his} more attention,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `an influx of tourists came into ${his} part of the arcology, earning ${him} more business for a day,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+		}
+
+		if (slave.fetishKnown === 1) {
+			switch (slave.fetish) {
+				case "submissive":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen with ${his} sincere submission to them,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} lost a patron who secretly wanted ${him} to show a little initiative,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "cumslut":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen with ${his} hunger for their cum,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much cum fetishes revolted them until ${he} displayed ${hers},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "humiliation":
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who didn't know how much they liked public sex until ${he} got them to try it,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much exhibitionism turned them off until they tried public sex with ${him},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "buttslut":
+					if (canDoAnal(slave)) {
+						vignettes.push({
+							text: `${he} earned extra gratitude from a citizen who didn't know how much they liked fucking buttholes until ${he} got them to try fucking ${hers},`,
+							type: "rep",
+							effect: 1,
+						});
+						vignettes.push({
+							text: `${he} disgusted a citizen who didn't know how much buttsex turned them off until ${he} got them to try fucking ${his} ass,`,
+							type: "rep",
+							effect: -1,
+						});
+					}
+					if (slave.butt >= 3) {
+						vignettes.push({
+							text: `${he} earned extra gratitude from a citizen who didn't know how much they liked big butts until ${he} gave them a lap dance they'll never forget,`,
+							type: "rep",
+							effect: 1,
+						});
+					}
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who appreciated a nice rear, even if it is off limits,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much butts turned them off until ${he} put ${his} hands on theirs,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "boobs":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen by orgasming to nothing but the feeling of them sucking ${his} nipples,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disappointed a female citizen who didn't know how uninterested she was in nipple play before trying it,`,
+						type: "rep",
+						effect: -1,
+					});
+					if (slave.nipples === "fuckable") {
+						vignettes.push({
+							text: `${he} left lasting impression on a pair of citizens after nearly passing out from a series of intense orgasms from getting ${his} nipples fucked,`,
+							type: "rep",
+							effect: 2,
+						});
+					}
+					break;
+				case "sadist":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen who brought their own slave to ${his} for abuse with ${his} sadism,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `a citizen brought ${him} their own slave to abuse, but the sight proved to be a turn off,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "masochist":
+					vignettes.push({
+						text: `${he} helped a citizen discover a new fetish by orgasming when they accidentally hurt ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disturbed a citizen who accidentally hurt ${him} by orgasming,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "dom":
+					vignettes.push({
+						text: `${he} made a female citizen ${his} bitch: fortunately, the citizen wanted to be ${his} bitch and came back for more`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} accidentally overwhelmed a citizen with ${his} sexual dominance,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "pregnancy":
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who didn't know how much they liked pregnancy play until ${he} begged them to knock ${him} up,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much pregnancy play turned them off until ${he} begged them to knock ${him} up,`,
+						type: "rep",
+						effect: -1,
+					});
+			}
+		}
+		switch (slave.behavioralFlaw) {
+			case "arrogant":
+				vignettes.push({
+					text: `${he} manages to give a citizen the impression ${he} thinks ${himself} better than them,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "bitchy":
+				vignettes.push({
+					text: `${he} makes an emasculating remark to a citizen right after they fuck ${him},`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "odd":
+				vignettes.push({
+					text: `${he} infuriates a potential citizen with ${his} nervous tics,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates men":
+				vignettes.push({
+					text: `${his} disgust towards men surfaces at a bad time, angering a male citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates women":
+				vignettes.push({
+					text: `${his} disgust towards women surfaces at a bad time, angering a female citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "gluttonous":
+				vignettes.push({
+					text: `${he} accidentally lingers at a meal, missing an appointment with a citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "anorexic":
+				vignettes.push({
+					text: `${his} bulimia surfaces at an extremely inopportune moment, turning a citizen off,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "devout":
+				vignettes.push({
+					text: `a citizen catches ${him} praying to ${himself} as they inserts themsleves into ${him}, turning them off,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "liberated":
+				vignettes.push({
+					text: `${he} treats a rude citizen impolitely, because ${he} thinks that's fair,`,
+					type: "rep",
+					effect: -1,
+				});
+		}
+		switch (slave.sexualFlaw) {
+			case "hates oral":
+				vignettes.push({
+					text: `${he} vomits while trying to deepthroat a citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates anal":
+				vignettes.push({
+					text: `${he} cries while taking anal from a citizen who isn't into painal,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates penetration":
+				vignettes.push({
+					text: `${he} cries while taking a pounding from a citizen who likes their sex consensual,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "shamefast":
+				vignettes.push({
+					text: `${he} cries while a citizen looks ${him} over,`,
+					type: "rep",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} disrobed so slowly that a horny citizen gave up on ${him},`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "idealistic":
+				vignettes.push({
+					text: `${he} cries when explaining to a citizen that sex with ${him} is free,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "repressed":
+				vignettes.push({
+					text: `${he} misunderstands a citizen's lewd requests, turning them off,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "apathetic":
+				vignettes.push({
+					text: `${he} fails to notice when a citizen achieves orgasm,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "neglectful":
+				vignettes.push({
+					text: `${he} brings a denial fetishest to orgasm three times without cumming ${himself}, impressing them completely,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "cum addict":
+				vignettes.push({
+					text: `${he}'s so focused on sucking down a client's cum that ${he} managed to drive them to repeated orgasm, earning their admiration once the feeling returns to their legs,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "anal addict":
+				vignettes.push({
+					text: `${he} takes an awe inspiring train of dicks in ${his} ass, well past the point where most would have passed out from pain,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "attention whore":
+				vignettes.push({
+					text: `${he} earned extra gratitude by drawing attention to a savvy businessman from their superiors,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "breast growth":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who never realized breast growth turned them on so much,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "abusive":
+				vignettes.push({
+					text: `${he} abuses a rival public servant so viciously that an catfight lover takes ${him} right there,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "malicious":
+				vignettes.push({
+					text: `${he} earned extra gratitude from a masochist who loved the way ${he} traced ${his} scars, and added some new ones,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "self hating":
+				vignettes.push({
+					text: `the way ${he} takes everything thrown at ${him} like nothing disturbs group of citizens, though one of them enjoys it more than they let on and comes to ${him} for sex later,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "breeder":
+				vignettes.push({
+					text: `${his} pregnancy obsession earns ${his} extra gratitude from a man with an intense pregnancy fetish,`,
+					type: "rep",
+					effect: 3,
+				});
+		}
+		switch (slave.behavioralQuirk) {
+			case "confident":
+				vignettes.push({
+					text: `${he} confidently presses forward with a wavering citizen, and gets them to fuck ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "cutting":
+				vignettes.push({
+					text: `${he} makes such a gloriously cutting remark to a male citizen that a female bystander takes ${him} right there,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "funny":
+				vignettes.push({
+					text: `${he} makes a group of citizens laugh so hard, one of them comes to ${him} for sex later,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "fitness":
+				vignettes.push({
+					text: `${he} continues a marathon gangbang past the point where most would have passed out,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "adores women":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular female patron,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "adores men":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular male patron,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "insecure":
+				vignettes.push({
+					text: `${he} successfully convinces a regular patron that they are reliant on ${him} emotionally,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "sinful":
+				vignettes.push({
+					text: `${he} helps a citizen get past their religious hangups through sex with the friendly neighborhood slut,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "advocate":
+				vignettes.push({
+					text: `${he} successfully convinces a wavering potential citizen that there's nothing wrong with banging a public slut,`,
+					type: "rep",
+					effect: 1,
+				});
+		}
+		switch (slave.sexualQuirk) {
+			case "gagfuck queen":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who's obsessed with gagfucks,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "painal queen":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who's obsessed with painal,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "strugglefuck queen":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who's obsessed with strugglefucking,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "tease":
+				vignettes.push({
+					text: `${he} convinces a citizen who's never had sex with a street slut to patronize ${his} with some truly inspired flirting,`,
+					type: "rep",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a few partygoers were so impressed with ${his} provocative teasing that they left ${his} sizeable tip,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "romantic":
+				vignettes.push({
+					text: `a citizen becomes infatuated with ${him}, since they are convinced ${he}'s infatuated with them,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "perverted":
+				vignettes.push({
+					text: `${he} earns some momentary notoriety by engaging in a previously unheard-of sex act,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "caring":
+				vignettes.push({
+					text: `${he} serves as an impromptu sounding board for a citizen having marital trouble,`,
+					type: "rep",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a citizen was so enamored with ${his} kind and caring manner than they proposed to ${him} and offered to take ${him} away, and when ${he} refused, they urged a sizable tip on ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+		}
+
+		if (slave.pitKills > 0) {
+			vignettes.push({
+				text: `${he} earns extra gratitude from a citizen obsessed with the fact that ${he}'s a killer,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.oralCount > 500) {
+			vignettes.push({
+				text: `a citizen into degradation becomes obsessed with driving ${his} oral mileage as high as possible,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.analCount > 500 && slave.anus > 0) {
+			vignettes.push({
+				text: `a citizen into degradation becomes obsessed with driving ${his} anal mileage as high as possible,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.vaginalCount > 500 && slave.vagina > 0) {
+			vignettes.push({
+				text: `a citizen into degradation becomes obsessed with driving ${his} pussy mileage as high as possible,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.devotion > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to please a citizen with tastes that disgusted ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.devotion < -50) {
+			vignettes.push({
+				text: `${his} fury at being sold for sex turned a citizen off before they could fuck ${him},`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.devotion <= 20) {
+			vignettes.push({
+				text: `${he} treasured a love token given to ${his} by a citizen ${he} fooled into thinking ${his} affection was real,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.trust > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to accept a citizen with tastes that frightened ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.trust < -50) {
+			vignettes.push({
+				text: `${his} tearful terror at being forced to offer ${himself} for sex turned a citizen off before they could fuck ${him},`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.livingRules === "luxurious") {
+			vignettes.push({
+				text: `${he} got a truly perfect night's sleep, which put ${his} in the right frame of mind for the whole day,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.livingRules === "spare") {
+			vignettes.push({
+				text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+			vignettes.push({
+				text: `a citizen asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.releaseRules === "restrictive") {
+			vignettes.push({
+				text: `a citizen asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
+				type: "rep",
+				effect: 0,
+			});
+		} else {
+			vignettes.push({
+				text: `a closeted female citizen asked about ${his} sex life with other slaves, and was enthralled by ${his} answer,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.health > 80) {
+			vignettes.push({
+				text: `a potential citizen in the medical field was fascinated by ${his} health, and spent almost as much time examining ${him} as they did having sex with ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+			if (slave.weight < 10) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who misses ${boy}s without a spare tire around their middle,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight < 95) {
+				vignettes.push({
+					text: `a potential citizen told ${his} that they are looking forward to patronizing ${his} once ${he} gains a lot more weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who loves them big and soft`,
+					type: "rep",
+					effect: 0,
+				});
+			}
+			if (slave.weight > 30) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who enjoyed the way ${his} middle jiggled as they fucked ${him},`,
+					type: "rep",
+					effect: 0,
+				});
+			}
+		} else {
+			if (slave.weight > 95) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} loses a lot of weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight > 30) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} loses some weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight <= -30) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} gains some weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight < -95) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} gains a lot of weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			}
+		}
+		if (slave.drugs === "testicle enhancement") {
+			vignettes.push({
+				text: `${he} took it in public, with ${his} copious ejaculation attracting more citizens,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.drugs === "hyper testicle enhancement") {
+			vignettes.push({
+				text: `${he} bloated a female citizen's belly with ${his} copious ejaculate, leading her to recommend your slaves for girls that want to look pregnant without actually getting pregnant,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex due to ${his} extreme aphrodisiac dosage turned a citizen off,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly pleased a citizen who loves desperate sluts,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly horrified a citizen who didn't realize how low a ${boy} could stoop,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.addict > 50) {
+			vignettes.push({
+				text: `${he} zoned out badly due to a low point between aphrodisiac doses, disappointing a citizen,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.bellyPreg >= 10000 || slave.bellyImplant >= 10000) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who likes to do nothing more than cuddle with ${his} swollen belly,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a night with guy who likes rough, hard sex with heavily pregnant ${boy}s took its toll on ${him}`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.bellyFluid >= 5000) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who loved the way ${his} belly sloshed and moved to their teasing,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disgusted a citizen when his forceful fucking caused ${him} to release ${his} contained ${slave.inflationType} all over them,`,
+				type: "rep",
+				effect: -2,
+			});
+		}
+		if (slave.hormoneBalance >= 100 && !canAchieveErection(slave)) {
+			if (slave.dick > 0) {
+				vignettes.push({
+					text: `${he} disappointed a citizen who was sure they could get ${slave.slaveName}'s cock erect,`,
+					type: "rep",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who seems unthreatened by ${his} soft dick,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (slave.hormoneBalance <= -100 && slave.dick === 0) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a female citizen who adores the masculinity produced by ${slave.slaveName}'s hormone regime,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.dick > 0 && canPenetrate(slave)) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who likes to see his wife get fucked by a dick${boy} whore,`,
+				type: "rep",
+				effect: 1,
+			});
+			if (slave.dick > 3) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a female citizen who likes big stiff cocks, and cannot lie,`,
+					type: "rep",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `${he} irritated a male citizen who brought his girlfriend with him by accidentally showing him up,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.balls > 3) {
+			vignettes.push({
+				text: `${he} disappoints a citizen who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (canDoVaginal(slave)) {
+			if (slave.vagina === 1) {
+				vignettes.push({
+					text: `${he} got extra attention from a citizen who really likes ${him}, and wants to fuck ${his} pussy as much as possible while it's still tight,`,
+					type: "rep",
+					effect: 1,
+				});
+			} else if (slave.vagina > 2) {
+				vignettes.push({
+					text: `${he} disappointed a citizen whose cock is just too small for ${his} big cunt,`,
+					type: "rep",
+					effect: -1,
+				});
+				if (slave.behavioralQuirk === "cutting" && slave.intelligence >= 2) {
+					vignettes.push({
+						text: `${he} helped a citizen discover a new fetish by making cutting remarks when their cock was too small for ${his} big cunt,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.behavioralFlaw === "bitchy") {
+					vignettes.push({
+						text: `${he} irritated a male citizen with ${his} complaints that they were too small to please ${him},`,
+						type: "rep",
+						effect: -3,
+					});
+				}
+			}
+		}
+		if (canDoAnal(slave)) {
+			if (slave.anus === 1) {
+				vignettes.push({
+					text: `${he} got extra attention from a citizen who really likes ${his} butthole, and wants to fuck it as much as possible while it's still tight,`,
+					type: "rep",
+					effect: 1,
+				});
+			} else if (slave.anus > 2) {
+				vignettes.push({
+					text: `${he} disappointed a citizen whose cock is just too small for ${his} loose butthole,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.face > 40) {
+			vignettes.push({
+				text: `${he} lost a potential citizen who was so intimidated by ${his} great beauty that they decided to find a homelier whore,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.face < -10) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who lacks self-confidence, and is more comfortable with homely whores,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.visualAge > 40) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen with serious mommy issues,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.lips > 70) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who likes to play with ${his} lips nonsexually (don't ask),`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (!canTalk(slave)) {
+			vignettes.push({
+				text: `${he} impressed a citizen who didn't know how relaxing a ${boy} who can't talk could be,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.muscles > 95) {
+			vignettes.push({
+				text: `${he} impressed a citizen who was so eager to share workout plans with ${him} that they almost forgot to have sex with ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} gained extra gratitude from a female citizen who likes a ${boy} who can bench-press her before and after they fuck,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disappointed a citizen by accidentally revealing that ${he}'s considerably stronger than him,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.lactation > 0) {
+			vignettes.push({
+				text: `${he} provided fresh milk for the coffee served at a citizen's business meeting,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} provided fresh milk at a trendy arcology coffeehouse,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.amp === 1) {
+			vignettes.push({
+				text: `${he} disappointed a citizen who thought they would enjoy fucking an amputee, but found it revolting,`,
+				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,`,
+					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,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.fetish === "mindbroken") {
+			vignettes.push({
+				text: `a citizen really enjoyed being able to treat ${him} however they liked without eliciting a reaction,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.intelligence <= -2) {
+			vignettes.push({
+				text: `a low-class citizen who had no business fucking ${him} managed to trick ${him} into fucking him anyway,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.face > 10 && canDoAnal(slave)) {
+			if (slave.dick > 0) {
+				if (slave.fetish === "buttslut" && jsRandom(0, 100) < 50) {
+					vignettes.push({
+						text: `a citizen was surprised by ${his} penis, so ${he} hid it and enjoyed the buttsex without touching it,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.fetish === "buttslut") {
+					vignettes.push({
+						text: `a citizen was surprised by ${his} penis, so ${he} hid it and skillfully pretended to be a real girl,`,
+						type: "rep",
+						effect: -1,
+					});
+				} else if (slave.analSkill >= 100) {
+					vignettes.push({
+						text: `a citizen was surprised by ${his} penis, so ${he} hid it, but could barely tolerate anal without touching it`,
+						type: "rep",
+						effect: 1,
+					});
+				}
+			}
+			if (slave.analSkill < 100 && slave.anus > 2) {
+				vignettes.push({
+					text: `a pair of customers enticed by ${his} beauty but disappointed by ${his} loose butthole doubled up on ${his} poor anus without mercy,`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.fetishKnown === 1 && slave.fetishStrength > 95) {
+			if (slave.fetish === "buttslut" || slave.fetish === "dom") {
+				vignettes.push({
+					text: `${he} showed off by forcing a slave in the stocks to eat ${his} ass`,
+					type: "rep",
+					effect: 1,
+				});
+			} else if (slave.fetish === "masochist") {
+				vignettes.push({
+					text: `${he} cooperated with a customer who wanted to whip ${his} tits black and blue`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.health < 20) {
+			vignettes.push({
+				text: `${he} attracted the attention of a slaveowner alarmed by ${his} poor health, and thought he seemed kind,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.vaginalSkill >= 100) {
+			vignettes.push({
+				text: `${he} was brought in to apply ${his} skills to a prominent citizen's virgin son,`,
+				type: "devotion",
+				effect: 0,
+			});
+		}
+		if (canDoAnal(slave) && slave.analSkill < 100 && slave.anus < 2) {
+			vignettes.push({
+				text: `a guy with a huge cock insisted on fucking ${him} in ${his} tight ass all night,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.relationship <= -2 && slave.intelligence < 1) {
+			vignettes.push({
+				text: `${he} accidentally mentions how much ${he} loves you during intercourse with a citizen who doesn't like to share,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.prestige > 0) {
+			vignettes.push({
+				text: `a college fraternity visiting the arcology for rush week invited ${him} to a gangbang,`,
+				type: "rep",
+				effect: 3,
+			});
+		}
+
+		if (V.arcologies[0].FSSupremacist !== "unset" && slave.race === V.arcologies[0].FSSupremacistRace) {
+			vignettes.push({
+				text: `${he} disappointed a citizen who couldn't bear to see a beautiful ${V.arcologies[0].FSSupremacistRace} be a public slut,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSSubjugationist !== "unset" && slave.race === V.arcologies[0].FSSubjugationistRace) {
+			vignettes.push({
+				text: `${he} had a bad time in general, since most of the citizens who used ${him} didn't care about a ${V.arcologies[0].FSSubjugationistRace} prostitute's health or well-being,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
+			if (slave.visualAge > 35) {
+				vignettes.push({
+					text: `${he} gratified a citizen who wants to keep his MILF fetish in the closet,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
+			if (slave.visualAge <= 20) {
+				vignettes.push({
+					text: `${he} gratified a citizen who wants to keep his fetish for young ${boy} in the closet,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSGenderRadicalist !== "unset") {
+			if (slave.dick > 0 && slave.dick < 3) {
+				vignettes.push({
+					text: `${he} gratified a citizen who is coming to terms with Gender Radicalism, and is unthreatened by ${his} little penis,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSGenderFundamentalist !== "unset" && slave.visualAge > 25) {
+			vignettes.push({
+				text: `${he} gratified a citizen who thinks ${he} resembles his ex-wife, who would never let him fuck her butt,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRepopulationFocus !== "unset") {
+			if (slave.pregType > 1 && slave.pregKnown > 1 && slave.belly >= 10000) {
+				vignettes.push({
+					text: `${he} gratified a citizen who enjoys the feeling of a womb filled with more than a single child,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSRestart !== "unset" && canGetPregnant(slave)) {
+			vignettes.push({
+				text: `${he} gratified a citizen who misses the risk of getting a ${boy} pregnant,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSPaternalist !== "unset") {
+			if (slave.intelligence > 1) {
+				vignettes.push({
+					text: `${he} gratified a citizen who likes to chat with intelligent prostitutes as they fuck ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSDegradationist !== "unset" && canTalk(slave) && slave.voice > 2) {
+			vignettes.push({
+				text: `${he} gratified a citizen who prefers ${boy} with high-pitched screams,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSBodyPurist !== "unset") {
+			if (slave.boobsImplant > 0) {
+				vignettes.push({
+					text: `${he} gratified a citizen who wants to keep his fetish for breast implants in the closet,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSTransformationFetishist !== "unset" && slave.boobsImplant === 0) {
+			vignettes.push({
+				text: `${he} gratified a citizen who wants to keep his fetish for natural breasts in the closet,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
+			if (canTalk(slave) && slave.voice > 2) {
+				vignettes.push({
+					text: `${he} gratified a citizen who loves ${his} high-pitched squeals of pleasure,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (slave.boobs > 800) {
+				vignettes.push({
+					text: `${he} was publicly mocked as an ugly fat cow with dangling udders,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		} else if (V.arcologies[0].FSAssetExpansionist !== "unset" && slave.boobs < 300) {
+			vignettes.push({
+				text: `${he} gratified a citizen who wants to keep his fetish for flat chested ${boy}s in the closet,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSPastoralist !== "unset") {
+			if (slave.lactation === 0) {
+				vignettes.push({
+					text: `${he} disappointed a citizen who could not understand why nothing was coming out of ${his} nipples when he sucked on them,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+			if (slave.nipples === "fuckable") {
+				vignettes.push({
+					text: `${he} left a citizen deeply confused over how ${he} could possibly be a proper cow without suitable teats,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSPhysicalIdealist !== "unset" && slave.muscles <= 95) {
+			vignettes.push({
+				text: `${he} disappointed a citizen who could barely believe that ${he} wasn't capable of holding ${himself} in a handstand,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSChattelReligionist !== "unset" && slave.behavioralFlaw === "devout") {
+			vignettes.push({
+				text: `${he} gratified a citizen who desperately wants his cock to be the one that converts ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRomanRevivalist !== "unset" && slave.race === "white" && slave.height >= 185) {
+			vignettes.push({
+				text: `${he} gratified a citizen who thought ${his} appearance worthy of a lusty northern barbarian,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSAztecRevivalist !== "unset" && slave.devotion > 75 && slave.intelligence >= 2) {
+			vignettes.push({
+				text: `${he} indulged a citizen by following a fertility ritual completely,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
+			vignettes.push({
+				text: `${he} got extra attention from a group of citizens competing to get off with whores of each of the arcology's ethnic groups in the least time,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEdoRevivalist !== "unset" && slave.face > 40 && slave.intelligence > 1) {
+			vignettes.push({
+				text: `${he} gratified a citizen who wished to do nothing more than converse with a beautiful and intelligent ${boy},`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSArabianRevivalist !== "unset" && slave.entertainSkill >= 100 && canTalk(slave) && slave.voice > 0 && slave.accent < 2) {
+			vignettes.push({
+				text: `${he} gratified a citizen who prefers prostitutes who can tell lovely stories,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+
+		vignettes.push({
+			text: `one of the companies with an office in your arcology brought ${him} in for a team-building bukkake party for its employees,`,
+			type: "rep",
+			effect: 1,
+		});
+		vignettes.push({
+			text: "a man dragged his crying wife along so she could watch him fuck a public slut,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: "a woman dragged her angry husband along so he could watch his wife get eaten out by a public slut,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you loving ${him},`,
+			type: "devotion",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you letting a citizen hurt ${him},`,
+			type: "devotion",
+			effect: -1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you protecting ${him} from a mean citizen,`,
+			type: "trust",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you selling ${him} for good,`,
+			type: "trust",
+			effect: -1,
+		});
+	}
+	return jsEither(vignettes);
+};
+=======
 /*:: Slave Generation JS [script]*/
 
 window.generateAge = function generateAge(slave) {
diff --git a/src/js/vignettes.tw b/src/js/vignettes.tw
new file mode 100644
index 0000000000000000000000000000000000000000..001962099e700d336a9af9b6755b880210bbc725
--- /dev/null
+++ b/src/js/vignettes.tw
@@ -0,0 +1,2700 @@
+::VignettesJS[script]
+
+window.GetVignette = function GetVignette(slave) {
+	const V = State.variables;
+	let vignettes = [];
+
+	const pronouns = getPronouns(slave);
+	const he = pronouns.pronoun;
+	const him = pronouns.object;
+	const his = pronouns.possessive;
+	const hers = pronouns.posessivePronoun;
+	const himself = pronouns.objectReflexive;
+	const boy = pronouns.noun;
+
+
+	if (slave.assignment === "whore" || slave.assignment === "work in the brothel") {
+		let seed = jsRandom(1, 10);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a domestic dispute over another whore,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a free whore finally sink into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that construction forced ${him} to move from ${his} usual spot,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that a customer used a new and improved sex toy on ${him},`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 5:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was an appointment with an unusually perverted family,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 6:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a man sell his wife into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 7:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a woman sell her daughters into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 8:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen descend into aphrodisiac addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 9:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen develop the beginnings of sex addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a citizen administering a brutal public punishment to one of their slaves,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `a citizen punished one of his slaves by tying ${his} up in public near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a citizen shared one of his slaves with the public near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a private brothel offered a promotion near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `some free sluts threw an aphrodisiac street party near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `a contract breaker was punished with the pillory near where ${slave.slaveName} was working. This cut into ${his} business that day,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `one of ${his} regular customers got a divorce and came to ${him} for repeated consolation,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a brothel near where ${slave.slaveName} usually works had business trouble,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a competing whore that looks like ${him} fell ill, driving a customer to look for an alternative,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `a street whore that works near ${him} was badly beaten by an abusive customer and had to take time off. The reduced competition got ${him} more business,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `an influx of tourists came into ${his} part of the arcology, earning ${him} more business for a day,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+		}
+
+		if (slave.fetishKnown === 1) {
+			switch (slave.fetish) {
+				case "submissive":
+					vignettes.push({
+						text: `${he} deeply impressed a customer with ${his} sincere submission to them,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} lost a customer who secretly wanted ${him} to show a little initiative,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "cumslut":
+					vignettes.push({
+						text: `${he} deeply impressed a customer with ${his} hunger for their cum,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much cum fetishes revolted them until ${he} displayed ${his},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "humiliation":
+					vignettes.push({
+						text: `${he} earned repeat business from a customer who didn't know how much they liked public sex until ${he} got them to try it,`,
+						type: "cash",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much exhibitionism turned them off until they tried public sex with ${him},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "buttslut":
+					if (canDoAnal(slave)) {
+						vignettes.push({
+							text: `${he} earned repeat business from a customer who didn't know how much they liked fucking buttholes until ${he} got them to try fucking ${his},`,
+							type: "cash",
+							effect: 1,
+						});
+						vignettes.push({
+							text: `${he} disgusted a customer who didn't know how much buttsex turned them off until ${he} got them to try fucking ${his} ass,`,
+							type: "rep",
+							effect: -1,
+						});
+					}
+					if (slave.butt >= 3) {
+						vignettes.push({
+							text: `${he} earned repeat business from a customer who didn't know how much they liked big butts until ${he} gave them a lap dance they'll never forget,`,
+							type: "cash",
+							effect: 1,
+						});
+					}
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who appreciated a nice rear, even if it is off limits,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much butts turned them off until ${he} put ${his} hands on theirs,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "boobs":
+					vignettes.push({
+						text: `${he} deeply impressed a customer by orgasming to nothing but the feeling of them sucking ${his} nipples,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disappointed a female customer who didn't know how uninterested she was in nipple play before trying it,`,
+						type: "rep",
+						effect: -1,
+					});
+					if (slave.nipples === "fuckable") {
+						vignettes.push({
+							text: `${he} left a lasting impression on a pair of customers after nearly passing out from a series of intense orgasms from getting ${his} nipples fucked,`,
+							type: "cash",
+							effect: 2,
+						});
+					}
+					break;
+				case "sadist":
+					vignettes.push({
+						text: `${he} deeply impressed a customer who brought their own slave to ${him} for abuse with ${his} sadism,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `a customer brought ${him} their own slave to abuse, but the sight proved to be a turn off,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "masochist":
+					vignettes.push({
+						text: `${he} helped a customer discover a new fetish by orgasming when they accidentally hurt ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disturbed a customer who accidentally hurt ${him} by orgasming,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "dom":
+					vignettes.push({
+						text: `${he} made a female customer ${his} bitch: fortunately, the customer wanted to be ${his} bitch and came back for more,`,
+						type: "cash",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} accidentally overwhelmed a customer with ${his} sexual dominance,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "pregnancy":
+					vignettes.push({
+						text: `${he} earned repeat business from a customer who didn't know how much they liked pregnancy play until ${he} begged them to knock ${him} up,`,
+						type: "cash",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a customer who didn't know how much pregnancy play turned them off until ${he} begged them to knock ${him} up,`,
+						type: "rep",
+						effect: -1,
+					});
+			}
+		}
+		switch (slave.behavioralFlaw) {
+			case "arrogant":
+				vignettes.push({
+					text: `${he} manages to give a citizen the impression ${he} thinks ${himself} better than them,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "bitchy":
+				vignettes.push({
+					text: `${he} makes an emasculating remark to a customer right after they fuck ${him},`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "odd":
+				vignettes.push({
+					text: `${he} infuriates a potential customer with ${his} nervous tics,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "hates men":
+				vignettes.push({
+					text: `${his} disgust towards men surfaces at a bad time, losing ${him} a male customer,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "hates women":
+				vignettes.push({
+					text: `${his} disgust towards women surfaces at a bad time, losing ${him} a female customer,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "gluttonous":
+				vignettes.push({
+					text: `${he} accidentally lingers at a meal, missing a customer appointment,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "anorexic":
+				vignettes.push({
+					text: `${his} bulimia surfaces at an extremely inopportune moment, turning a customer off,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "devout":
+				vignettes.push({
+					text: `a customer catches ${him} praying to ${himself} as they inserts themselves into ${him}, turning them off,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "liberated":
+				vignettes.push({
+					text: `${he} treats a rude potential customer impolitely, because ${he} thinks that's fair,`,
+					type: "cash",
+					effect: -1,
+				});
+		}
+		switch (slave.sexualFlaw) {
+			case "hates oral":
+				vignettes.push({
+					text: `${he} vomits while trying to deepthroat a customer,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates anal":
+				vignettes.push({
+					text: `${he} cries while taking anal from a customer who isn't into painal,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates penetration":
+				vignettes.push({
+					text: `${he} cries while taking a pounding from a customer who likes their sex consensual,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "shamefast":
+				vignettes.push({
+					text: `${he} cries while a potential customer looks ${him} over,`,
+					type: "cash",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} disrobed so slowly that a potential customer gave up on ${him},`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "idealistic":
+				vignettes.push({
+					text: `${he} cries when explaining the price of ${his} body to a potential customer,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "repressed":
+				vignettes.push({
+					text: `${he} misunderstands a potential customer's lewd requests, turning them off,`,
+					type: "cash",
+					effect: -1,
+				});
+				break;
+			case "apathetic":
+				vignettes.push({
+					text: `${he} fails to notice when a customer achieves orgasm,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "neglectful":
+				vignettes.push({
+					text: `${he} brings a denial fetishist to orgasm three times without cumming ${himself}, earning their repeat business,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "cum addict":
+				vignettes.push({
+					text: `${he}'s so focused on sucking down a customer's cum that ${he} managed to drive them to repeated orgasm, earning their repeated business once they got the feeling back in their legs,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "anal addict":
+				vignettes.push({
+					text: `${he} takes a trio of dicks in ${his} ass without hesitation, earning repeat business from one of them thoroughly impressed by ${his} anal addiction,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "attention whore":
+				vignettes.push({
+					text: `${he} got repeat business from a man who loves fucking ${him} in the middle of crowded rooms,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "breast growth":
+				vignettes.push({
+					text: `${he} got repeat business from a woman with huge breasts who enjoys roleplaying her breast expansion fetishes with ${him},`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "abusive":
+				vignettes.push({
+					text: `${he} got repeat business from a man who loves physically abusive sex, though his testicles could only take so much in one week,`,
+					type: "cash",
+					effect: 2,
+				});
+				break;
+			case "malicious":
+				vignettes.push({
+					text: `${he} got repeat business from a masochistic woman who enjoys being whipped and degraded,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "self hating":
+				vignettes.push({
+					text: `${he} got repeat business from an abusive man who thoroughly enjoyed how diligently ${he} took it,`,
+					type: "cash",
+					effect: 3,
+				});
+				break;
+			case "breeder":
+				vignettes.push({
+					text: `${he} got repeat business from a pregnancy fetishist nearly driven mad with lust over ${his} pregnancy obsession,`,
+					type: "cash",
+					effect: 3,
+				});
+		}
+		switch (slave.behavioralQuirk) {
+			case "confident":
+				vignettes.push({
+					text: `${he} confidently presses forward with a wavering potential customer, and makes the sale,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "cutting":
+				vignettes.push({
+					text: `${he} makes such a gloriously cutting remark to a male customer that a female bystander comes to ${him} for repeat business,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "funny":
+				vignettes.push({
+					text: `${he} makes a group of citizens laugh so hard, one of them comes to ${him} for repeat business,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "fitness":
+				vignettes.push({
+					text: `${he} continues a marathon gangbang past the point where most would have passed out,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "adores women":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular female customer,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "adores men":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular male customer,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "insecure":
+				vignettes.push({
+					text: `${he} successfully convinces a regular customer that ${he}'s reliant on them emotionally,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "sinful":
+				vignettes.push({
+					text: `${he} helps a customer get past their religious hangups through sex with the friendly neighborhood whore,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "advocate":
+				vignettes.push({
+					text: `${he} successfully convinces a wavering potential customer that there's nothing wrong with banging a whore,`,
+					type: "cash",
+					effect: 1,
+				});
+		}
+		switch (slave.sexualQuirk) {
+			case "gagfuck queen":
+				vignettes.push({
+					text: `${he} earns repeat business from a citizen who's obsessed with gagfucks,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "painal queen":
+				vignettes.push({
+					text: `${he} earns repeat business from a citizen who's obsessed with painal,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "strugglefuck queen":
+				vignettes.push({
+					text: `${he} earns repeat business from a citizen who's obsessed with strugglefucking,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "tease":
+				vignettes.push({
+					text: `${he} convinces a citizen who's never had sex with a prostitute to patronize ${him} with some truly inspired flirting,`,
+					type: "cash",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a few partiers were so impressed with ${his} provocative teasing that they repeated ${his} wit to friends,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "romantic":
+				vignettes.push({
+					text: `a citizen becomes infatuated with ${him}, since they are convinced ${he}'s infatuated with them,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "perverted":
+				vignettes.push({
+					text: `${he} earns some momentary notoriety by engaging in a previously unheard-of sex act,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "caring":
+				vignettes.push({
+					text: `${he} serves as an impromptu sounding board for a customer having marital trouble,`,
+					type: "cash",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a customer was so enamored with ${his} kind and caring manner than they proposed to ${him} and offered to take ${him} away, and when ${he} refused, they left a sizable tip,`,
+					type: "cash",
+					effect: 1,
+				});
+		}
+
+		if (slave.pitKills > 0) {
+			vignettes.push({
+				text: `${he} earns repeat business from a customer obsessed with the fact that ${he}'s a killer,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.oralCount > 500) {
+			vignettes.push({
+				text: `a customer into degradation becomes obsessed with driving ${his} oral mileage as high as possible,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.analCount > 500 && slave.anus > 0) {
+			vignettes.push({
+				text: `a customer into degradation becomes obsessed with driving ${his} anal mileage as high as possible,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.vaginalCount > 500 && slave.vagina > 0) {
+			vignettes.push({
+				text: `a customer into degradation becomes obsessed with driving ${his} pussy mileage as high as possible,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.devotion > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to please a customer with tastes that disgusted ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.devotion < -50) {
+			vignettes.push({
+				text: `${his} fury at being sold for sex turned a customer off before they could fuck ${him},`,
+				type: "cash",
+				effect: -1,
+			});
+		} else if (slave.devotion <= 20) {
+			vignettes.push({
+				text: `${he} treasured a love token given to ${him} by a customer ${he} fooled into thinking ${his} affection was real,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.trust > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to accept a customer with tastes that frightened ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.trust < -50) {
+			vignettes.push({
+				text: `${his} tearful terror at being forced to sell ${himself} for sex turned a customer off before they could fuck ${him},`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (slave.livingRules === "luxurious") {
+			vignettes.push({
+				text: `${he} got a truly perfect night's sleep, which put ${him} in the right frame of mind for the whole day,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.livingRules === "spare") {
+			vignettes.push({
+				text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+			vignettes.push({
+				text: `a customer asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.releaseRules === "restrictive") {
+			vignettes.push({
+				text: `a customer asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
+				type: "cash",
+				effect: 0,
+			});
+		} else {
+			vignettes.push({
+				text: `a closeted female customer asked about ${his} sex life with ot${his} slaves, and was enthralled by ${his} answer,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.health > 80) {
+			vignettes.push({
+				text: `a potential customer in the medical field was fascinated by ${his} health, and spent almost as much time examining ${him} as they did having sex with ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+			if (slave.weight < 10) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a customer who misses ${boy}s without a spare tire around their middle,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.weight < 95) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} gains a lot more weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a customer who loves them big and soft`,
+					type: "cash",
+					effect: 0,
+				});
+			}
+			if (slave.weight > 30) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a customer who enjoyed the way ${his} middle jiggled as they fucked ${him},`,
+					type: "cash",
+					effect: 0,
+				});
+			}
+		} else {
+			if (slave.weight > 95) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} loses a lot of weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else if (slave.weight > 30) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} loses some weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else if (slave.weight <= -30) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} gains some weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			} else if (slave.weight < -95) {
+				vignettes.push({
+					text: `a potential customer told ${him} that they are looking forward to patronizing ${him} once ${he} gains a lot of weight,`,
+					type: "cash",
+					effect: 0,
+				});
+			}
+		}
+		if (slave.drugs === "testicle enhancement") {
+			vignettes.push({
+				text: `${he} took it in public, with ${his} copious ejaculation getting ${him} another customer right away,`,
+				type: "cash",
+				effect: 1,
+			});
+		} else if (slave.drugs === "hyper testicle enhancement") {
+			vignettes.push({
+				text: `${he} bloated a female customer's belly with ${his} copious ejaculate, leading her to say she is looking forward to come back and get filled again,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex due to ${his} extreme aphrodisiac dosage turned a potential customer off,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly pleased a customer who loves desperate ${boy}s,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly horrified a customer who didn't realize how low a ${boy} could stoop,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.addict > 50) {
+			vignettes.push({
+				text: `${he} zoned out badly due to a low point between aphrodisiac doses, disappointing a customer,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.bellyPreg >= 10000 || slave.bellyImplant >= 10000) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who likes to do nothing more than cuddle with ${his} swollen belly,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a night with guy who likes rough, hard sex with heavily pregnant ${boy}s took its toll on ${him},`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.bellyFluid >= 5000) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who loved the way ${his} belly moved as they fucked ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disgusted a customer when their forceful fucking caused ${him} to release ${his} contained ${slave.inflationType} all over them,`,
+				type: "rep",
+				effect: -2,
+			});
+		}
+		if (slave.hormoneBalance >= 100 && !canAchieveErection(slave)) {
+			if (slave.dick > 0) {
+				vignettes.push({
+					text: `${he} disappointed a customer who was sure they could get ${slave.slaveName}'s cock erect,`,
+					type: "rep",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} earned repeat business from a customer who seems unthreatened by ${his} soft dick,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (slave.hormoneBalance <= -100 && slave.dick === 0) {
+			vignettes.push({
+				text: `${he} earned repeat business from a female customer who adores the masculinity produced by ${slave.slaveName}'s hormone regime,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.dick > 0 && canPenetrate(slave)) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who likes to see his wife get fucked by a dick${boy} whore,`,
+				type: "cash",
+				effect: 1,
+			});
+			if (slave.dick > 3) {
+				vignettes.push({
+					text: `${he} earned repeat business from a female customer who likes big stiff cocks, and cannot lie,`,
+					type: "cash",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `${he} irritated a male customer who brought his girlfriend with him by accidentally showing him up,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.balls > 3) {
+			vignettes.push({
+				text: `${he} loses a customer who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (canDoVaginal(slave)) {
+			if (slave.vagina === 1) {
+				vignettes.push({
+					text: `${he} got extra business from a customer who really likes ${him}, and wants to fuck ${his} pussy as much as possible while it's still tight,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.vagina > 2) {
+				vignettes.push({
+					text: `${he} disappointed a customer whose cock is just too small for ${his} big cunt,`,
+					type: "rep",
+					effect: -1,
+				});
+				if (slave.behavioralQuirk === "cutting" && slave.intelligence >= 2) {
+					vignettes.push({
+						text: `${he} helped a customer discover a new fetish by making cutting remarks when their cock was too small for ${his} big cunt,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.behavioralFlaw === "bitchy") {
+					vignettes.push({
+						text: `${he} irritated a male customer with ${his} complaints that they were too small to please ${him},`,
+						type: "rep",
+						effect: -2,
+					});
+				}
+			}
+		}
+		if (canDoAnal(slave)) {
+			if (slave.anus === 1) {
+				vignettes.push({
+					text: `${he} got extra business from a customer who really likes ${his} butthole, and wants to fuck it as much as possible while it's still tight,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.anus > 2) {
+				vignettes.push({
+					text: `${he} disappointed a customer whose cock is just too small for ${his} loose butthole,`,
+					type: "rep",
+					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,`,
+				type: "cash",
+				effect: -1,
+			});
+		} else if (slave.face < -10) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who lacks self-confidence, and is more comfortable with homely whores,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.visualAge > 40) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer with serious mommy issues,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.lips > 70) {
+			vignettes.push({
+				text: `${he} earned repeat business from a customer who likes to play with ${his} lips nonsexually (don't ask),`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (!canTalk(slave)) {
+			vignettes.push({
+				text: `${he} impressed a customer who didn't know how relaxing a ${boy} who can't talk could be,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.muscles > 95) {
+			vignettes.push({
+				text: `${he} impressed a customer who was so eager to share workout plans with ${him} that they almost forgot to have sex with ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} gained repeat business from a female customer who likes a ${boy} who can bench-press her before and after they fuck,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disappointed a customer by accidentally revealing that ${he}'s considerably stronger than them,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.lactation > 0) {
+			vignettes.push({
+				text: `${he} was well compensated for providing fresh milk for the coffee served at a customer's business meeting,`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} served as a conveniently lactating whore near a trendy arcology coffeehouse,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.amp === 1) {
+			vignettes.push({
+				text: `${he} disappointed a customer who thought they would enjoy fucking an amputee, but found it revolting,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -1) {
+			vignettes.push({
+				text: `a strange customer was excited by the sight of ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a customer was disgusted at the thought of ${his} basic prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+			vignettes.push({
+				text: `a customer was put off by ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -2) {
+			vignettes.push({
+				text: `a customer was excited by ${his} vibrating fingertips,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "cash",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a customer was put off by ${his} crude artificial limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -3) {
+			vignettes.push({
+				text: `a strange customer was excited by the sight of ${his} artificial limbs,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "cash",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a customer was put off by the sight of ${his} prosthetic limbs,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.amp === -4) {
+			vignettes.push({
+				text: `a customer was excited by the thought of having sex with a slave with p-limbs, but was scared off by ${his} combat p-limbs,`,
+				type: "cash",
+				effect: -1,
+			});
+			vignettes.push({
+				text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,",
+				type: "cash",
+				effect: 0,
+			});
+			vignettes.push({
+				text: `a customer was greatly intimidated by ${his} combat p-limbs,`,
+				type: "cash",
+				effect: -1,
+			});
+		} else if (slave.amp === -5) {
+			vignettes.push({
+				text: `a customer was fascinated by ${his} cybernetic limbs, and spent almost as much time examining them as they did having sex with ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+			vignettes.push({
+				text: "a customer was excited by the thought of having sex with a cybernetically enhanced slave,",
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a customer was greatly intimidated by the sight of ${his} cybernetic limbs and was frightened away,`,
+				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.vaginalAccessory === "chastity belt") {
+			vignettes.push({
+				text: `a wavering customer who was disappointed that ${his} pussy is unavailable decided to try ${his} ass instead,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.fetish === "mindbroken") {
+			vignettes.push({
+				text: `a customer really enjoyed being able to treat ${him} however they liked without eliciting a reaction,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (slave.intelligence <= -2) {
+			vignettes.push({
+				text: `a customer managed to trick ${him} into fucking him without payment,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (slave.face > 10 && canDoAnal(slave)) {
+			if (slave.dick > 0) {
+				if (slave.fetish === "buttslut" && jsRandom(0, 100) < 50) {
+					vignettes.push({
+						text: `a customer was surprised by ${his} penis, so ${he} hid it and enjoyed the buttsex without touching it,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.fetish === "buttslut") {
+					vignettes.push({
+						text: `a customer was surprised by ${his} penis, so ${he} hid it, but could barely tolerate anal without touching it,`,
+						type: "rep",
+						effect: -1,
+					});
+				} else if (slave.analSkill >= 100) {
+					vignettes.push({
+						text: `a customer was surprised by ${his} penis, so ${he} hid it and skillfully pretended to be a real girl,`,
+						type: "rep",
+						effect: 1,
+					});
+				}
+			}
+			if (slave.analSkill < 100 && slave.anus > 2) {
+				vignettes.push({
+					text: `a pair of customers enticed by ${his} beauty but disappointed by ${his} loose butthole doubled up on ${his} poor anus without mercy,`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.fetishKnown === 1 && slave.fetishStrength > 95) {
+			if (slave.fetish === "buttslut" || slave.fetish === "dom") {
+				vignettes.push({
+					text: `${he} advertised ${himself} by forcing a slave in the stocks to eat ${his} ass, drumming up business,`,
+					type: "cash",
+					effect: 1,
+				});
+			} else if (slave.fetish === "masochist") {
+				vignettes.push({
+					text: `${he} cooperated with a citizen who wanted to whip ${his} tits black and blue,`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.health < 20) {
+			vignettes.push({
+				text: `${he} attracted the attention of a slaveowner alarmed by ${his} poor health, and thought they seemed kind,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.vaginalSkill >= 100) {
+			vignettes.push({
+				text: `${he} was hired to apply ${his} skills to a customer's virgin son,`,
+				type: "devotion",
+				effect: 0,
+			});
+		}
+		if (canDoAnal(slave) && slave.analSkill < 100 && slave.anus < 2) {
+			vignettes.push({
+				text: `a guy with a huge cock paid for the right to fuck ${him} in ${his} tight ass all night,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.relationship <= -2 && slave.intelligence < 1) {
+			vignettes.push({
+				text: `${he} accidentally mentions how much ${he} loves you during intercourse with a customer who doesn't like to share,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.prestige > 0) {
+			vignettes.push({
+				text: `a college fraternity visiting the arcology for rush week hired ${him} for a gangbang,`,
+				type: "cash",
+				effect: 3,
+			});
+		}
+
+		if (V.arcologies[0].FSSupremacist !== "unset" && slave.race === V.arcologies[0].FSSupremacistRace) {
+			vignettes.push({
+				text: `${he} lost a customer who couldn't bear to see a beautiful ${V.arcologies[0].FSSupremacistRace} be a whore,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSSubjugationist !== "unset" && slave.race === V.arcologies[0].FSSubjugationistRace) {
+			vignettes.push({
+				text: `${he} had a bad time in general, since most of ${his} customers didn't care about a ${V.arcologies[0].FSSubjugationistRace} prostitute's health or well-being,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
+			if (slave.visualAge > 35) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who wants to keep their MILF fetish in the closet,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
+			if (slave.visualAge <= 20) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who wants to keep their fetish for young ${boy}s in the closet,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSGenderRadicalist !== "unset") {
+			if (slave.dick > 0 && slave.dick < 3) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who is coming to terms with Gender Radicalism, and is unthreatened by ${his} little penis,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSGenderFundamentalist !== "unset" && slave.visualAge > 25) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who thinks ${he} resembles their ex-wife, who would never let them fuck her butt,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRepopulationFocus !== "unset") {
+			if (slave.pregType > 1 && slave.pregKnown > 1 && slave.belly >= 10000) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who loves fucking ${boy}s with wombs filled by more than a single child,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSRestart !== "unset" && canGetPregnant(slave)) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who misses the risk of getting a ${boy} pregnant,`,
+				type: "cash",
+				effect: 3,
+			});
+		}
+		if (V.arcologies[0].FSPaternalist !== "unset") {
+			if (slave.intelligence > 1) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who likes to chat with intelligent prostitutes while fucking,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSDegradationist !== "unset" && canTalk(slave) && slave.voice > 2) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who prefers ${boy}s with high-pitched screams,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSBodyPurist !== "unset") {
+			if (slave.boobsImplant > 0) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who wants to keep their fetish for breast implants in the closet,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSTransformationFetishist !== "unset" && slave.boobsImplant === 0) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who wants to keep their fetish for natural breasts in the closet,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
+			if (canTalk(slave) && slave.voice > 2) {
+				vignettes.push({
+					text: `${he} got repeat business from a customer who loves ${his} high-pitched squeals of pleasure,`,
+					type: "cash",
+					effect: 1,
+				});
+			}
+			if (slave.boobs > 800) {
+				vignettes.push({
+					text: `${he} was publicly mocked as an ugly fat cow with dangling udders,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		} else if (V.arcologies[0].FSAssetExpansionist !== "unset" && slave.boobs < 300) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who wants to keep their fetish for flat chested ${boy}s in the closet,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSPastoralist !== "unset") {
+			if (slave.lactation === 0) {
+				vignettes.push({
+					text: `${he} lost a customer who could not understand why nothing was coming out of ${his} nipples when they sucked on them,`,
+					type: "cash",
+					effect: -1,
+				});
+			}
+			if (slave.nipples === "fuckable") {
+				vignettes.push({
+					text: `${he} lost a customer who refused ${he} could possibly be a proper cow with nipples like ${his},`,
+					type: "cash",
+					effect: -1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSPhysicalIdealist !== "unset" && slave.muscles <= 95) {
+			vignettes.push({
+				text: `${he} lost a customer who could barely believe that ${he} wasn't capable of holding ${himself} in a handstand,`,
+				type: "cash",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSChattelReligionist !== "unset" && slave.behavioralFlaw === "devout") {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who desperately wants their cock to be the one that converts ${him},`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRomanRevivalist !== "unset" && slave.race === "white" && slave.height >= 185) {
+			vignettes.push({
+				text: `${he} attracted a customer who thought ${his} appearance worthy of a lusty northern barbarian,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSAztecRevivalist !== "unset" && slave.devotion > 75 && slave.intelligence >= 2) {
+			vignettes.push({
+				text: `${he} indulged a citizen by following a fertility ritual completely,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
+			vignettes.push({
+				text: `${he} got extra business from a group of citizens competing to get off with whores of each of the arcology's ethnic groups in the least time,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEdoRevivalist !== "unset" && slave.face > 40 && slave.intelligence > 1) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who wished to do nothing more than converse with a beautiful and intelligent ${boy},`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSArabianRevivalist !== "unset" && slave.entertainSkill >= 100 && canTalk(slave) && slave.voice > 0 && slave.accent < 2) {
+			vignettes.push({
+				text: `${he} got repeat business from a customer who prefers prostitutes who can tell lovely stories,`,
+				type: "cash",
+				effect: 1,
+			});
+		}
+
+		vignettes.push({
+			text: `one of the companies with an office in your arcology retained ${him} for a team-building bukkake party for its employees,`,
+			type: "rep",
+			effect: 1,
+		});
+		vignettes.push({
+			text: "a man dragged his crying wife along so she could watch him fuck a whore,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: "a woman dragged her angry husband along so he could watch her get eaten out by a whore,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you loving ${him},`,
+			type: "devotion",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you letting a customer hurt ${him},`,
+			type: "devotion",
+			effect: -1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you protecting ${him} from a mean customer,`,
+			type: "trust",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after being sold for sex all day, and had a dream about you selling ${him} for good,`,
+			type: "trust",
+			effect: -1,
+		});
+	} else if (slave.assignment === "serve the public" || slave.assignment === "serve in the club") {
+		let seed = jsRandom(1, 10);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a domestic dispute over another slut,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw an aphrodisiac addict ${he} knew sell herself into slavery,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} had to move to follow the <span class="green">most prominent citizens</span> to a newly fashionable hall,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that a citizen used a new and improved sex toy on ${him},`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 5:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was being used in public by an incestuous pair of citizens,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 6:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a notorious slut come of age and start swapping anal for aphrodisiacs,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 7:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} saw a citizen experiment with lesbian sex for the first time, in public,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 8:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen descend into aphrodisiac addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			case 9:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} watched a citizen develop the beginnings of sex addiction,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `the most interesting thing that happened to ${him} at work was that ${he} witnessed a citizen using a public slut so brutally that they had to pay compensation afterward,`,
+					type: "rep",
+					effect: 0,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `a citizen punished one of his slaves by tying her up in public near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a citizen shared one of his slaves with the public near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a private brothel offered a promotion near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `some free sluts threw an aphrodisiac street party near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `a contract breaker was punished with the pillory near where ${slave.slaveName} was serving as a public slut. This made ${him} less popular that day,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+		}
+		seed = jsRandom(1, 5);
+		switch (seed) {
+			case 1:
+				vignettes.push({
+					text: `one of ${his} regular patrons got a divorce and came to ${him} for repeated consolation,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case 2:
+				vignettes.push({
+					text: `a club near where ${slave.slaveName} usually works had business trouble,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case 3:
+				vignettes.push({
+					text: `a competing slut that looks like ${him} fell ill, driving a patron to look for an alternative,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case 4:
+				vignettes.push({
+					text: `a street slut that works near ${him} was badly beaten by an abusive citizen and had to take time off. The reduced competition got ${his} more attention,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			default:
+				vignettes.push({
+					text: `an influx of tourists came into ${his} part of the arcology, earning ${him} more business for a day,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+		}
+
+		if (slave.fetishKnown === 1) {
+			switch (slave.fetish) {
+				case "submissive":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen with ${his} sincere submission to them,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} lost a patron who secretly wanted ${him} to show a little initiative,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "cumslut":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen with ${his} hunger for their cum,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much cum fetishes revolted them until ${he} displayed ${hers},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "humiliation":
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who didn't know how much they liked public sex until ${he} got them to try it,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much exhibitionism turned them off until they tried public sex with ${him},`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "buttslut":
+					if (canDoAnal(slave)) {
+						vignettes.push({
+							text: `${he} earned extra gratitude from a citizen who didn't know how much they liked fucking buttholes until ${he} got them to try fucking ${hers},`,
+							type: "rep",
+							effect: 1,
+						});
+						vignettes.push({
+							text: `${he} disgusted a citizen who didn't know how much buttsex turned them off until ${he} got them to try fucking ${his} ass,`,
+							type: "rep",
+							effect: -1,
+						});
+					}
+					if (slave.butt >= 3) {
+						vignettes.push({
+							text: `${he} earned extra gratitude from a citizen who didn't know how much they liked big butts until ${he} gave them a lap dance they'll never forget,`,
+							type: "rep",
+							effect: 1,
+						});
+					}
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who appreciated a nice rear, even if it is off limits,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much butts turned them off until ${he} put ${his} hands on theirs,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "boobs":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen by orgasming to nothing but the feeling of them sucking ${his} nipples,`,
+						type: "rep",
+						effect: 1,
+					}); ;
+					vignettes.push({
+						text: `${he} disappointed a female citizen who didn't know how uninterested she was in nipple play before trying it,`,
+						type: "rep",
+						effect: -1,
+					});
+					if (slave.nipples === "fuckable") {
+						vignettes.push({
+							text: `${he} left lasting impression on a pair of citizens after nearly passing out from a series of intense orgasms from getting ${his} nipples fucked,`,
+							type: "rep",
+							effect: 2,
+						});
+					}
+					break;
+				case "sadist":
+					vignettes.push({
+						text: `${he} deeply impressed a citizen who brought their own slave to ${his} for abuse with ${his} sadism,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `a citizen brought ${him} their own slave to abuse, but the sight proved to be a turn off,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "masochist":
+					vignettes.push({
+						text: `${he} helped a citizen discover a new fetish by orgasming when they accidentally hurt ${him},`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disturbed a citizen who accidentally hurt ${him} by orgasming,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "dom":
+					vignettes.push({
+						text: `${he} made a female citizen ${his} bitch: fortunately, the citizen wanted to be ${his} bitch and came back for more`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} accidentally overwhelmed a citizen with ${his} sexual dominance,`,
+						type: "rep",
+						effect: -1,
+					});
+					break;
+				case "pregnancy":
+					vignettes.push({
+						text: `${he} earned extra gratitude from a citizen who didn't know how much they liked pregnancy play until ${he} begged them to knock ${him} up,`,
+						type: "rep",
+						effect: 1,
+					});
+					vignettes.push({
+						text: `${he} disgusted a citizen who didn't know how much pregnancy play turned them off until ${he} begged them to knock ${him} up,`,
+						type: "rep",
+						effect: -1,
+					});
+			}
+		}
+		switch (slave.behavioralFlaw) {
+			case "arrogant":
+				vignettes.push({
+					text: `${he} manages to give a citizen the impression ${he} thinks ${himself} better than them,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "bitchy":
+				vignettes.push({
+					text: `${he} makes an emasculating remark to a citizen right after they fuck ${him},`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "odd":
+				vignettes.push({
+					text: `${he} infuriates a potential citizen with ${his} nervous tics,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates men":
+				vignettes.push({
+					text: `${his} disgust towards men surfaces at a bad time, angering a male citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates women":
+				vignettes.push({
+					text: `${his} disgust towards women surfaces at a bad time, angering a female citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "gluttonous":
+				vignettes.push({
+					text: `${he} accidentally lingers at a meal, missing an appointment with a citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "anorexic":
+				vignettes.push({
+					text: `${his} bulimia surfaces at an extremely inopportune moment, turning a citizen off,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "devout":
+				vignettes.push({
+					text: `a citizen catches ${him} praying to ${himself} as they inserts themsleves into ${him}, turning them off,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "liberated":
+				vignettes.push({
+					text: `${he} treats a rude citizen impolitely, because ${he} thinks that's fair,`,
+					type: "rep",
+					effect: -1,
+				});
+		}
+		switch (slave.sexualFlaw) {
+			case "hates oral":
+				vignettes.push({
+					text: `${he} vomits while trying to deepthroat a citizen,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates anal":
+				vignettes.push({
+					text: `${he} cries while taking anal from a citizen who isn't into painal,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "hates penetration":
+				vignettes.push({
+					text: `${he} cries while taking a pounding from a citizen who likes their sex consensual,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "shamefast":
+				vignettes.push({
+					text: `${he} cries while a citizen looks ${him} over,`,
+					type: "rep",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} disrobed so slowly that a horny citizen gave up on ${him},`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "idealistic":
+				vignettes.push({
+					text: `${he} cries when explaining to a citizen that sex with ${him} is free,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "repressed":
+				vignettes.push({
+					text: `${he} misunderstands a citizen's lewd requests, turning them off,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "apathetic":
+				vignettes.push({
+					text: `${he} fails to notice when a citizen achieves orgasm,`,
+					type: "rep",
+					effect: -1,
+				});
+				break;
+			case "neglectful":
+				vignettes.push({
+					text: `${he} brings a denial fetishest to orgasm three times without cumming ${himself}, impressing them completely,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "cum addict":
+				vignettes.push({
+					text: `${he}'s so focused on sucking down a client's cum that ${he} managed to drive them to repeated orgasm, earning their admiration once the feeling returns to their legs,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "anal addict":
+				vignettes.push({
+					text: `${he} takes an awe inspiring train of dicks in ${his} ass, well past the point where most would have passed out from pain,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "attention whore":
+				vignettes.push({
+					text: `${he} earned extra gratitude by drawing attention to a savvy businessman from their superiors,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "breast growth":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who never realized breast growth turned them on so much,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "abusive":
+				vignettes.push({
+					text: `${he} abuses a rival public servant so viciously that an catfight lover takes ${him} right there,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "malicious":
+				vignettes.push({
+					text: `${he} earned extra gratitude from a masochist who loved the way ${he} traced ${his} scars, and added some new ones,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "self hating":
+				vignettes.push({
+					text: `the way ${he} takes everything thrown at ${him} like nothing disturbs group of citizens, though one of them enjoys it more than they let on and comes to ${him} for sex later,`,
+					type: "rep",
+					effect: 3,
+				});
+				break;
+			case "breeder":
+				vignettes.push({
+					text: `${his} pregnancy obsession earns ${his} extra gratitude from a man with an intense pregnancy fetish,`,
+					type: "rep",
+					effect: 3,
+				});
+		}
+		switch (slave.behavioralQuirk) {
+			case "confident":
+				vignettes.push({
+					text: `${he} confidently presses forward with a wavering citizen, and gets them to fuck ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "cutting":
+				vignettes.push({
+					text: `${he} makes such a gloriously cutting remark to a male citizen that a female bystander takes ${him} right there,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "funny":
+				vignettes.push({
+					text: `${he} makes a group of citizens laugh so hard, one of them comes to ${him} for sex later,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "fitness":
+				vignettes.push({
+					text: `${he} continues a marathon gangbang past the point where most would have passed out,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "adores women":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular female patron,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "adores men":
+				vignettes.push({
+					text: `${he} strikes up a personal friendship with a regular male patron,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "insecure":
+				vignettes.push({
+					text: `${he} successfully convinces a regular patron that they are reliant on ${him} emotionally,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "sinful":
+				vignettes.push({
+					text: `${he} helps a citizen get past their religious hangups through sex with the friendly neighborhood slut,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "advocate":
+				vignettes.push({
+					text: `${he} successfully convinces a wavering potential citizen that there's nothing wrong with banging a public slut,`,
+					type: "rep",
+					effect: 1,
+				});
+		}
+		switch (slave.sexualQuirk) {
+			case "gagfuck queen":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who's obsessed with gagfucks,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "painal queen":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who's obsessed with painal,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "strugglefuck queen":
+				vignettes.push({
+					text: `${he} earns extra gratitude from a citizen who's obsessed with strugglefucking,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "tease":
+				vignettes.push({
+					text: `${he} convinces a citizen who's never had sex with a street slut to patronize ${his} with some truly inspired flirting,`,
+					type: "rep",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a few partygoers were so impressed with ${his} provocative teasing that they left ${his} sizeable tip,`,
+					type: "cash",
+					effect: 1,
+				});
+				break;
+			case "romantic":
+				vignettes.push({
+					text: `a citizen becomes infatuated with ${him}, since they are convinced ${he}'s infatuated with them,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "perverted":
+				vignettes.push({
+					text: `${he} earns some momentary notoriety by engaging in a previously unheard-of sex act,`,
+					type: "rep",
+					effect: 1,
+				});
+				break;
+			case "caring":
+				vignettes.push({
+					text: `${he} serves as an impromptu sounding board for a citizen having marital trouble,`,
+					type: "rep",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `a citizen was so enamored with ${his} kind and caring manner than they proposed to ${him} and offered to take ${him} away, and when ${he} refused, they urged a sizable tip on ${him},`,
+					type: "cash",
+					effect: 1,
+				});
+		}
+
+		if (slave.pitKills > 0) {
+			vignettes.push({
+				text: `${he} earns extra gratitude from a citizen obsessed with the fact that ${he}'s a killer,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.oralCount > 500) {
+			vignettes.push({
+				text: `a citizen into degradation becomes obsessed with driving ${his} oral mileage as high as possible,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.analCount > 500 && slave.anus > 0) {
+			vignettes.push({
+				text: `a citizen into degradation becomes obsessed with driving ${his} anal mileage as high as possible,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.vaginalCount > 500 && slave.vagina > 0) {
+			vignettes.push({
+				text: `a citizen into degradation becomes obsessed with driving ${his} pussy mileage as high as possible,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.devotion > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to please a citizen with tastes that disgusted ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.devotion < -50) {
+			vignettes.push({
+				text: `${his} fury at being sold for sex turned a citizen off before they could fuck ${him},`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.devotion <= 20) {
+			vignettes.push({
+				text: `${he} treasured a love token given to ${his} by a citizen ${he} fooled into thinking ${his} affection was real,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.trust > 95) {
+			vignettes.push({
+				text: `${he} really pushed ${himself} to accept a citizen with tastes that frightened ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.trust < -50) {
+			vignettes.push({
+				text: `${his} tearful terror at being forced to offer ${himself} for sex turned a citizen off before they could fuck ${him},`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.livingRules === "luxurious") {
+			vignettes.push({
+				text: `${he} got a truly perfect night's sleep, which put ${his} in the right frame of mind for the whole day,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.livingRules === "spare") {
+			vignettes.push({
+				text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+			vignettes.push({
+				text: `a citizen asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.releaseRules === "restrictive") {
+			vignettes.push({
+				text: `a citizen asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
+				type: "rep",
+				effect: 0,
+			});
+		} else {
+			vignettes.push({
+				text: `a closeted female citizen asked about ${his} sex life with other slaves, and was enthralled by ${his} answer,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.health > 80) {
+			vignettes.push({
+				text: `a potential citizen in the medical field was fascinated by ${his} health, and spent almost as much time examining ${him} as they did having sex with ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+			if (slave.weight < 10) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who misses ${boy}s without a spare tire around their middle,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight < 95) {
+				vignettes.push({
+					text: `a potential citizen told ${his} that they are looking forward to patronizing ${his} once ${he} gains a lot more weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who loves them big and soft`,
+					type: "rep",
+					effect: 0,
+				});
+			}
+			if (slave.weight > 30) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who enjoyed the way ${his} middle jiggled as they fucked ${him},`,
+					type: "rep",
+					effect: 0,
+				});
+			}
+		} else {
+			if (slave.weight > 95) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} loses a lot of weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight > 30) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} loses some weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight <= -30) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} gains some weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			} else if (slave.weight < -95) {
+				vignettes.push({
+					text: `a potential citizen told ${him} that they are looking forward to patronizing ${him} once ${he} gains a lot of weight,`,
+					type: "rep",
+					effect: 0,
+				});
+			}
+		}
+		if (slave.drugs === "testicle enhancement") {
+			vignettes.push({
+				text: `${he} took it in public, with ${his} copious ejaculation attracting more citizens,`,
+				type: "rep",
+				effect: 1,
+			});
+		} else if (slave.drugs === "hyper testicle enhancement") {
+			vignettes.push({
+				text: `${he} bloated a female citizen's belly with ${his} copious ejaculate, leading her to recommend your slaves for girls that want to look pregnant without actually getting pregnant,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex due to ${his} extreme aphrodisiac dosage turned a citizen off,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.inflationType === "aphrodisiac") {
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly pleased a citizen who loves desperate sluts,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${his} piteous begging for sex coupled with ${his} bloated belly horrified a citizen who didn't realize how low a ${boy} could stoop,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.addict > 50) {
+			vignettes.push({
+				text: `${he} zoned out badly due to a low point between aphrodisiac doses, disappointing a citizen,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.bellyPreg >= 10000 || slave.bellyImplant >= 10000) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who likes to do nothing more than cuddle with ${his} swollen belly,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `a night with guy who likes rough, hard sex with heavily pregnant ${boy}s took its toll on ${him}`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.bellyFluid >= 5000) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who loved the way ${his} belly sloshed and moved to their teasing,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disgusted a citizen when his forceful fucking caused ${him} to release ${his} contained ${slave.inflationType} all over them,`,
+				type: "rep",
+				effect: -2,
+			});
+		}
+		if (slave.hormoneBalance >= 100 && !canAchieveErection(slave)) {
+			if (slave.dick > 0) {
+				vignettes.push({
+					text: `${he} disappointed a citizen who was sure they could get ${slave.slaveName}'s cock erect,`,
+					type: "rep",
+					effect: -1,
+				});
+				vignettes.push({
+					text: `${he} earned extra gratitude from a citizen who seems unthreatened by ${his} soft dick,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (slave.hormoneBalance <= -100 && slave.dick === 0) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a female citizen who adores the masculinity produced by ${slave.slaveName}'s hormone regime,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.dick > 0 && canPenetrate(slave)) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who likes to see his wife get fucked by a dick${boy} whore,`,
+				type: "rep",
+				effect: 1,
+			});
+			if (slave.dick > 3) {
+				vignettes.push({
+					text: `${he} earned extra gratitude from a female citizen who likes big stiff cocks, and cannot lie,`,
+					type: "rep",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `${he} irritated a male citizen who brought his girlfriend with him by accidentally showing him up,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.balls > 3) {
+			vignettes.push({
+				text: `${he} disappoints a citizen who wants ${him} to look like a natural girl, since ${his} balls are too big to be hidden,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (canDoVaginal(slave)) {
+			if (slave.vagina === 1) {
+				vignettes.push({
+					text: `${he} got extra attention from a citizen who really likes ${him}, and wants to fuck ${his} pussy as much as possible while it's still tight,`,
+					type: "rep",
+					effect: 1,
+				});
+			} else if (slave.vagina > 2) {
+				vignettes.push({
+					text: `${he} disappointed a citizen whose cock is just too small for ${his} big cunt,`,
+					type: "rep",
+					effect: -1,
+				});
+				if (slave.behavioralQuirk === "cutting" && slave.intelligence >= 2) {
+					vignettes.push({
+						text: `${he} helped a citizen discover a new fetish by making cutting remarks when their cock was too small for ${his} big cunt,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.behavioralFlaw === "bitchy") {
+					vignettes.push({
+						text: `${he} irritated a male citizen with ${his} complaints that they were too small to please ${him},`,
+						type: "rep",
+						effect: -3,
+					});
+				}
+			}
+		}
+		if (canDoAnal(slave)) {
+			if (slave.anus === 1) {
+				vignettes.push({
+					text: `${he} got extra attention from a citizen who really likes ${his} butthole, and wants to fuck it as much as possible while it's still tight,`,
+					type: "rep",
+					effect: 1,
+				});
+			} else if (slave.anus > 2) {
+				vignettes.push({
+					text: `${he} disappointed a citizen whose cock is just too small for ${his} loose butthole,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.face > 40) {
+			vignettes.push({
+				text: `${he} lost a potential citizen who was so intimidated by ${his} great beauty that they decided to find a homelier whore,`,
+				type: "rep",
+				effect: -1,
+			});
+		} else if (slave.face < -10) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who lacks self-confidence, and is more comfortable with homely whores,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.visualAge > 40) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen with serious mommy issues,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.lips > 70) {
+			vignettes.push({
+				text: `${he} earned extra gratitude from a citizen who likes to play with ${his} lips nonsexually (don't ask),`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (!canTalk(slave)) {
+			vignettes.push({
+				text: `${he} impressed a citizen who didn't know how relaxing a ${boy} who can't talk could be,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.muscles > 95) {
+			vignettes.push({
+				text: `${he} impressed a citizen who was so eager to share workout plans with ${him} that they almost forgot to have sex with ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} gained extra gratitude from a female citizen who likes a ${boy} who can bench-press her before and after they fuck,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} disappointed a citizen by accidentally revealing that ${he}'s considerably stronger than him,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.lactation > 0) {
+			vignettes.push({
+				text: `${he} provided fresh milk for the coffee served at a citizen's business meeting,`,
+				type: "rep",
+				effect: 1,
+			});
+			vignettes.push({
+				text: `${he} provided fresh milk at a trendy arcology coffeehouse,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.amp === 1) {
+			vignettes.push({
+				text: `${he} disappointed a citizen who thought they would enjoy fucking an amputee, but found it revolting,`,
+				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,`,
+					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,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.fetish === "mindbroken") {
+			vignettes.push({
+				text: `a citizen really enjoyed being able to treat ${him} however they liked without eliciting a reaction,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (slave.intelligence <= -2) {
+			vignettes.push({
+				text: `a low-class citizen who had no business fucking ${him} managed to trick ${him} into fucking him anyway,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.face > 10 && canDoAnal(slave)) {
+			if (slave.dick > 0) {
+				if (slave.fetish === "buttslut" && jsRandom(0, 100) < 50) {
+					vignettes.push({
+						text: `a citizen was surprised by ${his} penis, so ${he} hid it and enjoyed the buttsex without touching it,`,
+						type: "rep",
+						effect: 1,
+					});
+				} else if (slave.fetish === "buttslut") {
+					vignettes.push({
+						text: `a citizen was surprised by ${his} penis, so ${he} hid it and skillfully pretended to be a real girl,`,
+						type: "rep",
+						effect: -1,
+					});
+				} else if (slave.analSkill >= 100) {
+					vignettes.push({
+						text: `a citizen was surprised by ${his} penis, so ${he} hid it, but could barely tolerate anal without touching it`,
+						type: "rep",
+						effect: 1,
+					});
+				}
+			}
+			if (slave.analSkill < 100 && slave.anus > 2) {
+				vignettes.push({
+					text: `a pair of customers enticed by ${his} beauty but disappointed by ${his} loose butthole doubled up on ${his} poor anus without mercy,`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.fetishKnown === 1 && slave.fetishStrength > 95) {
+			if (slave.fetish === "buttslut" || slave.fetish === "dom") {
+				vignettes.push({
+					text: `${he} showed off by forcing a slave in the stocks to eat ${his} ass`,
+					type: "rep",
+					effect: 1,
+				});
+			} else if (slave.fetish === "masochist") {
+				vignettes.push({
+					text: `${he} cooperated with a customer who wanted to whip ${his} tits black and blue`,
+					type: "health",
+					effect: -1,
+				});
+			}
+		}
+		if (slave.health < 20) {
+			vignettes.push({
+				text: `${he} attracted the attention of a slaveowner alarmed by ${his} poor health, and thought he seemed kind,`,
+				type: "devotion",
+				effect: -1,
+			});
+		}
+		if (slave.vaginalSkill >= 100) {
+			vignettes.push({
+				text: `${he} was brought in to apply ${his} skills to a prominent citizen's virgin son,`,
+				type: "devotion",
+				effect: 0,
+			});
+		}
+		if (canDoAnal(slave) && slave.analSkill < 100 && slave.anus < 2) {
+			vignettes.push({
+				text: `a guy with a huge cock insisted on fucking ${him} in ${his} tight ass all night,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (slave.relationship <= -2 && slave.intelligence < 1) {
+			vignettes.push({
+				text: `${he} accidentally mentions how much ${he} loves you during intercourse with a citizen who doesn't like to share,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (slave.prestige > 0) {
+			vignettes.push({
+				text: `a college fraternity visiting the arcology for rush week invited ${him} to a gangbang,`,
+				type: "rep",
+				effect: 3,
+			});
+		}
+
+		if (V.arcologies[0].FSSupremacist !== "unset" && slave.race === V.arcologies[0].FSSupremacistRace) {
+			vignettes.push({
+				text: `${he} disappointed a citizen who couldn't bear to see a beautiful ${V.arcologies[0].FSSupremacistRace} be a public slut,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSSubjugationist !== "unset" && slave.race === V.arcologies[0].FSSubjugationistRace) {
+			vignettes.push({
+				text: `${he} had a bad time in general, since most of the citizens who used ${him} didn't care about a ${V.arcologies[0].FSSubjugationistRace} prostitute's health or well-being,`,
+				type: "health",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
+			if (slave.visualAge > 35) {
+				vignettes.push({
+					text: `${he} gratified a citizen who wants to keep his MILF fetish in the closet,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
+			if (slave.visualAge <= 20) {
+				vignettes.push({
+					text: `${he} gratified a citizen who wants to keep his fetish for young ${boy} in the closet,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSGenderRadicalist !== "unset") {
+			if (slave.dick > 0 && slave.dick < 3) {
+				vignettes.push({
+					text: `${he} gratified a citizen who is coming to terms with Gender Radicalism, and is unthreatened by ${his} little penis,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSGenderFundamentalist !== "unset" && slave.visualAge > 25) {
+			vignettes.push({
+				text: `${he} gratified a citizen who thinks ${he} resembles his ex-wife, who would never let him fuck her butt,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRepopulationFocus !== "unset") {
+			if (slave.pregType > 1 && slave.pregKnown > 1 && slave.belly >= 10000) {
+				vignettes.push({
+					text: `${he} gratified a citizen who enjoys the feeling of a womb filled with more than a single child,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSRestart !== "unset" && canGetPregnant(slave)) {
+			vignettes.push({
+				text: `${he} gratified a citizen who misses the risk of getting a ${boy} pregnant,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSPaternalist !== "unset") {
+			if (slave.intelligence > 1) {
+				vignettes.push({
+					text: `${he} gratified a citizen who likes to chat with intelligent prostitutes as they fuck ${him},`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSDegradationist !== "unset" && canTalk(slave) && slave.voice > 2) {
+			vignettes.push({
+				text: `${he} gratified a citizen who prefers ${boy} with high-pitched screams,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSBodyPurist !== "unset") {
+			if (slave.boobsImplant > 0) {
+				vignettes.push({
+					text: `${he} gratified a citizen who wants to keep his fetish for breast implants in the closet,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+		} else if (V.arcologies[0].FSTransformationFetishist !== "unset" && slave.boobsImplant === 0) {
+			vignettes.push({
+				text: `${he} gratified a citizen who wants to keep his fetish for natural breasts in the closet,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
+			if (canTalk(slave) && slave.voice > 2) {
+				vignettes.push({
+					text: `${he} gratified a citizen who loves ${his} high-pitched squeals of pleasure,`,
+					type: "rep",
+					effect: 1,
+				});
+			}
+			if (slave.boobs > 800) {
+				vignettes.push({
+					text: `${he} was publicly mocked as an ugly fat cow with dangling udders,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		} else if (V.arcologies[0].FSAssetExpansionist !== "unset" && slave.boobs < 300) {
+			vignettes.push({
+				text: `${he} gratified a citizen who wants to keep his fetish for flat chested ${boy}s in the closet,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSPastoralist !== "unset") {
+			if (slave.lactation === 0) {
+				vignettes.push({
+					text: `${he} disappointed a citizen who could not understand why nothing was coming out of ${his} nipples when he sucked on them,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+			if (slave.nipples === "fuckable") {
+				vignettes.push({
+					text: `${he} left a citizen deeply confused over how ${he} could possibly be a proper cow without suitable teats,`,
+					type: "rep",
+					effect: -1,
+				});
+			}
+		}
+		if (V.arcologies[0].FSPhysicalIdealist !== "unset" && slave.muscles <= 95) {
+			vignettes.push({
+				text: `${he} disappointed a citizen who could barely believe that ${he} wasn't capable of holding ${himself} in a handstand,`,
+				type: "rep",
+				effect: -1,
+			});
+		}
+		if (V.arcologies[0].FSChattelReligionist !== "unset" && slave.behavioralFlaw === "devout") {
+			vignettes.push({
+				text: `${he} gratified a citizen who desperately wants his cock to be the one that converts ${him},`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSRomanRevivalist !== "unset" && slave.race === "white" && slave.height >= 185) {
+			vignettes.push({
+				text: `${he} gratified a citizen who thought ${his} appearance worthy of a lusty northern barbarian,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSAztecRevivalist !== "unset" && slave.devotion > 75 && slave.intelligence >= 2) {
+			vignettes.push({
+				text: `${he} indulged a citizen by following a fertility ritual completely,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
+			vignettes.push({
+				text: `${he} got extra attention from a group of citizens competing to get off with whores of each of the arcology's ethnic groups in the least time,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSEdoRevivalist !== "unset" && slave.face > 40 && slave.intelligence > 1) {
+			vignettes.push({
+				text: `${he} gratified a citizen who wished to do nothing more than converse with a beautiful and intelligent ${boy},`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+		if (V.arcologies[0].FSArabianRevivalist !== "unset" && slave.entertainSkill >= 100 && canTalk(slave) && slave.voice > 0 && slave.accent < 2) {
+			vignettes.push({
+				text: `${he} gratified a citizen who prefers prostitutes who can tell lovely stories,`,
+				type: "rep",
+				effect: 1,
+			});
+		}
+
+		vignettes.push({
+			text: `one of the companies with an office in your arcology brought ${him} in for a team-building bukkake party for its employees,`,
+			type: "rep",
+			effect: 1,
+		});
+		vignettes.push({
+			text: "a man dragged his crying wife along so she could watch him fuck a public slut,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: "a woman dragged her angry husband along so he could watch his wife get eaten out by a public slut,",
+			type: "rep",
+			effect: 0,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you loving ${him},`,
+			type: "devotion",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you letting a citizen hurt ${him},`,
+			type: "devotion",
+			effect: -1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you protecting ${him} from a mean citizen,`,
+			type: "trust",
+			effect: 1,
+		});
+		vignettes.push({
+			text: `${he} went to sleep after having sex with strangers all day, and had a dream about you selling ${him} for good,`,
+			type: "trust",
+			effect: -1,
+		});
+	}
+	return jsEither(vignettes);
+};
\ No newline at end of file
diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw
index 867ed764ec08cad910cd344b348a5f9ab39ee033..68df806cc730e0a32dc9d7c659a84b068da91c01 100644
--- a/src/uncategorized/saServeThePublic.tw
+++ b/src/uncategorized/saServeThePublic.tw
@@ -270,7 +270,7 @@ $His appearance attracted $beauty members of the public (<<print Math.trunc($bea
 	<<set $slaves[$i].health -= 7>>
 	<<set $injury = 1>>
 <<elseif ($slaves[$i].vagina < 0)>>
-	<<set $desc = SlaveTitle($slaves[$i])>>
+	<<SlaveTitle $slaves[$i]>>
 	<<if (($slaves[$i].analSkill + $slaves[$i].oralSkill) >= 200)>>
 	$He's such an expert public servant that $he copes with the stress of being a $desc slut.
 	<<elseif random(1,100) > 40+(10*($slaves[$i].analSkill + $slaves[$i].oralSkill))>>
@@ -533,7 +533,7 @@ $His appearance attracted $beauty members of the public (<<print Math.trunc($bea
 		<<elseif $slaves[$j].relationship > 4>>
 			slave wife
 		<</if>>
-		$slaves[$j].slaveName is also serving the public and they work well together.
+		$slaves[$j].slaveName is also serving the public and they work well toget$him.
 	<</if>>
 <<elseif $slaves[$i].relationship == -1>>
 	$He relies on citizens' desire to fuck $him for emotional support, making $him an excellent, if occasionally disturbing, slut.
@@ -1190,627 +1190,87 @@ $His appearance attracted $beauty members of the public (<<print Math.trunc($bea
 <</if>>
 <</if>>
 
-/* VIGNETTES */
-
 <<if ($showVignettes == 1)>>
-<<set _vignettes = []>>
-
-<<set $seed = random(1,10)>>
-<<switch $seed>>
-<<case 1>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he witnessed a domestic dispute over another slut,", type: "rep", effect: 0})>>
-<<case 2>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he saw an aphrodisiac addict $he knew sell $himself into slavery,", type: "rep", effect: 0})>>
-<<case 3>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he had to move to follow the @@.green;most prominent citizens@@ to a newly fashionable hall,", type: "rep", effect: 0})>>
-<<case 4>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that a citizen used a new and improved sex toy on $him,", type: "rep", effect: 0})>>
-<<case 5>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was being used in public by an incestuous pair of citizens,", type: "rep", effect: 0})>>
-<<case 6>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he saw a notorious slut come of age and start swapping anal for aphrodisiacs,", type: "rep", effect: 0})>>
-<<case 7>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he saw a citizen experiment with lesbian sex for the first time, in public,", type: "rep", effect: 0})>>
-<<case 8>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he watched a citizen descend into aphrodisiac addiction,", type: "rep", effect: 0})>>
-<<case 9>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he watched a citizen develop the beginnings of sex addiction,", type: "rep", effect: 0})>>
-<<default>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he witnessed a citizen using a public slut so brutally that he had to pay compensation afterward,", type: "rep", effect: 0})>>
-<</switch>>
-<<set $seed = random(1,5)>>
-<<switch $seed>>
-<<case 1>>
-	<<set _vignettes.push({text: "a citizen punished one of his slaves by tying $him up in public near where $slaves[$i].slaveName was serving as a public slut. This made $him less popular that day,", type: "rep", effect: -1})>>
-<<case 2>>
-	<<set _vignettes.push({text: "a citizen shared one of his slaves with the public near where $slaves[$i].slaveName was serving as a public slut. This made $him less popular that day,", type: "rep", effect: -1})>>
-<<case 3>>
-	<<set _vignettes.push({text: "a private brothel offered a promotion near where $slaves[$i].slaveName was serving as a public slut. This made $him less popular that day,", type: "rep", effect: -1})>>
-<<case 4>>
-	<<set _vignettes.push({text: "some free sluts threw an aphrodisiac street party near where $slaves[$i].slaveName was serving as a public slut. This made $him less popular that day,", type: "rep", effect: -1})>>
-<<default>>
-	<<set _vignettes.push({text: "a contract breaker was punished with the pillory near where $slaves[$i].slaveName was serving as a public slut. This made $him less popular that day,", type: "rep", effect: -1})>>
-<</switch>>
-<<set $seed = random(1,5)>>
-<<switch $seed>>
-<<case 1>>
-	<<set _vignettes.push({text: "one of $his regular patrons got a divorce and came to $him for repeated consolation,", type: "rep", effect: 1})>>
-<<case 2>>
-	<<set _vignettes.push({text: "a club near where $slaves[$i].slaveName usually works had business trouble,", type: "rep", effect: 1})>>
-<<case 3>>
-	<<set _vignettes.push({text: "a competing slut that looks like $him fell ill, driving a patron to look for an alternative,", type: "rep", effect: 1})>>
-<<case 4>>
-	<<set _vignettes.push({text: "a street slut that works near $him was badly beaten by an abusive citizen and had to take time off. The reduced competition got $him more attention,", type: "rep", effect: 1})>>
-<<default>>
-	<<set _vignettes.push({text: "an influx of tourists came into $his part of the arcology, earning $him more business for a day,", type: "rep", effect: 1})>>
-<</switch>>
-
-<<if ($slaves[$i].fetishKnown == 1)>>
-<<switch $slaves[$i].fetish>>
-<<case "submissive">>
-	<<set _vignettes.push({text: "$he deeply impressed a citizen with $his sincere submission to him,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he lost a patron who secretly wanted $him to show a little initiative,", type: "rep", effect: -1})>>
-<<case "cumslut">>
-	<<set _vignettes.push({text: "$he deeply impressed a citizen with $his hunger for his cum,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a citizen who didn't know how much cum fetishes revolted him until $he displayed hers,", type: "rep", effect: -1})>>
-<<case "humiliation">>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who didn't know how much he liked public sex until $he got him to try it,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a citizen who didn't know how much exhibitionism turned him off until he tried public sex with $him,", type: "rep", effect: -1})>>
-<<case "buttslut">>
-	<<if canDoAnal($slaves[$i])>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who didn't know how much he liked fucking buttholes until $he got him to try fucking hers,", type: "rep", effect: 1})>>
-		<<set _vignettes.push({text: "$he disgusted a citizen who didn't know how much buttsex turned him off until $he got him to try fucking $his ass,", type: "rep", effect: -1})>>
-	<</if>>
-	<<if $slaves[$i].butt >= 3>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who didn't know how much he liked big butts until $he gave him a lap dance he'll never forget,", type: "rep", effect: 1})>>
-	<</if>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who appreciated a nice rear, even if it is off limits,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a citizen who didn't know how much butts turned him off until he put his hands on $hers,", type: "rep", effect: -1})>>
-<<case "boobs">>
-	<<set _vignettes.push({text: "$he deeply impressed a citizen by orgasming to nothing but the feeling of her sucking $his nipples,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disappointed a female citizen who didn't know how uninterested she was in nipple play before trying it,", type: "rep", effect: -1})>>
-	<<if $slaves[$i].nipples == "fuckable">>
-		<<set _vignettes.push({text: "$he left a lasting impression on a pair of citizens after nearly passing out from a series of intense orgasms from getting $his nipples fucked,", type: "rep", effect: 2})>>
-	<</if>>
-<<case "sadist">>
-	<<set _vignettes.push({text: "$he deeply impressed a citizen who brought his own slave to $him for abuse with $his sadism,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a citizen brought $him his own slave to abuse, but the sight proved to be a turn off for him,", type: "rep", effect: -1})>>
-<<case "masochist">>
-	<<set _vignettes.push({text: "$he helped a citizen discover a new fetish by orgasming when he accidentally hurt $him,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disturbed a citizen who accidentally hurt $him by orgasming,", type: "rep", effect: -1})>>
-<<case "dom">>
-	<<set _vignettes.push({text: "$he made a female citizen $his bitch: fortunately, the citizen wanted to be $his bitch and came back for more", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he accidentally overwhelmed a citizen with $his sexual dominance,", type: "rep", effect: -1})>>
-<<case "pregnancy">>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who didn't know how much he liked pregnancy play until $he begged him to knock $him up,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a citizen who didn't know how much pregnancy play turned him off until $he begged him to knock $him up,", type: "rep", effect: -1})>>
-<</switch>>
-<</if>>
-<<switch $slaves[$i].behavioralFlaw>>
-<<case "arrogant">>
-	<<set _vignettes.push({text: "$he manages to give a citizen the impression $he thinks $himself better than him,", type: "rep", effect: -1})>>
-<<case "bitchy">>
-	<<set _vignettes.push({text: "$he makes an emasculating remark to a citizen right after he fucks $him,", type: "rep", effect: -1})>>
-<<case "odd">>
-	<<set _vignettes.push({text: "$he infuriates a potential citizen with $his nervous tics,", type: "rep", effect: -1})>>
-<<case "hates men">>
-	<<set _vignettes.push({text: "$his disgust towards men surfaces at a bad time, angering a male citizen,", type: "rep", effect: -1})>>
-<<case "hates women">>
-	<<set _vignettes.push({text: "$his disgust towards women surfaces at a bad time, angering a female citizen,", type: "rep", effect: -1})>>
-<<case "gluttonous">>
-	<<set _vignettes.push({text: "$he accidentally lingers at a meal, missing an appointment with a citizen,", type: "rep", effect: -1})>>
-<<case "anorexic">>
-	<<set _vignettes.push({text: "$his bulimia surfaces at an extremely inopportune moment, turning a citizen off,", type: "rep", effect: -1})>>
-<<case "devout">>
-	<<set _vignettes.push({text: "a citizen catches $him praying to $himself as he inserts himself into $him, turning him off,", type: "rep", effect: -1})>>
-<<case "liberated">>
-	<<set _vignettes.push({text: "$he treats a rude citizen impolitely, because $he thinks that's fair,", type: "rep", effect: -1})>>
-<</switch>>
-<<switch $slaves[$i].sexualFlaw>>
-<<case "hates oral">>
-	<<set _vignettes.push({text: "$he vomits while trying to deepthroat a citizen,", type: "rep", effect: -1})>>
-<<case "hates anal">>
-	<<set _vignettes.push({text: "$he cries while taking anal from a citizen who isn't into painal,", type: "rep", effect: -1})>>
-<<case "hates penetration">>
-	<<set _vignettes.push({text: "$he cries while taking a pounding from a citizen who likes his sex consensual,", type: "rep", effect: -1})>>
-<<case "shamefast">>
-	<<set _vignettes.push({text: "$he cries while a citizen looks $him over,", type: "rep", effect: -1})>>
-	<<set _vignettes.push({text: "$he disrobed so slowly that a horny citizen gave up on $him,", type: "rep", effect: -1})>>
-<<case "idealistic">>
-	<<set _vignettes.push({text: "$he cries when explaining to a citizen that sex with $him is free,", type: "rep", effect: -1})>>
-<<case "repressed">>
-	<<set _vignettes.push({text: "$he misunderstands a citizen's lewd requests, turning $him off,", type: "rep", effect: -1})>>
-<<case "apathetic">>
-	<<set _vignettes.push({text: "$he fails to notice when a citizen achieves orgasm,", type: "rep", effect: -1})>>
-<<case "neglectful">>
-	<<set _vignettes.push({text: "$he brings a denial fetishest to orgasm three times without cumming $himself, impressing them completely,", type: "rep", effect: 3})>>
-<<case "cum addict">>
-	<<set _vignettes.push({text: "$he's so focused on sucking down a client's cum that $he managed to drive him to repeated orgasm, earning his admiration once the feeling returns to his legs,", type: "rep", effect: 3})>>
-<<case "anal addict">>
-	<<set _vignettes.push({text: "$he takes an awe inspiring train of dicks in $his ass, well past the point where most would have passed out from pain,", type: "rep", effect: 3})>>
-<<case "attention whore">>
-	<<set _vignettes.push({text: "$he earned extra gratitude by drawing attention to savvy businessman from his superiors,", type: "rep", effect: 3})>>
-<<case "breast growth">>
-	<<set _vignettes.push({text: "$he earns extra gratitude from a citizen who never realized breast growth turned him on so much,", type: "rep", effect: 3})>>
-<<case "abusive">>
-	<<set _vignettes.push({text: "$he abuses a rival public servant so viciously that a catfight lover takes $him right there,", type: "rep", effect: 3})>>
-<<case "malicious">>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a masochist who loved the way $he traced her scars, and added some new ones,", type: "rep", effect: 3})>>
-<<case "self hating">>
-	<<set _vignettes.push({text: "the way $he takes everything thrown at $him like nothing disturbs group of citizens, though one of them enjoys it more than they let on and comes to $him for sex later,", type: "rep", effect: 3})>>
-<<case "breeder">>
-	<<set _vignettes.push({text: "$his pregnancy obsession earns $him extra gratitude from a man with an intense pregnancy fetish,", type: "rep", effect: 3})>>
-<</switch>>
-<<switch $slaves[$i].behavioralQuirk>>
-<<case "confident">>
-	<<set _vignettes.push({text: "$he confidently presses forward with a wavering citizen, and gets him to fuck $him,", type: "rep", effect: 1})>>
-<<case "cutting">>
-	<<set _vignettes.push({text: "$he makes such a gloriously cutting remark to a male citizen that a female bystander takes $him right there,", type: "rep", effect: 1})>>
-<<case "funny">>
-	<<set _vignettes.push({text: "$he makes a group of citizens laugh so hard, one of them comes to $him for sex later,", type: "rep", effect: 1})>>
-<<case "fitness">>
-	<<set _vignettes.push({text: "$he continues a marathon gangbang past the point where most would have passed out,", type: "rep", effect: 1})>>
-<<case "adores women">>
-	<<set _vignettes.push({text: "$he strikes up a personal friendship with a regular female patron,", type: "rep", effect: 1})>>
-<<case "adores men">>
-	<<set _vignettes.push({text: "$he strikes up a personal friendship with a regular male patron,", type: "rep", effect: 1})>>
-<<case "insecure">>
-	<<set _vignettes.push({text: "$he successfully convinces a regular patron that $he's reliant on him emotionally,", type: "rep", effect: 1})>>
-<<case "sinful">>
-	<<set _vignettes.push({text: "$he helps a citizen get past her religious hangups through sex with her friendly neighborhood slut,", type: "rep", effect: 1})>>
-<<case "advocate">>
-	<<set _vignettes.push({text: "$he successfully convinces a wavering potential citizen that there's nothing wrong with banging a public slut,", type: "rep", effect: 1})>>
-<</switch>>
-<<switch $slaves[$i].sexualQuirk>>
-<<case "gagfuck queen")>>
-	<<set _vignettes.push({text: "$he earns extra gratitude from a citizen who's obsessed with gagfucks,", type: "rep", effect: 1})>>
-<<case "painal queen")>>
-	<<set _vignettes.push({text: "$he earns extra gratitude from a citizen who's obsessed with painal,", type: "rep", effect: 1})>>
-<<case "strugglefuck queen")>>
-	<<set _vignettes.push({text: "$he earns extra gratitude from a citizen who's obsessed with strugglefucking,", type: "rep", effect: 1})>>
-<<case "tease")>>
-	<<set _vignettes.push({text: "$he convinces a citizen who's never had sex with a street slut to patronize $him with some truly inspired flirting,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a few partygoers were so impressed with $his provocative teasing that they left $him a sizeable tip,", type: "cash", effect: 1})>>
-<<case "romantic")>>
-	<<set _vignettes.push({text: "a citizen becomes infatuated with $him, since he's convinced $he's infatuated with him,", type: "rep", effect: 1})>>
-<<case "perverted")>>
-	<<set _vignettes.push({text: "$he earns some momentary notoriety by engaging in a previously unheard-of sex act,", type: "rep", effect: 1})>>
-<<case "caring")>>
-	<<set _vignettes.push({text: "$he serves as an impromptu sounding board for a citizen having marital trouble,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a citizen was so enamored with $his kind and caring manner that he proposed to $him and offered to take $him away, and when $he refused, he urged a sizable tip on $him,", type: "cash", effect: 1})>>
-<</switch>>
-<<if ($slaves[$i].pitKills > 0)>>
-	<<set _vignettes.push({text: "$he earns extra gratitude from a citizen obsessed with the fact that $he's a killer,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].oralCount > 500)>>
-	<<set _vignettes.push({text: "a citizen into degradation becomes obsessed with driving $his oral mileage as high as possible,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].analCount > 500) && ($slaves[$i].anus > 0)>>
-	<<set _vignettes.push({text: "a citizen into degradation becomes obsessed with driving $his anal mileage as high as possible,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].vaginalCount > 500) && ($slaves[$i].vagina > 0)>>
-	<<set _vignettes.push({text: "a citizen into degradation becomes obsessed with driving $his pussy mileage as high as possible,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].devotion > 95)>>
-	<<set _vignettes.push({text: "$he really pushed $himself to please a citizen with tastes that disgusted $him,", type: "rep", effect: 1})>>
-<<elseif ($slaves[$i].devotion < -50)>>
-	<<set _vignettes.push({text: "$his fury at being sold for sex turned a citizen off before he could fuck $him,", type: "rep", effect: -1})>>
-<<elseif ($slaves[$i].devotion <= 20)>>
-	<<set _vignettes.push({text: "$he treasured a love token given to $him by a citizen $he fooled into thinking $his affection was real,", type: "devotion", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].trust > 95)>>
-	<<set _vignettes.push({text: "$he really pushed $himself to accept a citizen with tastes that frightened $him,", type: "rep", effect: 1})>>
-<<elseif ($slaves[$i].trust < -50)>>
-	<<set _vignettes.push({text: "$his tearful terror at being forced to offer $himself for sex turned a citizen off before he could fuck $him,", type: "rep", effect: -1})>>
-<</if>>
-<<if $slaves[$i].livingRules == "luxurious">>
-	<<set _vignettes.push({text: "$he got a truly perfect night's sleep, which put $him in the right frame of mind for the whole day,", type: "rep", effect: 1})>>
-<<elseif $slaves[$i].livingRules == "spare">>
-	<<set _vignettes.push({text: "$he got a poor night's sleep in the noisy dormitory, which took the shine off $his efforts for the whole day", type: "rep", effect: -1})>>
-<</if>>
-<<if $slaves[$i].releaseRules == "permissive" || $slaves[$i].releaseRules == "masturbation">>
-	<<set _vignettes.push({text: "a citizen asked if $he masturbates, and then spent an hour jerking off as $he described how,", type: "rep", effect: 1})>>
-<<elseif $slaves[$i].releaseRules == "restrictive">>
-	<<set _vignettes.push({text: "a citizen asked if $he masturbates, and seemed disappointed when $he answered honestly,", type: "rep", effect: 0})>>
-<<else>>
-	<<set _vignettes.push({text: "a closeted female citizen asked about $his sex life with other slaves, and was enthralled by $his answer,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].health > 80)>>
-	<<set _vignettes.push({text: "a potential citizen in the medical field was fascinated by $his health, and spent almost as much time examining $him as he did having sex with $him,", type: "rep", effect: 1})>>
-<</if>>
-<<if $arcologies[0].FSHedonisticDecadence != "unset">>
-	<<if ($slaves[$i].weight < 10)>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who misses girls without a spare tire around their middle,", type: "rep", effect: 0})>>
-	<<elseif ($slaves[$i].weight < 95)>>
-		<<set _vignettes.push({text: "a potential citizen told $him that he's looking forward to patronizing $him once $he gains a lot more weight,", type: "rep", effect: 0})>>
-	<<else>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who loves them big and soft", type: "rep", effect: 0})>>
-	<</if>>
-	<<if ($slaves[$i].weight > 30)>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who enjoyed the way $his middle jiggled as he fucked $him,", type: "rep", effect: 0})>>
-	<</if>>
-<<else>>
-	<<if ($slaves[$i].weight > 95)>>
-		<<set _vignettes.push({text: "a potential citizen told $him that he's looking forward to patronizing $him once $he loses a lot of weight,", type: "rep", effect: 0})>>
-	<<elseif ($slaves[$i].weight > 30)>>
-		<<set _vignettes.push({text: "a potential citizen told $him that he's looking forward to patronizing $him once $he loses some weight,", type: "rep", effect: 0})>>
-	<<elseif ($slaves[$i].weight <= -30)>>
-		<<set _vignettes.push({text: "a potential citizen told $him that he's looking forward to patronizing $him once $he gains some weight,", type: "rep", effect: 0})>>
-	<<elseif ($slaves[$i].weight < -95)>>
-		<<set _vignettes.push({text: "a potential citizen told $him that he's looking forward to patronizing $him once $he gains a lot of weight,", type: "rep", effect: 0})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].drugs == "testicle enhancement")>>
-	<<set _vignettes.push({text: "$he took it in public, with $his copious ejaculation attracting more citizens,", type: "rep", effect: 1})>>
-<<elseif ($slaves[$i].drugs == "hyper testicle enhancement")>>
-	<<set _vignettes.push({text: "$he bloated a female citizen's belly with $his copious ejaculate, leading $him to recommend your slaves for girls that want to look pregnant without actually getting pregnant,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].aphrodisiacs > 1) || ($slaves[$i].inflationType == "aphrodisiac")>>
-	<<set _vignettes.push({text: "$his piteous begging for sex due to $his extreme aphrodisiac dosage turned a citizen off,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].inflationType == "aphrodisiac")>>
-	<<set _vignettes.push({text: "$his piteous begging for sex coupled with $his bloated belly pleased a citizen who loves desperate sluts,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$his piteous begging for sex coupled with $his bloated belly horrified a citizen who didn't realize how low a girl could stoop,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].addict > 50)>>
-	<<set _vignettes.push({text: "$he zoned out badly due to a low point between aphrodisiac doses, disappointing a citizen,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].bellyPreg >= 10000) || ($slaves[$i].bellyImplant >= 10000)>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who likes to do nothing more than cuddle with $his swollen belly,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a night with guy who likes rough, hard sex with heavily pregnant girls took its toll on $him", type: "health", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].bellyFluid >= 5000)>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who loved the way $his belly sloshed and moved to his teasing,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a citizen when his forceful fucking caused $him to release $his contained $slaves[$i].inflationType all over him,", type: "rep", effect: -2})>>
-<</if>>
-<<if ($slaves[$i].hormoneBalance >= 100) && !canAchieveErection($slaves[$i])>>
-	<<if ($slaves[$i].dick > 0)>>
-		<<set _vignettes.push({text: "$he disappointed a citizen who was sure $he could get $slaves[$i].slaveName's cock erect,", type: "rep", effect: -1})>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who seems unthreatened by $his soft dick,", type: "rep", effect: 1})>>
-	<</if>>
-<<elseif ($slaves[$i].hormoneBalance <= -100)>>
-	<<if ($slaves[$i].dick == 0)>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a female citizen who adores the masculinity produced by $slaves[$i].slaveName's hormone regime,", type: "rep", effect: 1})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].dick > 0) && canPenetrate($slaves[$i])>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who likes to see his wife get fucked by a dickgirl whore,", type: "rep", effect: 1})>>
-	<<if ($slaves[$i].dick > 3)>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a female citizen who likes big stiff cocks, and cannot lie,", type: "rep", effect: 1})>>
-		<<set _vignettes.push({text: "$he irritated a male citizen who brought his girlfriend with him by accidentally showing him up,", type: "rep", effect: -1})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].balls > 3)>>
-	<<set _vignettes.push({text: "$he disappoints a citizen who wants $him to look like a natural girl, since $his balls are too big to be hidden,", type: "rep", effect: -1})>>
-<</if>>
-<<if canDoVaginal($slaves[$i])>>
-	<<if ($slaves[$i].vagina == 1)>>
-		<<set _vignettes.push({text: "$he got extra attention from a citizen who really likes $him, and wants to fuck $his pussy as much as possible while it's still tight,", type: "rep", effect: 1})>>
-	<<elseif ($slaves[$i].vagina > 2)>>
-		<<set _vignettes.push({text: "$he disappointed a citizen whose cock is just too small for $his big cunt,", type: "rep", effect: -1})>>
-		<<if ($slaves[$i].behavioralQuirk == "cutting") && ($slaves[$i].intelligence >= 2)>>
-			<<set _vignettes.push({text: "$he helped a citizen discover a new fetish by making cutting remarks when his cock was too small for $his big cunt,", type: "rep", effect: 1})>>
-		<<elseif ($slaves[$i].behavioralFlaw == "bitchy")>>
-			<<set _vignettes.push({text: "$he irritated a male citizen with $his complaints that he was too small to please $him,", type: "rep", effect: -3})>>
+	<<set _vignette = GetVignette($slaves[$i])>>
+	__This week__ _vignette.text
+	<<if (_vignette.type == "cash")>>
+		<<if (_vignette.effect > 0)>>
+			@@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@
+		<<elseif (_vignette.effect < 0)>>
+			@@.red;losing you <<print cashFormat(Math.abs(Math.trunc($FResult*_vignette.effect)))>>.@@
+		<<else>>
+			an incident without lasting effect.
 		<</if>>
-	<</if>>
-<</if>>
-<<if canDoAnal($slaves[$i])>>
-	<<if ($slaves[$i].anus == 1)>>
-		<<set _vignettes.push({text: "$he got extra attention from a citizen who really likes $his butthole, and wants to fuck it as much as possible while it's still tight,", type: "rep", effect: 1})>>
-	<<elseif ($slaves[$i].anus > 2)>>
-		<<set _vignettes.push({text: "$he disappointed a citizen whose cock is just too small for $his loose butthole,", type: "rep", effect: -1})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].face > 40)>>
-	<<set _vignettes.push({text: "$he lost a potential citizen who was so intimidated by $his great beauty that he decided to find a homelier whore,", type: "rep", effect: -1})>>
-<<elseif ($slaves[$i].face < -10)>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who lacks self-confidence, and is more comfortable with homely whores,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].physicalAge > 40)>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen with serious mommy issues,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].lips > 70)>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who likes to play with $his lips nonsexually (don't ask),", type: "rep", effect: 1})>>
-<</if>>
-<<if !canTalk($slaves[$i])>>
-	<<set _vignettes.push({text: "$he impressed a citizen who didn't know how relaxing a girl who can't talk could be,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].muscles > 95)>>
-	<<set _vignettes.push({text: "$he impressed a citizen who was so eager to share workout plans with $him that he almost forgot to have sex with $him,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he gained extra gratitude from a female citizen who likes a girl who can bench-press $him before and after they fuck,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disappointed a citizen by accidentally revealing that $he's considerably stronger than him,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].lactation > 0)>>
-	<<set _vignettes.push({text: "$he provided fresh milk for the coffee served at a citizen's business meeting,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he provided fresh milk at a trendy arcology coffeehouse,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].amp == 1)>>
-	<<set _vignettes.push({text: "$he disappointed a citizen who thought he'd enjoy fucking an amputee, but found it revolting,", type: "rep", effect: -1})>>
-<<else>>
-	<<if ($slaves[$i].heels == 1)>>
-	<<if ($slaves[$i].shoes != "heels") && ($slaves[$i].shoes != "pumps") && ($slaves[$i].shoes != "extreme heels") && ($slaves[$i].shoes != "boots")>>
-		<<set _vignettes.push({text: "$he enticed a new patron who had never really considered buttsex before he saw $him crawling along with $his asshole vulnerable,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-	<<if ($slaves[$i].boobs > 1500)>>
-	<<if ($slaves[$i].boobsImplant == 0)>>
-	<<set _vignettes.push({text: "a young citizen convinced $him to jump rope so he could watch $his massive natural breasts flop around,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].vaginalAccessory == "chastity belt")>>
-	<<set _vignettes.push({text: "a wavering citizen who was disappointed that $his pussy is unavailable decided to try $his ass instead,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].fetish == "mindbroken")>>
-	<<set _vignettes.push({text: "a citizen really enjoyed being able to treat $him however he liked without eliciting a reaction,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].intelligence <= -2)>>
-	<<set _vignettes.push({text: "a low-class citizen who had no business fucking $him managed to trick $him into fucking him anyway,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].face > 10)>>
-	<<if ($slaves[$i].dick > 0)>>
-	<<if ($slaves[$i].fetish == "buttslut")>>
-		<<set _vignettes.push({text: "a citizen was surprised by $his penis, so $he hid it and enjoyed the buttsex without touching it,", type: "rep", effect: 1})>>
-	<<elseif ($slaves[$i].analSkill >= 100)>>
-		<<set _vignettes.push({text: "a citizen was surprised by $his penis, so $he hid it and skillfully pretended to be a real girl,", type: "rep", effect: 1})>>
-	<<elseif ($slaves[$i].fetish == "buttslut")>>
-		<<set _vignettes.push({text: "a citizen was surprised by $his penis, so $he hid it, but could barely tolerate anal without touching it", type: "rep", effect: -1})>>
-	<</if>>
-	<</if>>
-	<<if canDoAnal($slaves[$i])>>
-		<<if ($slaves[$i].analSkill < 100)>>
-			<<if ($slaves[$i].anus > 2)>>
-				<<set _vignettes.push({text: "a pair of customers enticed by $his beauty but disappointed by $his loose butthole doubled up on $his poor anus without mercy,", type: "health", effect: -1})>>
+		<<set $cash += Math.trunc($FResult*_vignette.effect)>>
+		<<set _incomeStats.rep += Math.trunc($FResult*_vignette.effect)>>
+	<<elseif (_vignette.type == "devotion")>>
+		<<if (_vignette.effect > 0)>>
+			<<if $slaves[$i].devotion > 50>>
+			@@.hotpink;increasing her devotion to you.@@
+			<<elseif $slaves[$i].devotion >= -20>>
+			@@.hotpink;increasing her acceptance of you.@@
+			<<elseif $slaves[$i].devotion >= -50>>
+			@@.hotpink;reducing her dislike of you.@@
+			<<else>>
+			@@.hotpink;reducing her hatred of you.@@
+			<</if>>
+		<<elseif (_vignette.effect < 0)>>
+			<<if $slaves[$i].devotion > 50>>
+			@@.mediumorchid;reducing her devotion to you.@@
+			<<elseif $slaves[$i].devotion >= -20>>
+			@@.mediumorchid;reducing her acceptance of you.@@
+			<<elseif $slaves[$i].devotion >= -50>>
+			@@.mediumorchid;increasing her dislike of you.@@
+			<<else>>
+			@@.mediumorchid;increasing her hatred of you.@@
 			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].fetishKnown == 1)>>
-<<if ($slaves[$i].fetishStrength > 95)>>
-	<<if ($slaves[$i].fetish == "buttslut") || ($slaves[$i].fetish == "dom")>>
-	<<set _vignettes.push({text: "$he showed off by forcing a slave in the stocks to eat $his ass", type: "rep", effect: 1})>>
-	<<elseif ($slaves[$i].fetish == "masochist")>>
-	<<set _vignettes.push({text: "$he cooperated with a customer who wanted to whip $his tits black and blue", type: "health", effect: -1})>>
-	<</if>>
-<</if>>
-<</if>>
-<<if ($slaves[$i].health < 20)>>
-	<<set _vignettes.push({text: "$he attracted the attention of a slaveowner alarmed by $his poor health, and thought he seemed kind,", type: "devotion", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].vaginalSkill >= 100)>>
-	<<set _vignettes.push({text: "$he was brought in to apply $his skills to a prominent citizen's virgin son,", type: "devotion", effect: 0})>>
-<</if>>
-<<if canDoAnal($slaves[$i])>>
-	<<if ($slaves[$i].analSkill < 100)>>
-		<<if ($slaves[$i].anus < 2)>>
-			<<set _vignettes.push({text: "a guy with a huge cock insisted on fucking $him in $his tight ass all night,", type: "health", effect: -1})>>
-		<</if>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].relationship <= -2)>>
-<<if ($slaves[$i].intelligence < 1)>>
-	<<set _vignettes.push({text: "$he accidentally mentions how much $he loves you during intercourse with a citizen who doesn't like to share,", type: "rep", effect: -1})>>
-<</if>>
-<</if>>
-<<if ($slaves[$i].prestige > 0)>>
-	<<set _vignettes.push({text: "a college fraternity visiting the arcology for rush week invited $him to a gangbang,", type: "rep", effect: 3})>>
-<</if>>
-
-<<if $arcologies[0].FSSupremacist != "unset">>
-	<<if ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>>
-	<<set _vignettes.push({text: "$he disappointed a citizen who couldn't bear to see a beautiful $arcologies[0].FSSupremacistRace be a public slut,", type: "rep", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSSubjugationist != "unset">>
-	<<if ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>>
-	<<set _vignettes.push({text: "$he had a bad time in general, since most of the citizens who used $him didn't care about a $arcologies[0].FSSubjugationistRace prostitute's health or well-being,", type: "health", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSYouthPreferentialist != "unset">>
-	<<if ($slaves[$i].visualAge > 35)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who wants to keep his MILF fetish in the closet,", type: "rep", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSMaturityPreferentialist != "unset">>
-	<<if ($slaves[$i].visualAge <= 20)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who wants to keep his fetish for young girls in the closet,", type: "rep", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSGenderRadicalist != "unset">>
-	<<if ($slaves[$i].dick > 0)>>
-	<<if ($slaves[$i].dick < 3)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who is coming to terms with Gender Radicalism, and is unthreatened by $his little penis,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-<<elseif $arcologies[0].FSGenderFundamentalist != "unset">>
-	<<if ($slaves[$i].visualAge > 25)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who thinks $he resembles his ex-wife, who would never let him fuck $his butt,", type: "rep", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSRepopulationFocus != "unset">>
-	<<if ($slaves[$i].pregType > 1) && ($slaves[$i].pregKnown > 1) && ($slaves[$i].belly >= 10000)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who enjoys the feeling of a womb filled with more than a single child,", type: "rep", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSRestart != "unset">>
-	<<if canGetPregnant($slaves[$i])>>
-	<<set _vignettes.push({text: "$he gratified a citizen who misses the risk of getting a girl pregnant,", type: "rep", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSPaternalist != "unset">>
-	<<if ($slaves[$i].intelligence > 1)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who likes to chat with intelligent prostitutes as they fuck her,", type: "rep", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSDegradationist != "unset">>
-	<<if canTalk($slaves[$i])>>
-	<<if ($slaves[$i].voice > 2)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who prefers girls with high-pitched screams,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSBodyPurist != "unset">>
-	<<if ($slaves[$i].boobsImplant > 0)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who wants to keep his fetish for breast implants in the closet,", type: "rep", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSTransformationFetishist != "unset">>
-	<<if ($slaves[$i].boobsImplant == 0)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who wants to keep his fetish for natural breasts in the closet,", type: "rep", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>
-	<<if ($slaves[$i].voice > 2)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who loves $his high-pitched squeals of pleasure,", type: "rep", effect: 1})>>
-	<</if>>
-	<<if ($slaves[$i].boobs > 800)>>
-	<<set _vignettes.push({text: "$he was publicly mocked as an ugly fat cow with dangling udders,", type: "rep", effect: -1})>>
-	<</if>>
-<<elseif $arcologies[0].FSAssetExpansionist != "unset">>
-	<<if ($slaves[$i].boobs < 300)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who wants to keep his fetish for flat chested girls in the closet,", type: "rep", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSPastoralist != "unset">>
-	<<if ($slaves[$i].lactation == 0)>>
-		<<set _vignettes.push({text: "$he disappointed a citizen who could not understand why nothing was coming out of $his nipples when he sucked on them,", type: "rep", effect: -1})>>
-	<</if>>
-	<<if $slaves[$i].nipples == "fuckable">>
-		<<set _vignettes.push({text: "$he left a citizen deeply confused over how $he could possibly be a proper cow without suitable teats,", type: "rep", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSPhysicalIdealist != "unset">>
-	<<if ($slaves[$i].muscles <= 95)>>
-	<<set _vignettes.push({text: "$he disappointed a citizen who could barely believe that $he wasn't capable of holding $himself in a handstand,", type: "rep", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSChattelReligionist != "unset">>
-	<<if ($slaves[$i].behavioralFlaw == "devout")>>
-	<<set _vignettes.push({text: "$he gratified a citizen who desperately wants his cock to be the one that converts $him,", type: "rep", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSRomanRevivalist != "unset">>
-	<<if ($slaves[$i].race == "white")>>
-	<<if ($slaves[$i].height >= 185)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who thought $his appearance worthy of a lusty northern barbarian,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSAztecRevivalist != "unset">>
-	<<if ($slaves[$i].devotion > 75)>>
-	<<if ($slaves[$i].intelligence >= 2)>>
-	<<set _vignettes.push({text: "$he indulged a citizen by following a fertility ritual completely,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSEgyptianRevivalist != "unset">>
-	<<set _vignettes.push({text: "$he got extra attention from a group of citizens competing to get off with whores of each of the arcology's ethnic groups in the least time,", type: "rep", effect: 1})>>
-<</if>>
-<<if $arcologies[0].FSEdoRevivalist != "unset">>
-	<<if ($slaves[$i].face > 40)>>
-	<<if ($slaves[$i].intelligence > 1)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who wished to do nothing more than converse with a beautiful and intelligent girl,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSArabianRevivalist != "unset">>
-	<<if ($slaves[$i].entertainSkill >= 100)>>
-	<<if canTalk($slaves[$i])>>
-	<<if ($slaves[$i].voice > 0)>>
-	<<if ($slaves[$i].accent < 2)>>
-	<<set _vignettes.push({text: "$he gratified a citizen who prefers prostitutes who can tell lovely stories,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-	<</if>>
-	<</if>>
-<</if>>
-
-<<set _vignettes.push({text: "one of the companies with an office in your arcology brought $him in for a team-building bukkake party for its employees,", type: "rep", effect: 1})>>
-<<set _vignettes.push({text: "a man dragged his crying wife along so $he could watch him fuck a public slut,", type: "rep", effect: 0})>>
-<<set _vignettes.push({text: "a woman dragged her angry husband along so he could watch her get eaten out by a public slut,", type: "rep", effect: 0})>>
-<<set _vignettes.push({text: "$he went to sleep after having sex with strangers all day, and had a dream about you loving $him,", type: "devotion", effect: 1})>>
-<<set _vignettes.push({text: "$he went to sleep after having sex with strangers all day, and had a dream about you letting a citizen hurt $him,", type: "devotion", effect: -1})>>
-<<set _vignettes.push({text: "$he went to sleep after having sex with strangers all day, and had a dream about you protecting $him from a mean citizen,", type: "trust", effect: 1})>>
-<<set _vignettes.push({text: "$he went to sleep after having sex with strangers all day, and had a dream about you selling $him for good,", type: "trust", effect: -1})>>
-
-<<set _vignette = _vignettes.random()>>
-__This week__ _vignette.text
-<<if (_vignette.type == "cash")>>
-	<<if (_vignette.effect > 0)>>
-		@@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@
-	<<elseif (_vignette.effect < 0)>>
-		@@.red;losing you <<print cashFormat(Math.abs(Math.trunc($FResult*_vignette.effect)))>>.@@
-	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $cash += Math.trunc($FResult*_vignette.effect)>>
-	<<set _incomeStats.rep += Math.trunc($FResult*_vignette.effect)>>
-<<elseif (_vignette.type == "devotion")>>
-	<<if (_vignette.effect > 0)>>
-		<<if $slaves[$i].devotion > 50>>
-		@@.hotpink;increasing $his devotion to you.@@
-		<<elseif $slaves[$i].devotion >= -20>>
-		@@.hotpink;increasing $his acceptance of you.@@
-		<<elseif $slaves[$i].devotion >= -50>>
-		@@.hotpink;reducing $his dislike of you.@@
 		<<else>>
-		@@.hotpink;reducing $his hatred of you.@@
+			an incident without lasting effect.
 		<</if>>
-	<<elseif (_vignette.effect < 0)>>
-		<<if $slaves[$i].devotion > 50>>
-		@@.mediumorchid;reducing $his devotion to you.@@
-		<<elseif $slaves[$i].devotion >= -20>>
-		@@.mediumorchid;reducing $his acceptance of you.@@
-		<<elseif $slaves[$i].devotion >= -50>>
-		@@.mediumorchid;increasing $his dislike of you.@@
+		<<set $slaves[$i].devotion += 1*_vignette.effect>>
+	<<elseif (_vignette.type == "trust")>>
+		<<if (_vignette.effect > 0)>>
+			<<if $slaves[$i].trust > 20>>
+			@@.mediumaquamarine;increasing her trust in you.@@
+			<<elseif $slaves[$i].trust >= -50>>
+			@@.mediumaquamarine;reducing her fear of you.@@
+			<<else>>
+			@@.mediumaquamarine;reducing her terror of you.@@
+			<</if>>
+		<<elseif (_vignette.effect < 0)>>
+			<<if $slaves[$i].trust > 20>>
+			@@.gold;reducing her trust in you.@@
+			<<elseif $slaves[$i].trust > -20>>
+			@@.gold;increasing her fear of you.@@
+			<<else>>
+			@@.gold;increasing her terror of you.@@
+			<</if>>
 		<<else>>
-		@@.mediumorchid;increasing $his hatred of you.@@
+			an incident without lasting effect.
 		<</if>>
-	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $slaves[$i].devotion += 1*_vignette.effect>>
-<<elseif (_vignette.type == "trust")>>
-	<<if (_vignette.effect > 0)>>
-		<<if $slaves[$i].trust > 20>>
-		@@.mediumaquamarine;increasing $his trust in you.@@
-		<<elseif $slaves[$i].trust >= -50>>
-		@@.mediumaquamarine;reducing $his fear of you.@@
+		<<set $slaves[$i].trust += 1*_vignette.effect>>
+	<<elseif (_vignette.type == "health")>>
+		<<if (_vignette.effect > 0)>>
+			@@.green;improving her health.@@
+		<<elseif (_vignette.effect < 0)>>
+			@@.red;affecting her health.@@
 		<<else>>
-		@@.mediumaquamarine;reducing $his terror of you.@@
+			an incident without lasting effect.
 		<</if>>
-	<<elseif (_vignette.effect < 0)>>
-		<<if $slaves[$i].trust > 20>>
-		@@.gold;reducing $his trust in you.@@
-		<<elseif $slaves[$i].trust > -20>>
-		@@.gold;increasing $his fear of you.@@
+		<<set $slaves[$i].health += 2*_vignette.effect>>
+	<<else>>
+		<<if (_vignette.effect > 0)>>
+			@@.green;gaining you a bit of reputation.@@
+		<<elseif (_vignette.effect < 0)>>
+			@@.red;losing you a bit of reputation.@@
 		<<else>>
-		@@.gold;increasing $his terror of you.@@
+			an incident without lasting effect.
 		<</if>>
-	<<else>>
-		an incident without lasting effect.
+		<<set $rep += Math.trunc($FResult*_vignette.effect*0.1)>>
+		<<set _incomeStats.income += Math.trunc($FResult*_vignette.effect*0.1)>>
 	<</if>>
-	<<set $slaves[$i].trust += 1*_vignette.effect>>
-<<elseif (_vignette.type == "health")>>
-	<<if (_vignette.effect > 0)>>
-		@@.green;improving $his health.@@
-	<<elseif (_vignette.effect < 0)>>
-		@@.red;affecting $his health.@@
-	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $slaves[$i].health += 2*_vignette.effect>>
-<<else>>
-	<<if (_vignette.effect > 0)>>
-		@@.green;gaining you a bit of reputation.@@
-	<<elseif (_vignette.effect < 0)>>
-		@@.red;losing you a bit of reputation.@@
-	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $rep += Math.trunc($FResult*_vignette.effect*0.1)>>
-	<<set _incomeStats.income += Math.trunc($FResult*_vignette.effect*0.1)>>
 <</if>>
 
-<</if>> /* CLOSES VIGNETTES */
-
 <<if $slaves[$i].energy > 40 && $slaves[$i].energy < 95>>
 	Being used sexually all week @@.lime;increases $his sex drive.@@
 	<<set $slaves[$i].energy += 1>>
diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw
index 11006fb34814de731d0689eb7e87640fbd7dc40c..c4f5cd8b32d18796f42515d3dae733c2b63a4725 100644
--- a/src/uncategorized/saWhore.tw
+++ b/src/uncategorized/saWhore.tw
@@ -254,7 +254,7 @@ $His appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a d
 	<<set $slaves[$i].health -= 7>>
 	<<set $injury = 1>>
 <<elseif ($slaves[$i].vagina < 0)>>
-	<<set $desc = SlaveTitle($slaves[$i])>>
+	<<SlaveTitle $slaves[$i]>>
 	<<if (($slaves[$i].analSkill + $slaves[$i].oralSkill) >= 200)>>
 	$He's such an expert whore that $he copes with the stress of being a $desc prostitute.
 	<<elseif random(1,100) > 40+(10*($slaves[$i].analSkill + $slaves[$i].oralSkill))>>
@@ -1188,651 +1188,87 @@ In total, you were paid @@.yellowgreen;<<print cashFormat(Math.trunc($beauty*$FR
 <</if>>
 <</if>>
 
-/* VIGNETTES */
-
 <<if ($showVignettes == 1)>>
-<<set _vignettes = []>>
-
-<<set $seed = random(1,10)>>
-<<switch $seed>>
-<<case 1>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he witnessed a domestic dispute over another whore,", type: "rep", effect: 0})>>
-<<case 2>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he saw a free whore finally sink into slavery,", type: "rep", effect: 0})>>
-<<case 3>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that construction forced $him to move from $his usual spot,", type: "rep", effect: 0})>>
-<<case 4>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that a customer used a new and improved sex toy on $him,", type: "rep", effect: 0})>>
-<<case 5>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was an appointment with an unusually perverted family,", type: "rep", effect: 0})>>
-<<case 6>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he saw a man sell his wife into slavery,", type: "rep", effect: 0})>>
-<<case 7>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he saw a woman sell her daughters into slavery,", type: "rep", effect: 0})>>
-<<case 8>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he watched a citizen descend into aphrodisiac addiction,", type: "rep", effect: 0})>>
-<<case 9>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he watched a citizen develop the beginnings of sex addiction,", type: "rep", effect: 0})>>
-<<default>>
-	<<set _vignettes.push({text: "the most interesting thing that happened to $him at work was that $he witnessed a citizen administering a brutal public punishment to one of his slaves,", type: "rep", effect: 0})>>
-<</switch>>
-<<set $seed = random(1,5)>>
-<<switch $seed>>
-<<case 1>>
-	<<set _vignettes.push({text: "a citizen punished one of his slaves by tying her up in public near where $slaves[$i].slaveName was working. This cut into $his business that day,", type: "cash", effect: -1})>>
-<<case 2>>
-	<<set _vignettes.push({text: "a citizen shared one of his slaves with the public near where $slaves[$i].slaveName was working. This cut into $his business that day,", type: "cash", effect: -1})>>
-<<case 3>>
-	<<set _vignettes.push({text: "a private brothel offered a promotion near where $slaves[$i].slaveName was working. This cut into $his business that day,", type: "cash", effect: -1})>>
-<<case 4>>
-	<<set _vignettes.push({text: "some free sluts threw an aphrodisiac street party near where $slaves[$i].slaveName was working. This cut into $his business that day,", type: "cash", effect: -1})>>
-<<default>>
-	<<set _vignettes.push({text: "a contract breaker was punished with the pillory near where $slaves[$i].slaveName was working. This cut into $his business that day,", type: "cash", effect: -1})>>
-<</switch>>
-<<set $seed = random(1,5)>>
-<<switch $seed>>
-<<case 1>>
-	<<set _vignettes.push({text: "one of $his regular customers got a divorce and came to $him for repeated consolation,", type: "cash", effect: 1})>>
-<<case 2>>
-	<<set _vignettes.push({text: "a brothel near where $slaves[$i].slaveName usually works had business trouble,", type: "cash", effect: 1})>>
-<<case 3>>
-	<<set _vignettes.push({text: "a competing whore that looks like $him fell ill, driving a customer to look for an alternative,", type: "cash", effect: 1})>>
-<<case 4>>
-	<<set _vignettes.push({text: "a street whore that works near $him was badly beaten by an abusive customer and had to take time off. The reduced competition got $him more business,", type: "cash", effect: 1})>>
-<<default>>
-	<<set _vignettes.push({text: "an influx of tourists came into $his part of the arcology, earning $him more business for a day,", type: "cash", effect: 1})>>
-<</switch>>
-
-<<if ($slaves[$i].fetishKnown == 1)>>
-<<switch $slaves[$i].fetish>>
-<<case "submissive">>
-	<<set _vignettes.push({text: "$he deeply impressed a customer with $his sincere submission to him,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he lost a customer who secretly wanted $him to show a little initiative,", type: "cash", effect: -1})>>
-<<case "cumslut">>
-	<<set _vignettes.push({text: "$he deeply impressed a customer with $his hunger for his cum,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a customer who didn't know how much cum fetishes revolted him until $he displayed hers,", type: "rep", effect: -1})>>
-<<case "humiliation">>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer who didn't know how much he liked public sex until $he got him to try it,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a customer who didn't know how much exhibitionism turned him off until he tried public sex with $him,", type: "rep", effect: -1})>>
-<<case "buttslut">>
-	<<if canDoAnal($slaves[$i])>>
-		<<set _vignettes.push({text: "$he earned repeat business from a customer who didn't know how much he liked fucking buttholes until $he got him to try fucking hers,", type: "cash", effect: 1})>>
-		<<set _vignettes.push({text: "$he disgusted a customer who didn't know how much buttsex turned him off until $he got him to try fucking $his ass,", type: "rep", effect: -1})>>
-	<</if>>
-	<<if $slaves[$i].butt >= 3>>
-		<<set _vignettes.push({text: "$he earned repeat business from a customer who didn't know how much he liked big butts until $he gave him a lap dance he'll never forget,", type: "cash", effect: 1})>>
-	<</if>>
-	<<set _vignettes.push({text: "$he earned extra gratitude from a citizen who appreciated a nice rear, even if it is off limits,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a customer who didn't know how much butts turned him off until he put $his hands on $hers,", type: "rep", effect: -1})>>
-<<case "boobs">>
-	<<set _vignettes.push({text: "$he deeply impressed a customer by orgasming to nothing but the feeling of her sucking $his nipples,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disappointed a female customer who didn't know how uninterested $he was in nipple play before trying it,", type: "rep", effect: -1})>>
-	<<if $slaves[$i].nipples == "fuckable">>
-		<<set _vignettes.push({text: "$he left a lasting impression on a pair of customer after nearly passing out from a series of intense orgasms from getting $his nipples fucked,", type: "cash", effect: 2})>>
-	<</if>>
-<<case "sadist">>
-	<<set _vignettes.push({text: "$he deeply impressed a customer who brought his own slave to $him for abuse with $his sadism,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a customer brought $him his own slave to abuse, but the sight proved to be a turn off for him,", type: "rep", effect: -1})>>
-<<case "masochist">>
-	<<set _vignettes.push({text: "$he helped a customer discover a new fetish by orgasming when he accidentally hurt $him,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he disturbed a customer who accidentally hurt $him by orgasming,", type: "rep", effect: -1})>>
-<<case "dom">>
-	<<set _vignettes.push({text: "$he made a female customer $his bitch: fortunately, the customer wanted to be $his bitch and came back for more", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$he accidentally overwhelmed a customer with $his sexual dominance,", type: "rep", effect: -1})>>
-<<case "pregnancy">>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer who didn't know how much he liked pregnancy play until $he begged him to knock $him up,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a customer who didn't know how much pregnancy play turned him off until $he begged him to knock $him up,", type: "rep", effect: -1})>>
-<</switch>>
-<</if>>
-<<switch $slaves[$i].behavioralFlaw>>
-<<case "arrogant">>
-	<<set _vignettes.push({text: "$he manages to give a citizen the impression $he thinks $himself better than him,", type: "rep", effect: -1})>>
-<<case "bitchy">>
-	<<set _vignettes.push({text: "$he makes an emasculating remark to a customer right after he fucks $him,", type: "rep", effect: -1})>>
-<<case "odd">>
-	<<set _vignettes.push({text: "$he infuriates a potential customer with $his nervous tics,", type: "cash", effect: -1})>>
-<<case "hates men">>
-	<<set _vignettes.push({text: "$his disgust towards men surfaces at a bad time, losing $him a male customer,", type: "cash", effect: -1})>>
-<<case "hates women">>
-	<<set _vignettes.push({text: "$his disgust towards women surfaces at a bad time, losing $him a female customer,", type: "cash", effect: -1})>>
-<<case "gluttonous">>
-	<<set _vignettes.push({text: "$he accidentally lingers at a meal, missing a customer appointment,", type: "cash", effect: -1})>>
-<<case "anorexic">>
-	<<set _vignettes.push({text: "$his bulimia surfaces at an extremely inopportune moment, turning a customer off,", type: "cash", effect: -1})>>
-<<case "devout">>
-	<<set _vignettes.push({text: "a customer catches $him praying to $himself as he inserts himself into $him, turning him off,", type: "cash", effect: -1})>>
-<<case "liberated">>
-	<<set _vignettes.push({text: "$he treats a rude potential customer impolitely, because $he thinks that's fair,", type: "cash", effect: -1})>>
-<</switch>>
-<<switch $slaves[$i].sexualFlaw>>
-<<case "hates oral">>
-	<<set _vignettes.push({text: "$he vomits while trying to deepthroat a customer,", type: "rep", effect: -1})>>
-<<case "hates anal">>
-	<<set _vignettes.push({text: "$he cries while taking anal from a customer who isn't into painal,", type: "rep", effect: -1})>>
-<<case "hates penetration">>
-	<<set _vignettes.push({text: "$he cries while taking a pounding from a customer who likes his sex consensual,", type: "rep", effect: -1})>>
-<<case "shamefast">>
-	<<set _vignettes.push({text: "$he cries while a potential customer looks $him over,", type: "cash", effect: -1})>>
-	<<set _vignettes.push({text: "$he disrobed so slowly that a potential customer gave up on $him,", type: "cash", effect: -1})>>
-<<case "idealistic">>
-	<<set _vignettes.push({text: "$he cries when explaining the price of $his body to a potential customer,", type: "cash", effect: -1})>>
-<<case "repressed">>
-	<<set _vignettes.push({text: "$he misunderstands a potential customer's lewd requests, turning her off,", type: "cash", effect: -1})>>
-<<case "apathetic">>
-	<<set _vignettes.push({text: "$he fails to notice when a customer achieves orgasm,", type: "rep", effect: -1})>>
-<<case "neglectful">>
-	<<set _vignettes.push({text: "$he brings a denial fetishist to orgasm three times without cumming $himself, earning their repeat business,", type: "cash", effect: 3})>>
-<<case "cum addict">>
-	<<set _vignettes.push({text: "$he's so focused on sucking down a customer's cum that $he managed to drive him to repeated orgasm, earning his repeated business once he got the feeling back in his legs,", type: "cash", effect: 3})>>
-<<case "anal addict">>
-	<<set _vignettes.push({text: "$he takes a trio of dicks in $his ass without hesitation, earning repeat business from one of them thoroughly impressed by $his anal addiction,", type: "cash", effect: 3})>>
-<<case "attention whore">>
-	<<set _vignettes.push({text: "$he got repeat business from a man who loves fucking $him in the middle of crowded rooms,", type: "cash", effect: 3})>>
-<<case "breast growth">>
-	<<set _vignettes.push({text: "$he got repeat business from a woman with huge breasts who enjoys roleplaying her breast expansion fetishes with $him,", type: "cash", effect: 3})>>
-<<case "abusive">>
-	<<set _vignettes.push({text: "$he got repeat business from a man who loves physically abusive sex, though his testicles could only take so much in one week,", type: "cash", effect: 2})>>
-<<case "malicious">>
-	<<set _vignettes.push({text: "$he got repeat business from a masochistic woman who enjoys being whipped and degraded,", type: "cash", effect: 3})>>
-<<case "self hating">>
-	<<set _vignettes.push({text: "$he got repeat business from an abusive man who thoroughly enjoyed how diligently $he took it,", type: "cash", effect: 3})>>
-<<case "breeder">>
-	<<set _vignettes.push({text: "$he got repeat business from a pregnancy fetishist nearly driven mad with lust over her pregnancy obsession,", type: "cash", effect: 3})>>
-<</switch>>
-<<switch $slaves[$i].behavioralQuirk>>
-<<case "confident">>
-	<<set _vignettes.push({text: "$he confidently presses forward with a wavering potential customer, and makes the sale,", type: "cash", effect: 1})>>
-<<case "cutting">>
-	<<set _vignettes.push({text: "$he makes such a gloriously cutting remark to a male customer that a female bystander comes to $him for repeat business,", type: "cash", effect: 1})>>
-<<case "funny">>
-	<<set _vignettes.push({text: "$he makes a group of citizens laugh so hard, one of them comes to $him for repeat business,", type: "cash", effect: 1})>>
-<<case "fitness">>
-	<<set _vignettes.push({text: "$he continues a marathon gangbang past the point where most would have passed out,", type: "cash", effect: 1})>>
-<<case "adores women">>
-	<<set _vignettes.push({text: "$he strikes up a personal friendship with a regular female customer,", type: "rep", effect: 1})>>
-<<case "adores men">>
-	<<set _vignettes.push({text: "$he strikes up a personal friendship with a regular male customer,", type: "rep", effect: 1})>>
-<<case "insecure">>
-	<<set _vignettes.push({text: "$he successfully convinces a regular customer that $he's reliant on him emotionally,", type: "cash", effect: 1})>>
-<<case "sinful">>
-	<<set _vignettes.push({text: "$he helps a customer get past her religious hangups through sex with her friendly neighborhood whore,", type: "rep", effect: 1})>>
-<<case "advocate">>
-	<<set _vignettes.push({text: "$he successfully convinces a wavering potential customer that there's nothing wrong with banging a whore,", type: "cash", effect: 1})>>
-<</switch>>
-<<switch $slaves[$i].sexualQuirk>>
-<<case "gagfuck queen">>
-	<<set _vignettes.push({text: "$he earns repeat business from a citizen who's obsessed with gagfucks,", type: "cash", effect: 1})>>
-<<case "painal queen">>
-	<<set _vignettes.push({text: "$he earns repeat business from a citizen who's obsessed with painal,", type: "cash", effect: 1})>>
-<<case "strugglefuck queen">>
-	<<set _vignettes.push({text: "$he earns repeat business from a citizen who's obsessed with strugglefucking,", type: "cash", effect: 1})>>
-<<case "tease">>
-	<<set _vignettes.push({text: "$he convinces a citizen who's never had sex with a prostitute to patronize $him with some truly inspired flirting,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "a few partiers were so impressed with $his provocative teasing that they repeated $his wit to friends,", type: "rep", effect: 1})>>
-<<case "romantic">>
-	<<set _vignettes.push({text: "a citizen becomes infatuated with $him, since he's convinced $he's infatuated with him,", type: "cash", effect: 1})>>
-<<case "perverted">>
-	<<set _vignettes.push({text: "$he earns some momentary notoriety by engaging in a previously unheard-of sex act,", type: "rep", effect: 1})>>
-<<case "caring">>
-	<<set _vignettes.push({text: "$he serves as an impromptu sounding board for a customer having marital trouble,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a customer was so enamored with $his kind and caring manner than he proposed to $him and offered to take $him away, and when $he refused, he left a sizable tip,", type: "cash", effect: 1})>>
-<</switch>>
-<<if ($slaves[$i].pitKills > 0)>>
-	<<set _vignettes.push({text: "$he earns repeat business from a customer obsessed with the fact that $he's a killer,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].oralCount > 500)>>
-	<<set _vignettes.push({text: "a customer into degradation becomes obsessed with driving $his oral mileage as high as possible,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].analCount > 500) && ($slaves[$i].anus > 0)>>
-	<<set _vignettes.push({text: "a customer into degradation becomes obsessed with driving $his anal mileage as high as possible,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].vaginalCount > 500) && ($slaves[$i].vagina > 0)>>
-	<<set _vignettes.push({text: "a customer into degradation becomes obsessed with driving $his pussy mileage as high as possible,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].devotion > 95)>>
-	<<set _vignettes.push({text: "$he really pushed $himself to please a customer with tastes that disgusted $him,", type: "cash", effect: 1})>>
-<<elseif ($slaves[$i].devotion < -50)>>
-	<<set _vignettes.push({text: "$his fury at being sold for sex turned a customer off before he could fuck $him,", type: "cash", effect: -1})>>
-<<elseif ($slaves[$i].devotion <= 20)>>
-	<<set _vignettes.push({text: "$he treasured a love token given to $him by a customer $he fooled into thinking $his affection was real,", type: "devotion", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].trust > 95)>>
-	<<set _vignettes.push({text: "$he really pushed $himself to accept a customer with tastes that frightened $him,", type: "cash", effect: 1})>>
-<<elseif ($slaves[$i].trust < -50)>>
-	<<set _vignettes.push({text: "$his tearful terror at being forced to sell $himself for sex turned a customer off before he could fuck $him,", type: "cash", effect: -1})>>
-<</if>>
-<<if $slaves[$i].livingRules == "luxurious">>
-	<<set _vignettes.push({text: "$he got a truly perfect night's sleep, which put $him in the right frame of mind for the whole day,", type: "rep", effect: 1})>>
-<<elseif $slaves[$i].livingRules == "spare">>
-	<<set _vignettes.push({text: "$he got a poor night's sleep in the noisy dormitory, which took the shine off $his efforts for the whole day", type: "rep", effect: -1})>>
-<</if>>
-<<if $slaves[$i].releaseRules == "permissive" || $slaves[$i].releaseRules == "masturbation">>
-	<<set _vignettes.push({text: "a customer asked if $he masturbates, and then spent an hour jerking off as $he described how,", type: "cash", effect: 1})>>
-<<elseif $slaves[$i].releaseRules == "restrictive">>
-	<<set _vignettes.push({text: "a customer asked if $he masturbates, and seemed disappointed when $he answered honestly,", type: "cash", effect: 0})>>
-<<else>>
-	<<set _vignettes.push({text: "a closeted female customer asked about $his sex life with other slaves, and was enthralled by $his answer,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].health > 80)>>
-	<<set _vignettes.push({text: "a potential customer in the medical field was fascinated by $his health, and spent almost as much time examining $him as he did having sex with $him,", type: "cash", effect: 1})>>
-<</if>>
-<<if $arcologies[0].FSHedonisticDecadence != "unset">>
-	<<if ($slaves[$i].weight < 10)>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a customer who misses girls without a spare tire around their middle,", type: "cash", effect: 1})>>
-	<<elseif ($slaves[$i].weight < 95)>>
-		<<set _vignettes.push({text: "a potential customer told $him that he's looking forward to patronizing $him once $he gains a lot more weight,", type: "cash", effect: 0})>>
-	<<else>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a customer who loves them big and soft", type: "cash", effect: 0})>>
-	<</if>>
-	<<if ($slaves[$i].weight > 30)>>
-		<<set _vignettes.push({text: "$he earned extra gratitude from a customer who enjoyed the way $his middle jiggled as he fucked $him,", type: "cash", effect: 0})>>
-	<</if>>
-<<else>>
-	<<if ($slaves[$i].weight > 95)>>
-		<<set _vignettes.push({text: "a potential customer told $him that he's looking forward to patronizing $him once $he loses a lot of weight.", type: "cash", effect: 0})>>
-	<<elseif ($slaves[$i].weight > 30)>>
-		<<set _vignettes.push({text: "a potential customer told $him that he's looking forward to patronizing $him once $he loses some weight.", type: "cash", effect: 0})>>
-	<<elseif ($slaves[$i].weight <= -30)>>
-		<<set _vignettes.push({text: "a potential customer told $him that he's looking forward to patronizing $him once $he gains some weight.", type: "cash", effect: 0})>>
-	<<elseif ($slaves[$i].weight < -95)>>
-		<<set _vignettes.push({text: "a potential customer told $him that he's looking forward to patronizing $him once $he gains a lot of weight.", type: "cash", effect: 0})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].drugs == "testicle enhancement")>>
-	<<set _vignettes.push({text: "$he took it in public, with $his copious ejaculation getting $him another customer right away,", type: "cash", effect: 1})>>
-<<elseif ($slaves[$i].drugs == "hyper testicle enhancement")>>
-	<<set _vignettes.push({text: "$he bloated a female customer's belly with $his copious ejaculate, leading $him to say $he is looking forward to come back and get filled again,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].aphrodisiacs > 1) || ($slaves[$i].inflationType == "aphrodisiac")>>
-	<<set _vignettes.push({text: "$his piteous begging for sex due to $his extreme aphrodisiac dosage turned a potential customer off,", type: "cash", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].inflationType == "aphrodisiac")>>
-	<<set _vignettes.push({text: "$his piteous begging for sex coupled with $his bloated belly pleased a customer who loves desperate girls,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$his piteous begging for sex coupled with $his bloated belly horrified a customer who didn't realize how low a girl could stoop,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].addict > 50)>>
-	<<set _vignettes.push({text: "$he zoned out badly due to a low point between aphrodisiac doses, disappointing a customer,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].bellyPreg >= 10000) || ($slaves[$i].bellyImplant >= 10000)>>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer who likes to do nothing more than cuddle with $his swollen belly,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "a night with guy who likes rough, hard sex with heavily pregnant girls took its toll on $him", type: "health", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].bellyFluid >= 5000)>>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer who loved the way $his belly moved as he fucked $him,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$he disgusted a customer when his forceful fucking caused $him to release $his contained $slaves[$i].inflationType all over him,", type: "rep", effect: -2})>>
-<</if>>
-<<if ($slaves[$i].hormoneBalance >= 100) && !canAchieveErection($slaves[$i])>>
-	<<if ($slaves[$i].dick > 0)>>
-		<<set _vignettes.push({text: "$he disappointed a customer who was sure $he could get $slaves[$i].slaveName's cock erect,", type: "rep", effect: -1})>>
-		<<set _vignettes.push({text: "$he earned repeat business from a customer who seems unthreatened by $his soft dick,", type: "cash", effect: 1})>>
-	<</if>>
-<<elseif ($slaves[$i].hormoneBalance <= -100)>>
-	<<if ($slaves[$i].dick == 0)>>
-		<<set _vignettes.push({text: "$he earned repeat business from a female customer who adores the masculinity produced by $slaves[$i].slaveName's hormone regime,", type: "cash", effect: 1})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].dick > 0) && canPenetrate($slaves[$i])>>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer who likes to see his wife get fucked by a dickgirl whore,", type: "cash", effect: 1})>>
-	<<if ($slaves[$i].dick > 3)>>
-		<<set _vignettes.push({text: "$he earned repeat business from a female customer who likes big stiff cocks, and cannot lie,", type: "cash", effect: 1})>>
-		<<set _vignettes.push({text: "$he irritated a male customer who brought his girlfriend with him by accidentally showing him up,", type: "rep", effect: -1})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].balls > 3)>>
-	<<set _vignettes.push({text: "$he loses a customer who wants $him to look like a natural girl, since $his balls are too big to be hidden,", type: "cash", effect: -1})>>
-<</if>>
-<<if canDoVaginal($slaves[$i])>>
-	<<if ($slaves[$i].vagina == 1)>>
-		<<set _vignettes.push({text: "$he got extra business from a customer who really likes $him, and wants to fuck $his pussy as much as possible while it's still tight,", type: "cash", effect: 1})>>
-	<<elseif ($slaves[$i].vagina > 2)>>
-		<<set _vignettes.push({text: "$he disappointed a customer whose cock is just too small for $his big cunt,", type: "rep", effect: -1})>>
-		<<if ($slaves[$i].behavioralQuirk == "cutting") && ($slaves[$i].intelligence >= 2)>>
-			<<set _vignettes.push({text: "$he helped a customer discover a new fetish by making cutting remarks when his cock was too small for $his big cunt,", type: "rep", effect: 1})>>
-		<<elseif ($slaves[$i].behavioralFlaw == "bitchy")>>
-			<<set _vignettes.push({text: "$he irritated a male customer with $his complaints that he was too small to please $him,", type: "rep", effect: -2})>>
-		<</if>>
-	<</if>>
-<</if>>
-<<if canDoAnal($slaves[$i])>>
-	<<if ($slaves[$i].anus == 1)>>
-		<<set _vignettes.push({text: "$he got extra business from a customer who really likes $his butthole, and wants to fuck it as much as possible while it's still tight,", type: "cash", effect: 1})>>
-	<<elseif ($slaves[$i].anus > 2)>>
-		<<set _vignettes.push({text: "$he disappointed a customer whose cock is just too small for $his loose butthole,", type: "rep", effect: -1})>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].face > 40)>>
-	<<set _vignettes.push({text: "$he lost a potential customer who was so intimidated by $his great beauty that he decided to find a homelier whore,", type: "cash", effect: -1})>>
-<<elseif ($slaves[$i].face < -10)>>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer who lacks self-confidence, and is more comfortable with homely whores,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].visualAge > 40)>>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer with serious mommy issues,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].lips > 70)>>
-	<<set _vignettes.push({text: "$he earned repeat business from a customer who likes to play with $his lips nonsexually (don't ask),", type: "cash", effect: 1})>>
-<</if>>
-<<if !canTalk($slaves[$i])>>
-	<<set _vignettes.push({text: "$he impressed a customer who didn't know how relaxing a girl who can't talk could be,", type: "rep", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].muscles > 95)>>
-	<<set _vignettes.push({text: "$he impressed a customer who was so eager to share workout plans with $him that he almost forgot to have sex with $him,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "$he gained repeat business from a female customer who likes a girl who can bench-press $him before and after they fuck,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$he disappointed a customer by accidentally revealing that $he's considerably stronger than him,", type: "rep", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].lactation > 0)>>
-	<<set _vignettes.push({text: "$he was well compensated for providing fresh milk for the coffee served at a customer's business meeting", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "$he served as a conveniently lactating whore near a trendy arcology coffeehouse,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].amp == 1)>>
-	<<set _vignettes.push({text: "$he disappointed a customer who thought he'd enjoy fucking an amputee, but found it revolting,", type: "rep", effect: -1})>>
-<<elseif ($slaves[$i].amp == -1)>>
-	<<set _vignettes.push({text: "a strange customer was excited by the sight of $his prosthetic limbs,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a customer was disgusted at the thought of $his basic prosthetic limbs,", type: "rep", effect: -1})>>
-	<<set _vignettes.push({text: "a customer was put off by $his prosthetic limbs,", type: "rep", effect: -1})>>
-<<elseif ($slaves[$i].amp == -2)>>
-	<<set _vignettes.push({text: "a customer was excited by $his vibrating fingertips,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,", type: "cash", effect: 0})>>
-	<<set _vignettes.push({text: "a customer was put off by $his crude artificial limbs,", type: "rep", effect: -1})>>
-<<elseif ($slaves[$i].amp == -3)>>
-	<<set _vignettes.push({text: "a strange customer was excited by the sight of $his artificial limbs,", type: "rep", effect: 1})>>
-	<<set _vignettes.push({text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,", type: "cash", effect: 0})>>
-	<<set _vignettes.push({text: "a customer was put off by the sight of $his prosthetic limbs,", type: "rep", effect: -1})>>
-<<elseif ($slaves[$i].amp == -4)>>
-	<<set _vignettes.push({text: "a customer was excited by the thought of having sex with a slave with p-limbs, but was scared off by $his combat p-limbs,", type: "cash", effect: -1})>>
-	<<set _vignettes.push({text: "a customer was indifferent to the thought of having sex with a slave with artificial limbs,", type: "cash", effect: 0})>>
-	<<set _vignettes.push({text: "a customer was greatly intimidated by $his combat p-limbs,", type: "cash", effect: -1})>>
-<<elseif ($slaves[$i].amp == -5)>>
-	<<set _vignettes.push({text: "a customer was fascinated by $his cybernetic limbs, and spent almost as much time examining them as he did having sex with $him,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "a customer was excited by the thought of having sex with a cybernetically enhanced slave,", type: "cash", effect: 1})>>
-	<<set _vignettes.push({text: "a customer was greatly intimidated by the sight of $his cybernetic limbs and was frightened away,", type: "cash", effect: -1})>>
-<<else>>
-	<<if ($slaves[$i].heels == 1)>>
-	<<if ($slaves[$i].shoes != "heels") && ($slaves[$i].shoes != "pumps") && ($slaves[$i].shoes != "extreme heels") && ($slaves[$i].shoes != "boots")>>
-		<<set _vignettes.push({text: "$he enticed a new customer who had never really considered buttsex before he saw $him crawling along with $his asshole vulnerable,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-	<<if ($slaves[$i].boobs > 1500)>>
-	<<if ($slaves[$i].boobsImplant == 0)>>
-	<<set _vignettes.push({text: "a young customer hired $him to jump rope so he could watch $his massive natural breasts flop around,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].vaginalAccessory == "chastity belt")>>
-	<<set _vignettes.push({text: "a wavering customer who was disappointed that $his pussy is unavailable decided to try $his ass instead,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].fetish == "mindbroken")>>
-	<<set _vignettes.push({text: "a customer really enjoyed being able to treat $him however he liked without eliciting a reaction,", type: "cash", effect: 1})>>
-<</if>>
-<<if ($slaves[$i].intelligence <= -2)>>
-	<<set _vignettes.push({text: "a customer managed to trick $him into fucking him without payment,", type: "cash", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].face > 10)>>
-<</if>>
-<<if ($slaves[$i].face > 10)>>
-	<<if ($slaves[$i].dick > 0)>>
-	<<if ($slaves[$i].fetish == "buttslut")>>
-		<<set _vignettes.push({text: "a customer was surprised by $his penis, so $he hid it and enjoyed the buttsex without touching it,", type: "rep", effect: 1})>>
-	<<elseif ($slaves[$i].analSkill >= 100)>>
-		<<set _vignettes.push({text: "a customer was surprised by $his penis, so $he hid it and skillfully pretended to be a real girl,", type: "rep", effect: 1})>>
-	<<elseif ($slaves[$i].fetish == "buttslut")>>
-		<<set _vignettes.push({text: "a customer was surprised by $his penis, so $he hid it, but could barely tolerate anal without touching it", type: "rep", effect: -1})>>
-	<</if>>
-	<</if>>
-	<<if canDoAnal($slaves[$i])>>
-		<<if ($slaves[$i].analSkill < 100)>>
-			<<if ($slaves[$i].anus > 2)>>
-				<<set _vignettes.push({text: "a pair of customers enticed by $his beauty but disappointed by $his loose butthole doubled up on $his poor anus without mercy,", type: "health", effect: -1})>>
+	<<set _vignette = GetVignette($slaves[$i])>>
+	__This week__ _vignette.text
+	<<if (_vignette.type == "cash")>>
+		<<if (_vignette.effect > 0)>>
+			@@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@
+		<<elseif (_vignette.effect < 0)>>
+			@@.red;losing you <<print cashFormat(Math.abs(Math.trunc($FResult*_vignette.effect)))>>.@@
+		<<else>>
+			an incident without lasting effect.
+		<</if>>
+		<<set $cash += Math.trunc($FResult*_vignette.effect)>>
+		<<set _incomeStats.rep += Math.trunc($FResult*_vignette.effect)>>
+	<<elseif (_vignette.type == "devotion")>>
+		<<if (_vignette.effect > 0)>>
+			<<if $slaves[$i].devotion > 50>>
+			@@.hotpink;increasing her devotion to you.@@
+			<<elseif $slaves[$i].devotion >= -20>>
+			@@.hotpink;increasing her acceptance of you.@@
+			<<elseif $slaves[$i].devotion >= -50>>
+			@@.hotpink;reducing her dislike of you.@@
+			<<else>>
+			@@.hotpink;reducing her hatred of you.@@
+			<</if>>
+		<<elseif (_vignette.effect < 0)>>
+			<<if $slaves[$i].devotion > 50>>
+			@@.mediumorchid;reducing her devotion to you.@@
+			<<elseif $slaves[$i].devotion >= -20>>
+			@@.mediumorchid;reducing her acceptance of you.@@
+			<<elseif $slaves[$i].devotion >= -50>>
+			@@.mediumorchid;increasing her dislike of you.@@
+			<<else>>
+			@@.mediumorchid;increasing her hatred of you.@@
+			<</if>>
+		<<else>>
+			an incident without lasting effect.
+		<</if>>
+		<<set $slaves[$i].devotion += 1*_vignette.effect>>
+	<<elseif (_vignette.type == "trust")>>
+		<<if (_vignette.effect > 0)>>
+			<<if $slaves[$i].trust > 20>>
+			@@.mediumaquamarine;increasing her trust in you.@@
+			<<elseif $slaves[$i].trust >= -50>>
+			@@.mediumaquamarine;reducing her fear of you.@@
+			<<else>>
+			@@.mediumaquamarine;reducing her terror of you.@@
+			<</if>>
+		<<elseif (_vignette.effect < 0)>>
+			<<if $slaves[$i].trust > 20>>
+			@@.gold;reducing her trust in you.@@
+			<<elseif $slaves[$i].trust > -20>>
+			@@.gold;increasing her fear of you.@@
+			<<else>>
+			@@.gold;increasing her terror of you.@@
 			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].fetishKnown == 1)>>
-<<if ($slaves[$i].fetishStrength > 95)>>
-	<<if ($slaves[$i].fetish == "buttslut") || ($slaves[$i].fetish == "dom")>>
-	<<set _vignettes.push({text: "$he advertised $himself by forcing a slave in the stocks to eat $his ass, drumming up business,", type: "cash", effect: 1})>>
-	<<elseif ($slaves[$i].fetish == "masochist")>>
-	<<set _vignettes.push({text: "$he cooperated with a citizen who wanted to whip $his tits black and blue", type: "health", effect: -1})>>
-	<</if>>
-<</if>>
-<</if>>
-<<if ($slaves[$i].health < 20)>>
-	<<set _vignettes.push({text: "$he attracted the attention of a slaveowner alarmed by $his poor health, and thought he seemed kind,", type: "devotion", effect: -1})>>
-<</if>>
-<<if ($slaves[$i].vaginalSkill >= 100)>>
-	<<set _vignettes.push({text: "$he was hired to apply $his skills to a customer's virgin son,", type: "devotion", effect: 0})>>
-<</if>>
-<<if canDoAnal($slaves[$i])>>
-	<<if ($slaves[$i].analSkill < 100)>>
-		<<if ($slaves[$i].anus < 2)>>
-			<<set _vignettes.push({text: "a guy with a huge cock paid for the right to fuck $him in $his tight ass all night,", type: "health", effect: -1})>>
-		<</if>>
-	<</if>>
-<</if>>
-<<if ($slaves[$i].relationship <= -2)>>
-<<if ($slaves[$i].intelligence < 1)>>
-	<<set _vignettes.push({text: "$he accidentally mentions how much $he loves you during intercourse with a customer who doesn't like to share,", type: "rep", effect: -1})>>
-<</if>>
-<</if>>
-<<if ($slaves[$i].prestige > 0)>>
-	<<set _vignettes.push({text: "a college fraternity visiting the arcology for rush week hired $him for a gangbang,", type: "cash", effect: 3})>>
-<</if>>
-
-<<if $arcologies[0].FSSupremacist != "unset">>
-	<<if ($slaves[$i].race == $arcologies[0].FSSupremacistRace)>>
-	<<set _vignettes.push({text: "$he lost a customer who couldn't bear to see a beautiful $arcologies[0].FSSupremacistRace be a whore,", type: "cash", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSSubjugationist != "unset">>
-	<<if ($slaves[$i].race == $arcologies[0].FSSubjugationistRace)>>
-	<<set _vignettes.push({text: "$he had a bad time in general, since most of $his customers didn't care about a $arcologies[0].FSSubjugationistRace prostitute's health or well-being,", type: "health", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSYouthPreferentialist != "unset">>
-	<<if ($slaves[$i].visualAge > 35)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who wants to keep his MILF fetish in the closet,", type: "cash", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSMaturityPreferentialist != "unset">>
-	<<if ($slaves[$i].visualAge <= 20)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who wants to keep his fetish for young girls in the closet,", type: "cash", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSGenderRadicalist != "unset">>
-	<<if ($slaves[$i].dick > 0)>>
-	<<if ($slaves[$i].dick < 3)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who is coming to terms with Gender Radicalism, and is unthreatened by $his little penis,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-<<elseif $arcologies[0].FSGenderFundamentalist != "unset">>
-	<<if ($slaves[$i].visualAge > 25)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who thinks $he resembles his ex-wife, who would never let him fuck her butt,", type: "cash", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSRepopulationFocus != "unset">>
-	<<if ($slaves[$i].pregType > 1) && ($slaves[$i].pregKnown > 1) && ($slaves[$i].belly >= 10000)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who loves fucking girls with wombs filled by more than a single child,", type: "cash", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSRestart != "unset">>
-	<<if canGetPregnant($slaves[$i])>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who misses the risk of getting a girl pregnant,", type: "cash", effect: 3})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSPaternalist != "unset">>
-	<<if ($slaves[$i].intelligence > 1)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who likes to chat with intelligent prostitutes as they fuck $him,", type: "cash", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSDegradationist != "unset">>
-	<<if canTalk($slaves[$i])>>
-	<<if ($slaves[$i].voice > 2)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who prefers girls with high-pitched screams,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSBodyPurist != "unset">>
-	<<if ($slaves[$i].boobsImplant > 0)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who wants to keep his fetish for breast implants in the closet,", type: "cash", effect: 1})>>
-	<</if>>
-<<elseif $arcologies[0].FSTransformationFetishist != "unset">>
-	<<if ($slaves[$i].boobsImplant == 0)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who wants to keep his fetish for natural breasts in the closet,", type: "cash", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSSlimnessEnthusiast != "unset">>
-	<<if canTalk($slaves[$i])>>
-	<<if ($slaves[$i].voice > 2)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who loves $his high-pitched squeals of pleasure,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-	<<if ($slaves[$i].boobs > 800)>>
-	<<set _vignettes.push({text: "$he was publicly mocked as an ugly fat cow with dangling udders,", type: "rep", effect: -1})>>
-	<</if>>
-<<elseif $arcologies[0].FSAssetExpansionist != "unset">>
-	<<if ($slaves[$i].boobs < 300)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who wants to keep his fetish for flat chested girls in the closet,", type: "cash", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSPastoralist != "unset">>
-	<<if ($slaves[$i].lactation == 0)>>
-		<<set _vignettes.push({text: "$he lost a customer who could not understand why nothing was coming out of $his nipples when he sucked on them,", type: "cash", effect: -1})>>
-	<</if>>
-	<<if $slaves[$i].nipples == "fuckable">>
-		<<set _vignettes.push({text: "$he lost a customer who refused $he could possibly be a proper cow with nipples like hers,", type: "cash", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSPhysicalIdealist != "unset">>
-	<<if ($slaves[$i].muscles <= 95)>>
-	<<set _vignettes.push({text: "$he lost a customer who could barely believe that $he wasn't capable of holding $himself in a handstand,", type: "cash", effect: -1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSChattelReligionist != "unset">>
-	<<if ($slaves[$i].behavioralFlaw == "devout")>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who desperately wants his cock to be the one that converts $him,", type: "cash", effect: 1})>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSRomanRevivalist != "unset">>
-	<<if ($slaves[$i].race == "white")>>
-	<<if ($slaves[$i].height >= 185)>>
-	<<set _vignettes.push({text: "$he attracted a customer who thought $his appearance worthy of a lusty northern barbarian,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSAztecRevivalist != "unset">>
-	<<if ($slaves[$i].devotion > 75)>>
-	<<if ($slaves[$i].intelligence >= 2)>>
-	<<set _vignettes.push({text: "$he indulged a citizen by following a fertility ritual completely,", type: "rep", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSEgyptianRevivalist != "unset">>
-	<<set _vignettes.push({text: "$he got extra business from a group of citizens competing to get off with whores of each of the arcology's ethnic groups in the least time,", type: "cash", effect: 1})>>
-<</if>>
-<<if $arcologies[0].FSEdoRevivalist != "unset">>
-	<<if ($slaves[$i].face > 40)>>
-	<<if ($slaves[$i].intelligence > 1)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who wished to do nothing more than converse with a beautiful and intelligent girl,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[0].FSArabianRevivalist != "unset">>
-	<<if ($slaves[$i].entertainSkill >= 100)>>
-	<<if canTalk($slaves[$i])>>
-	<<if ($slaves[$i].voice > 0)>>
-	<<if ($slaves[$i].accent < 2)>>
-	<<set _vignettes.push({text: "$he got repeat business from a customer who prefers prostitutes who can tell lovely stories,", type: "cash", effect: 1})>>
-	<</if>>
-	<</if>>
-	<</if>>
-	<</if>>
-<</if>>
-
-<<set _vignettes.push({text: "one of the companies with an office in your arcology retained $him for a team-building bukkake party for its employees,", type: "rep", effect: 1})>>
-<<set _vignettes.push({text: "a man dragged his crying wife along so $he could watch him fuck a whore,", type: "rep", effect: 0})>>
-<<set _vignettes.push({text: "a woman dragged her angry husband along so he could watch her get eaten out by a whore,", type: "rep", effect: 0})>>
-<<set _vignettes.push({text: "$he went to sleep after being sold for sex all day, and had a dream about you loving $him,", type: "devotion", effect: 1})>>
-<<set _vignettes.push({text: "$he went to sleep after being sold for sex all day, and had a dream about you letting a customer hurt $him,", type: "devotion", effect: -1})>>
-<<set _vignettes.push({text: "$he went to sleep after being sold for sex all day, and had a dream about you protecting $him from a mean customer,", type: "trust", effect: 1})>>
-<<set _vignettes.push({text: "$he went to sleep after being sold for sex all day, and had a dream about you selling $him for good,", type: "trust", effect: -1})>>
-
-<<set _vignette = _vignettes.random()>>
-__This week__ _vignette.text
-<<if (_vignette.type == "cash")>>
-	<<if (_vignette.effect > 0)>>
-		@@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@
-	<<elseif (_vignette.effect < 0)>>
-		@@.red;losing you <<print cashFormat(Math.abs(Math.trunc($FResult*_vignette.effect)))>>.@@
-	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $cash += Math.trunc($FResult*_vignette.effect)>>
-	<<set _incomeStats.income += Math.trunc($FResult*_vignette.effect)>>
-<<elseif (_vignette.type == "devotion")>>
-	<<if (_vignette.effect > 0)>>
-		<<if $slaves[$i].devotion > 50>>
-		@@.hotpink;increasing $his devotion to you.@@
-		<<elseif $slaves[$i].devotion >= -20>>
-		@@.hotpink;increasing $his acceptance of you.@@
-		<<elseif $slaves[$i].devotion > -10>>
-		@@.hotpink;reducing $his dislike of you.@@
 		<<else>>
-		@@.hotpink;reducing $his hatred of you.@@
-		<</if>>
-	<<elseif (_vignette.effect < 0)>>
-		<<if $slaves[$i].devotion > 50>>
-		@@.mediumorchid;reducing $his devotion to you.@@
-		<<elseif $slaves[$i].devotion >= -20>>
-		@@.mediumorchid;reducing $his acceptance of you.@@
-		<<elseif $slaves[$i].devotion > -10>>
-		@@.mediumorchid;increasing $his dislike of you.@@
+			an incident without lasting effect.
+		<</if>>
+		<<set $slaves[$i].trust += 1*_vignette.effect>>
+	<<elseif (_vignette.type == "health")>>
+		<<if (_vignette.effect > 0)>>
+			@@.green;improving her health.@@
+		<<elseif (_vignette.effect < 0)>>
+			@@.red;affecting her health.@@
 		<<else>>
-		@@.mediumorchid;increasing $his hatred of you.@@
+			an incident without lasting effect.
 		<</if>>
+		<<set $slaves[$i].health += 2*_vignette.effect>>
 	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $slaves[$i].devotion += 1*_vignette.effect>>
-<<elseif (_vignette.type == "trust")>>
-	<<if (_vignette.effect > 0)>>
-		<<if $slaves[$i].trust > 20>>
-		@@.mediumaquamarine;increasing $his trust in you.@@
-		<<elseif $slaves[$i].trust > -10>>
-		@@.mediumaquamarine;reducing $his fear of you.@@
+		<<if (_vignette.effect > 0)>>
+			@@.green;gaining you a bit of reputation.@@
+		<<elseif (_vignette.effect < 0)>>
+			@@.red;losing you a bit of reputation.@@
 		<<else>>
-		@@.mediumaquamarine;reducing $his terror of you.@@
+			an incident without lasting effect.
 		<</if>>
-	<<elseif (_vignette.effect < 0)>>
-		<<if $slaves[$i].trust > 20>>
-		@@.gold;reducing $his trust in you.@@
-		<<elseif $slaves[$i].trust > -20>>
-		@@.gold;increasing $his fear of you.@@
-		<<else>>
-		@@.gold;increasing $his terror of you.@@
-		<</if>>
-	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $slaves[$i].trust += 1*_vignette.effect>>
-<<elseif (_vignette.type == "health")>>
-	<<if (_vignette.effect > 0)>>
-		@@.green;improving $his health.@@
-	<<elseif (_vignette.effect < 0)>>
-		@@.red;affecting $his health.@@
-	<<else>>
-		an incident without lasting effect.
+		<<set $rep += Math.trunc($FResult*_vignette.effect*0.1)>>
+		<<set _incomeStats.income += Math.trunc($FResult*_vignette.effect*0.1)>>
 	<</if>>
-	<<set $slaves[$i].health += 2*_vignette.effect>>
-<<else>>
-	<<if (_vignette.effect > 0)>>
-		@@.green;gaining you a bit of reputation.@@
-	<<elseif (_vignette.effect < 0)>>
-		@@.red;losing you a bit of reputation.@@
-	<<else>>
-		an incident without lasting effect.
-	<</if>>
-	<<set $rep += Math.trunc($FResult*_vignette.effect*0.1)>>
-	<<set _incomeStats.rep += Math.trunc($FResult*_vignette.effect*0.1)>>
 <</if>>
 
-<</if>> /* CLOSES VIGNETTES */
-
 <<if $slaves[$i].energy > 40 && $slaves[$i].energy < 95>>
 	Being used sexually all week @@.lime;increases $his sex drive.@@
 	<<set $slaves[$i].energy++>>