diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 9c0291cd03f3b7fabf5bdb7abfee68bf5d4d027b..7410a16019ab8dd868113fb115654934f8ee94d5 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -6830,10 +6830,6 @@ window.PoliteRudeTitle = function PoliteRudeTitle(slave) {
 	return r;
 };
 
-window.EventNameDelink = function EventNameDelink(slave) {
-	$("#name").empty().text(SlaveFullName(slave));
-};
-
 window.SlaveTitle = function SlaveTitle(slave) {
 	const V = State.variables;
 	let r = "";
@@ -7184,6 +7180,446 @@ window.SlaveTitle = function SlaveTitle(slave) {
 	return r;
 };
 
+window.DegradingName = function DegradingName(slave) {
+	const V = State.variables;
+	const leadershipPosition = [
+		"be the Attendant",
+		"be the Stewardess",
+		"be the Milkmaid",
+		"be the DJ",
+		"be your Concubine",
+		"be the Madam",
+		"be the Schoolteacher",
+		"be the Wardeness",
+		"be the Nurse",
+		"be your Head Girl",
+		"guard you",
+		"recruit girls"];
+	let names = [];
+	let suffixes = [];
+		
+	if (slave.fuckdoll > 0) {
+		slave.slaveName = "Fuckdoll No. " + slave.ID;
+		slave.slaveSurname = 0;
+	} else if (slave.assignment == "work in the dairy" && V.dairyRestraintsSetting >= 2) {
+		slave.slaveName = "Bioreactor No. " + slave.ID;
+		slave.slaveSurname = 0;
+	} else {	
+		if (V.seeRace === 1) {
+			switch (slave.race) {
+				case "white":
+					names.push("Pale", "White");
+					break;
+				case "asian":
+					names.push("Asian", "Yellow");
+					break;
+				case "latina":
+					names.push("Brown", "Latina");
+					break;
+				case "black":
+					names.push("Black", "Dark");
+					break;
+				case "pacific islander":
+					names.push("Islander", "Sea");
+					break;
+				case "malay":
+					names.push("Cinnamon", "Pinoy", "Spice");
+					break;
+				case "southern european":
+					names.push("Mediterranean", "Olive");
+					break;
+				case "amerindian":
+					names.push("Indian", "Reservation");
+					break;
+				case "semitic":
+					names.push("Semitic");
+					break;
+				case "middle eastern":
+					names.push("Arab", "Sand");
+					break;
+				case "indo-aryan":
+					names.push("Brown", "Indian");
+					break;
+				case "mixed race":
+					names.push("Mulatto", "Mutt");
+					break;
+			}
+		}
+		names.push(slave.hColor);
+		if (slave.eyes === -2) {
+			names.push("Blind", "Eyeless", "Sightless");
+		}
+		if (slave.boobs >= 2000) {
+			suffixes.push("Boob", "Boobs", "Titty");
+		}
+		if (slave.boobs < 500 && slave.butt < 3) {
+			names.push("Girly", "Slim", "Thin");
+		}
+		if (slave.boobs < 300) {
+			names.push("Flat");
+		}
+		if (slave.anus > 2 || slave.vagina > 2) {
+			names.push("Gaping", "Hallway", "Slit", "Wideopen");
+		}
+		if (slave.weight > 160) {
+			names.push("Cow", "Fat", "Whale", "Fatass", "Blimp");
+		} else if (slave.weight > 30) {
+			names.push("Chubby", "Fat", "Whale");
+		} else if (slave.weight <= -30) {
+			names.push("Bony", "Rail", "Skinny");
+		}
+		if (slave.muscles > 30) {
+			names.push("Huge", "Muscles", "Ripped", "Strong");
+		}
+		if (slave.fetishKnown === 1) {
+			if (slave.fetish == "buttslut") {
+				names.push("Anal", "Sodomy");
+			} 
+			if (slave.fetish == "cumslut") {
+				names.push("Cum", "Dicksuck", "Sucker");
+			}
+			if (slave.fetish == "humiliation") {
+				names.push("Rape");
+			}
+			if (slave.fetish == "masochist") {
+				names.push("Pain", "Rape", "Struggle");
+			}
+			if (slave.fetish == "pregnancy") {
+				names.push("Fertile");
+			}
+		}
+		if (slave.boobs*slave.lactation > 1000) {
+			names.push("Creamy", "Milky");
+			suffixes.push("Cow");
+		}
+		if (slave.oralSkill <= 30 && slave.analSkill <= 30) {
+			names.push("Cheap", "Fail", "Gutter");
+		}
+		if (slave.nipples == "fuckable") {
+			names.push("Nipplefuck", "Nipplecunt");
+		} else if (slave.nipples != "tiny" && slave.nipples != "cute") {
+			names.push("Pointy", "Titclit");
+			suffixes.push("Nipples");
+		}
+		if (slave.visualAge > 35) {
+			names.push("Mature");
+			suffixes.push("Cougar", "MILF");
+		} else if (slave.visualAge < 25) {
+			names.push("Girly", "Thin", "Young");
+		}
+		if (slave.amp === 1) {
+			names.push("Stumpy");
+			suffixes.push("Stumpy");
+		}
+		if (slave.boobsImplant > 1000 || slave.buttImplant > 3) {
+			names.push("Fake", "Plastic", "Silicone");
+		}
+		if (slave.dick > 5 && slave.balls > 5) {
+			names.push("Potent");
+			suffixes.push("Cannon", "Daddy");
+		}
+		if (slave.preg > 30) {
+			if (slave.broodmother === 2) {
+				names.push("Bursting", "Seeded");
+				suffixes.push("Factory", "Nursery");
+			} else if (slave.broodmother === 1) {
+				names.push("Bloated", "Stuffed");
+				suffixes.push("Breeder", "Factory");
+			}
+		}
+		if (slave.bellyPreg >= 450000) {
+			names.push("Bulging", "Squirming");
+		}
+		if (slave.bellyPreg >= 5000) {
+			names.push("Preg");
+			suffixes.push("Belly", "Mommy");
+		}
+		if (slave.belly > 150000) {
+			suffixes.push("Balloon");
+		}
+		if (slave.belly > 1500) {
+			suffixes.push("Belly");
+		}
+		if (slave.dick > 0) {
+			if (slave.dick > 4) {
+				names.push("Dangle", "Hung");
+				suffixes.push("Cock", "Dick");
+			}
+			if (slave.balls === 0) {
+				names.push("Cut", "Gelded", "Soft");
+			} else {
+				names.push("Erect", "Hard", "Stiff");
+			}
+		}
+		if (slave.dick === 1) {
+			names.push("Micro", "Tiny");
+			suffixes.push("Bitch");
+		}
+		if (slave.height >= 185) {
+			names.push("Tall", "Top");
+			suffixes.push("Tower");
+		} else if (slave.height < 150) {
+			names.push("Stumpy", "Tiny");
+			suffixes.push("Shortstack", "Stumpy");
+		}
+		if (slave.whoreSkill > 95) {
+			names.push("Money", "Street");
+			suffixes.push("Whore");
+		}
+		if (slave.entertainSkill > 95) {
+			names.push("Easy", "Club");
+			suffixes.push("Slut");
+		}
+		if (slave.oralSkill > 95) {
+			names.push("Suck");
+			suffixes.push("Throat");
+		}
+		if (slave.vaginalSkill > 95) {
+			suffixes.push("Channel", "Kegel", "Pussy");
+		}
+		if (slave.analSkill > 95) {
+			suffixes.push("Asspussy", "Sphincter");
+		}
+		if (slave.intelligence > 1) {
+			names.push("Bright", "Clever", "Smart");
+			if (slave.intelligenceImplant === 1) {
+				names.push("College", "Graduate", "Nerdy");
+			}
+		} else if (slave.intelligence < -1) {
+			names.push("Cretin", "Dumb", "Retarded", "Stupid");
+		}
+		if (slave.vagina === 1 && slave.vaginaSkill <= 10) {
+			names.push("Fresh", "New", "Tight");
+		}
+		if (slave.devotion < -75) {
+			names.push("Angry", "Biter", "Caged");
+		} else if (slave.devotion < -50) {
+			names.push("Cell", "Cuffs");
+		} else if (slave.devotion < -20) {
+			names.push("Bag", "Box");
+		} else if (slave.devotion <= 20) {
+			names.push("Sad", "Whiner");
+		} else if (slave.devotion > 50) {
+			names.push("Prize");
+			if (slave.visualAge > 35) {
+				names.push("Queen");
+			} else if (slave.visualAge < 25) {
+				names.push("Princess");
+			}
+		}
+		if (slave.trust < -50) {
+			names.push("Screaming");
+			suffixes.push("Sobber");
+		} else if (slave.trust < -20) {
+			names.push("Crying");
+			suffixes.push("Meat", "Tears", "Thing", "Weeper");
+		} else if (slave.trust < 20) {
+			names.push("Begging");
+		}
+		
+		
+		if (slave.dick === 0) {
+			if (slave.vagina === -1) {
+				suffixes.push("Null");
+			} else {
+				if (slave.visualAge < 25) {
+					suffixes.push("Girl");
+				}
+			}
+		} else {
+			if (slave.vagina != -1) {
+				suffixes.push("Futa");
+			} else {
+				if (slave.balls > 0) {
+					if (slave.boobs > 300 && slave.butt > 2) { /* SHEMALES: cock & balls, T&A above minimum */
+						suffixes.push("Shemale");
+					} else {
+						if (slave.shoulders < 1 && slave.muscles <= 30) {
+							if (slave.faceShape == "masculine" || slave.faceShape == "androgynous") { /* SISSIES: feminine shoulders or muscles, masculine faces */
+								suffixes.push("Sissy");
+							} else { /* TRAPS: feminine shoulders or muscles, feminine faces */
+								suffixes.push("Trap");
+							}
+						} else { /* BITCHES: masculine shoulders or muscles */
+							suffixes.push("Bitch");
+						}
+					}
+				} else {
+					if (slave.visualAge > 35) {
+						suffixes.push("DickMILF");
+					} else if (slave.visualAge >= 25) {
+						suffixes.push("Dickslave");
+					} else {
+						suffixes.push("Dickgirl");
+					}
+				}
+			}
+		}
+		if (slave.anus > 0) {
+			suffixes.push("Anus", "Asshole", "Backdoor", "Butt", "Butthole");
+		}
+		if (slave.anus === 1) {
+			suffixes.push("Tightass", "Tightbutt");
+		}
+		if (slave.vagina > 0) {
+			suffixes.push("Cunt", "Pussy", "Vagina");
+		}
+		if (slave.boobs < 500 && slave.butt < 3 && slave.dick > 0) {
+			suffixes.push("Bitch", "Bottom", "Sissy", "Trap");
+		}
+		if (slave.energy > 95) {
+			suffixes.push("Fuck", "Fuckaddict", "Nympho", "Sexaddict");
+		}
+		if (slave.fetishKnown === 1) {
+			if (slave.fetish == "humiliation") {
+				suffixes.push("Rapebait", "Showgirl");
+			}
+			if (slave.fetish == "submissive") {
+				suffixes.push("Bottom", "Fuckee", "Rapebait");
+			}
+			if (slave.fetish == "dom") {
+				suffixes.push("Dom", "Fucker", "Top");
+			}
+			if (slave.fetish == "pregnancy") {
+				suffixes.push("Breeder", "Mommy");
+			}
+			if (slave.fetish == "boobs") {
+				suffixes.push("Boob", "Boobie", "Tit", "Titty");
+			}
+		}
+		if (slave.births >= 2) {
+			suffixes.push("Breeder");
+			if (slave.births >= 5) {
+				suffixes.push("Broodmother");
+			}
+		}
+		if (slave.areolae > 2) {
+			suffixes.push("Areolas", "Headlights");
+		}
+		if (slave.lips > 40) {
+			suffixes.push("Lips", "Pillows");
+		}
+		if (slave.labia > 1) {
+			suffixes.push("Curtains", "Flower", "Lips");
+		}
+		if (slave.breedingMark === 1) {
+			suffixes.push("Breeder", "Oven", "Womb");
+		}
+		if (slave.butt > 5) {
+			suffixes.push("Ass", "Bottom", "Butt");
+		}
+		if (slave.vagina === 0) {
+			suffixes.push("Virgin");
+		}
+		
+		slave.slaveName = jsEither(names);
+	}
+	if (leadershipPosition.includes(slave.assignment)) {
+		switch (slave.assignment) {
+			case "be the Attendant":
+				slave.slaveName = jsEither(["Bath", "Spa"]);
+				break;
+			case "be the Stewardess":
+				slave.slaveName = jsEither(["Servant", "Maid"]);
+				break;
+			case "be the Milkmaid":
+				if (V.cumSlaves > 3) {
+					slave.slaveName = jsEither(["Fucker", "Milker"]);
+				} else {
+					slave.slaveName = jsEither(["Dairy", "Farm"]);
+				}
+				break;
+			case "be the DJ":
+				slave.slaveName = jsEither(["Bass", "Booth"]);
+				break;
+			case "be your Concubine":
+				slave.slaveName = jsEither(["Bed", "Master"]);
+				break;
+			case "be the Madam":
+				slave.slaveName = jsEither(["Madam", "Pimp"]);
+				break;
+			case "be the Schoolteacher":
+				slave.slaveName = jsEither(["Classroom", "Teacher"]);
+				break;
+			case "be the Wardeness":
+				slave.slaveName = jsEither(["Jail", "Prison"]);
+				break;
+			case "be the Nurse":
+				slave.slaveName = jsEither(["Clinic", "Nurse"]);
+				break;
+			case "be your Head Girl":
+				slave.slaveName = jsEither(["Chief", "Head"]);
+				break;
+			case "guard you":
+				slave.slaveName = jsEither(["Battle", "Guard"]);
+				break;
+			case "recruit girls":
+				slave.slaveName = jsEither(["Cam", "Recruiter"]);
+				break;
+		}
+	}
+	let surname = jsEither(suffixes);
+	if (typeof surname == "string" && surname.toLowerCase() == slave.slaveName.toLowerCase()) {
+		DegradingName(slave);
+	}
+	slave.slaveSurname = surname;
+};
+
+window.SlaveSort = function SlaveSort(slaves, main=false) {
+	const V = State.variables;
+	if (main) {
+		switch (V.sortSlavesBy) {
+		case "name":
+			if (V.sortSlavesOrder == "ascending")
+				slaves = slaves.sort((a, b) => a.slaveName < b.slaveName ? -1 : 1);
+			else
+				slaves = slaves.sort((a, b) => a.slaveName > b.slaveName ? -1 : 1);
+			break;
+		case "assignment":
+			if (V.sortSlavesOrder == "ascending")
+				slaves = slaves.sort((a, b) => a.assignment < b.assignment ? -1 : 1);
+			else
+				slaves = slaves.sort((a, b) => a.assignment > b.assignment ? -1 : 1);
+			break;
+		case "seniority":
+			if (V.sortSlavesOrder == "ascending")
+				slaves = slaves.sort((a, b) => b.weekAcquired - a.weekAcquired);
+			else
+				slaves = slaves.sort((a, b) => a.weekAcquired - b.weekAcquired);
+			break;
+		case "actualAge":
+			if (V.sortSlavesOrder == "ascending")
+				slaves = slaves.sort((a, b) => a.actualAge - b.actualAge);
+			else
+				slaves = slaves.sort((a, b) => b.actualAge - a.actualAge);
+			break;
+		case "visualAge":
+			if (V.sortSlavesOrder == "ascending")
+				slaves = slaves.sort((a, b) => a.visualAge - b.visualAge);
+			else
+				slaves = slaves.sort((a, b) => b.visualAge - a.visualAge);
+			break;
+		case "physicalAge":
+			if (V.sortSlavesOrder == "physicalAge")
+				slaves = slaves.sort((a, b) => a.physicalAge - b.physicalAge);
+			else
+				slaves = slaves.sort((a, b) => b.physicalAge - a.physicalAge);
+			break;
+		default:
+			if (V.sortSlavesOrder == "ascending")
+				slaves = slaves.sort((a, b) => a.devotion - b.devotion);
+			else
+				slaves = slaves.sort((a, b) => b.devotion - a.devotion);
+			break;
+		}
+		V.slaveIndices = slaves2indices();
+	} else {
+		V.slaveIndices = slaves2indices();
+		filterInPlace(slaves, s => V.slaveIndices[s] !== undefined);
+		slaves.sort((a, b) => V.slaveIndices[a] - V.slaveIndices[b]);
+	}
+};
+
 /*:: Summary Widgets JS [script]*/
 
 window.SlaveStatClamp = function SlaveStatClamp(slave) {
diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw
index bd1b9a9d81575da65bbcfe67cfff33e667354362..172de1fc76c7899782654ae068b16488b93fa9c0 100644
--- a/src/js/assayJS.tw
+++ b/src/js/assayJS.tw
@@ -470,10 +470,6 @@ window.PoliteRudeTitle = function PoliteRudeTitle(slave) {
 	return r;
 };
 
-window.EventNameDelink = function EventNameDelink(slave) {
-	$("#name").empty().text(SlaveFullName(slave));
-};
-
 window.SlaveTitle = function SlaveTitle(slave) {
 	const V = State.variables;
 	let r = "";
@@ -824,6 +820,391 @@ window.SlaveTitle = function SlaveTitle(slave) {
 	return r;
 };
 
+window.DegradingName = function DegradingName(slave) {
+	const V = State.variables;
+	const leadershipPosition = [
+		"be the Attendant",
+		"be the Stewardess",
+		"be the Milkmaid",
+		"be the DJ",
+		"be your Concubine",
+		"be the Madam",
+		"be the Schoolteacher",
+		"be the Wardeness",
+		"be the Nurse",
+		"be your Head Girl",
+		"guard you",
+		"recruit girls"];
+	let names = [];
+	let suffixes = [];
+		
+	if (slave.fuckdoll > 0) {
+		slave.slaveName = "Fuckdoll No. " + slave.ID;
+		slave.slaveSurname = 0;
+	} else if (slave.assignment == "work in the dairy" && V.dairyRestraintsSetting >= 2) {
+		slave.slaveName = "Bioreactor No. " + slave.ID;
+		slave.slaveSurname = 0;
+	} else {	
+		if (V.seeRace === 1) {
+			switch (slave.race) {
+				case "white":
+					names.push("Pale", "White");
+					break;
+				case "asian":
+					names.push("Asian", "Yellow");
+					break;
+				case "latina":
+					names.push("Brown", "Latina");
+					break;
+				case "black":
+					names.push("Black", "Dark");
+					break;
+				case "pacific islander":
+					names.push("Islander", "Sea");
+					break;
+				case "malay":
+					names.push("Cinnamon", "Pinoy", "Spice");
+					break;
+				case "southern european":
+					names.push("Mediterranean", "Olive");
+					break;
+				case "amerindian":
+					names.push("Indian", "Reservation");
+					break;
+				case "semitic":
+					names.push("Semitic");
+					break;
+				case "middle eastern":
+					names.push("Arab", "Sand");
+					break;
+				case "indo-aryan":
+					names.push("Brown", "Indian");
+					break;
+				case "mixed race":
+					names.push("Mulatto", "Mutt");
+					break;
+			}
+		}
+		names.push(slave.hColor);
+		if (slave.eyes === -2) {
+			names.push("Blind", "Eyeless", "Sightless");
+		}
+		if (slave.boobs >= 2000) {
+			suffixes.push("Boob", "Boobs", "Titty");
+		}
+		if (slave.boobs < 500 && slave.butt < 3) {
+			names.push("Girly", "Slim", "Thin");
+		}
+		if (slave.boobs < 300) {
+			names.push("Flat");
+		}
+		if (slave.anus > 2 || slave.vagina > 2) {
+			names.push("Gaping", "Hallway", "Slit", "Wideopen");
+		}
+		if (slave.weight > 160) {
+			names.push("Cow", "Fat", "Whale", "Fatass", "Blimp");
+		} else if (slave.weight > 30) {
+			names.push("Chubby", "Fat", "Whale");
+		} else if (slave.weight <= -30) {
+			names.push("Bony", "Rail", "Skinny");
+		}
+		if (slave.muscles > 30) {
+			names.push("Huge", "Muscles", "Ripped", "Strong");
+		}
+		if (slave.fetishKnown === 1) {
+			if (slave.fetish == "buttslut") {
+				names.push("Anal", "Sodomy");
+			} 
+			if (slave.fetish == "cumslut") {
+				names.push("Cum", "Dicksuck", "Sucker");
+			}
+			if (slave.fetish == "humiliation") {
+				names.push("Rape");
+			}
+			if (slave.fetish == "masochist") {
+				names.push("Pain", "Rape", "Struggle");
+			}
+			if (slave.fetish == "pregnancy") {
+				names.push("Fertile");
+			}
+		}
+		if (slave.boobs*slave.lactation > 1000) {
+			names.push("Creamy", "Milky");
+			suffixes.push("Cow");
+		}
+		if (slave.oralSkill <= 30 && slave.analSkill <= 30) {
+			names.push("Cheap", "Fail", "Gutter");
+		}
+		if (slave.nipples == "fuckable") {
+			names.push("Nipplefuck", "Nipplecunt");
+		} else if (slave.nipples != "tiny" && slave.nipples != "cute") {
+			names.push("Pointy", "Titclit");
+			suffixes.push("Nipples");
+		}
+		if (slave.visualAge > 35) {
+			names.push("Mature");
+			suffixes.push("Cougar", "MILF");
+		} else if (slave.visualAge < 25) {
+			names.push("Girly", "Thin", "Young");
+		}
+		if (slave.amp === 1) {
+			names.push("Stumpy");
+			suffixes.push("Stumpy");
+		}
+		if (slave.boobsImplant > 1000 || slave.buttImplant > 3) {
+			names.push("Fake", "Plastic", "Silicone");
+		}
+		if (slave.dick > 5 && slave.balls > 5) {
+			names.push("Potent");
+			suffixes.push("Cannon", "Daddy");
+		}
+		if (slave.preg > 30) {
+			if (slave.broodmother === 2) {
+				names.push("Bursting", "Seeded");
+				suffixes.push("Factory", "Nursery");
+			} else if (slave.broodmother === 1) {
+				names.push("Bloated", "Stuffed");
+				suffixes.push("Breeder", "Factory");
+			}
+		}
+		if (slave.bellyPreg >= 450000) {
+			names.push("Bulging", "Squirming");
+		}
+		if (slave.bellyPreg >= 5000) {
+			names.push("Preg");
+			suffixes.push("Belly", "Mommy");
+		}
+		if (slave.belly > 150000) {
+			suffixes.push("Balloon");
+		}
+		if (slave.belly > 1500) {
+			suffixes.push("Belly");
+		}
+		if (slave.dick > 0) {
+			if (slave.dick > 4) {
+				names.push("Dangle", "Hung");
+				suffixes.push("Cock", "Dick");
+			}
+			if (slave.balls === 0) {
+				names.push("Cut", "Gelded", "Soft");
+			} else {
+				names.push("Erect", "Hard", "Stiff");
+			}
+		}
+		if (slave.dick === 1) {
+			names.push("Micro", "Tiny");
+			suffixes.push("Bitch");
+		}
+		if (slave.height >= 185) {
+			names.push("Tall", "Top");
+			suffixes.push("Tower");
+		} else if (slave.height < 150) {
+			names.push("Stumpy", "Tiny");
+			suffixes.push("Shortstack", "Stumpy");
+		}
+		if (slave.whoreSkill > 95) {
+			names.push("Money", "Street");
+			suffixes.push("Whore");
+		}
+		if (slave.entertainSkill > 95) {
+			names.push("Easy", "Club");
+			suffixes.push("Slut");
+		}
+		if (slave.oralSkill > 95) {
+			names.push("Suck");
+			suffixes.push("Throat");
+		}
+		if (slave.vaginalSkill > 95) {
+			suffixes.push("Channel", "Kegel", "Pussy");
+		}
+		if (slave.analSkill > 95) {
+			suffixes.push("Asspussy", "Sphincter");
+		}
+		if (slave.intelligence > 1) {
+			names.push("Bright", "Clever", "Smart");
+			if (slave.intelligenceImplant === 1) {
+				names.push("College", "Graduate", "Nerdy");
+			}
+		} else if (slave.intelligence < -1) {
+			names.push("Cretin", "Dumb", "Retarded", "Stupid");
+		}
+		if (slave.vagina === 1 && slave.vaginaSkill <= 10) {
+			names.push("Fresh", "New", "Tight");
+		}
+		if (slave.devotion < -75) {
+			names.push("Angry", "Biter", "Caged");
+		} else if (slave.devotion < -50) {
+			names.push("Cell", "Cuffs");
+		} else if (slave.devotion < -20) {
+			names.push("Bag", "Box");
+		} else if (slave.devotion <= 20) {
+			names.push("Sad", "Whiner");
+		} else if (slave.devotion > 50) {
+			names.push("Prize");
+			if (slave.visualAge > 35) {
+				names.push("Queen");
+			} else if (slave.visualAge < 25) {
+				names.push("Princess");
+			}
+		}
+		if (slave.trust < -50) {
+			names.push("Screaming");
+			suffixes.push("Sobber");
+		} else if (slave.trust < -20) {
+			names.push("Crying");
+			suffixes.push("Meat", "Tears", "Thing", "Weeper");
+		} else if (slave.trust < 20) {
+			names.push("Begging");
+		}
+		
+		
+		if (slave.dick === 0) {
+			if (slave.vagina === -1) {
+				suffixes.push("Null");
+			} else {
+				if (slave.visualAge < 25) {
+					suffixes.push("Girl");
+				}
+			}
+		} else {
+			if (slave.vagina != -1) {
+				suffixes.push("Futa");
+			} else {
+				if (slave.balls > 0) {
+					if (slave.boobs > 300 && slave.butt > 2) { /* SHEMALES: cock & balls, T&A above minimum */
+						suffixes.push("Shemale");
+					} else {
+						if (slave.shoulders < 1 && slave.muscles <= 30) {
+							if (slave.faceShape == "masculine" || slave.faceShape == "androgynous") { /* SISSIES: feminine shoulders or muscles, masculine faces */
+								suffixes.push("Sissy");
+							} else { /* TRAPS: feminine shoulders or muscles, feminine faces */
+								suffixes.push("Trap");
+							}
+						} else { /* BITCHES: masculine shoulders or muscles */
+							suffixes.push("Bitch");
+						}
+					}
+				} else {
+					if (slave.visualAge > 35) {
+						suffixes.push("DickMILF");
+					} else if (slave.visualAge >= 25) {
+						suffixes.push("Dickslave");
+					} else {
+						suffixes.push("Dickgirl");
+					}
+				}
+			}
+		}
+		if (slave.anus > 0) {
+			suffixes.push("Anus", "Asshole", "Backdoor", "Butt", "Butthole");
+		}
+		if (slave.anus === 1) {
+			suffixes.push("Tightass", "Tightbutt");
+		}
+		if (slave.vagina > 0) {
+			suffixes.push("Cunt", "Pussy", "Vagina");
+		}
+		if (slave.boobs < 500 && slave.butt < 3 && slave.dick > 0) {
+			suffixes.push("Bitch", "Bottom", "Sissy", "Trap");
+		}
+		if (slave.energy > 95) {
+			suffixes.push("Fuck", "Fuckaddict", "Nympho", "Sexaddict");
+		}
+		if (slave.fetishKnown === 1) {
+			if (slave.fetish == "humiliation") {
+				suffixes.push("Rapebait", "Showgirl");
+			}
+			if (slave.fetish == "submissive") {
+				suffixes.push("Bottom", "Fuckee", "Rapebait");
+			}
+			if (slave.fetish == "dom") {
+				suffixes.push("Dom", "Fucker", "Top");
+			}
+			if (slave.fetish == "pregnancy") {
+				suffixes.push("Breeder", "Mommy");
+			}
+			if (slave.fetish == "boobs") {
+				suffixes.push("Boob", "Boobie", "Tit", "Titty");
+			}
+		}
+		if (slave.births >= 2) {
+			suffixes.push("Breeder");
+			if (slave.births >= 5) {
+				suffixes.push("Broodmother");
+			}
+		}
+		if (slave.areolae > 2) {
+			suffixes.push("Areolas", "Headlights");
+		}
+		if (slave.lips > 40) {
+			suffixes.push("Lips", "Pillows");
+		}
+		if (slave.labia > 1) {
+			suffixes.push("Curtains", "Flower", "Lips");
+		}
+		if (slave.breedingMark === 1) {
+			suffixes.push("Breeder", "Oven", "Womb");
+		}
+		if (slave.butt > 5) {
+			suffixes.push("Ass", "Bottom", "Butt");
+		}
+		if (slave.vagina === 0) {
+			suffixes.push("Virgin");
+		}
+		
+		slave.slaveName = jsEither(names);
+	}
+	if (leadershipPosition.includes(slave.assignment)) {
+		switch (slave.assignment) {
+			case "be the Attendant":
+				slave.slaveName = jsEither(["Bath", "Spa"]);
+				break;
+			case "be the Stewardess":
+				slave.slaveName = jsEither(["Servant", "Maid"]);
+				break;
+			case "be the Milkmaid":
+				if (V.cumSlaves > 3) {
+					slave.slaveName = jsEither(["Fucker", "Milker"]);
+				} else {
+					slave.slaveName = jsEither(["Dairy", "Farm"]);
+				}
+				break;
+			case "be the DJ":
+				slave.slaveName = jsEither(["Bass", "Booth"]);
+				break;
+			case "be your Concubine":
+				slave.slaveName = jsEither(["Bed", "Master"]);
+				break;
+			case "be the Madam":
+				slave.slaveName = jsEither(["Madam", "Pimp"]);
+				break;
+			case "be the Schoolteacher":
+				slave.slaveName = jsEither(["Classroom", "Teacher"]);
+				break;
+			case "be the Wardeness":
+				slave.slaveName = jsEither(["Jail", "Prison"]);
+				break;
+			case "be the Nurse":
+				slave.slaveName = jsEither(["Clinic", "Nurse"]);
+				break;
+			case "be your Head Girl":
+				slave.slaveName = jsEither(["Chief", "Head"]);
+				break;
+			case "guard you":
+				slave.slaveName = jsEither(["Battle", "Guard"]);
+				break;
+			case "recruit girls":
+				slave.slaveName = jsEither(["Cam", "Recruiter"]);
+				break;
+		}
+	}
+	let surname = jsEither(suffixes);
+	if (typeof surname == "string" && surname.toLowerCase() == slave.slaveName.toLowerCase()) {
+		DegradingName(slave);
+	}
+	slave.slaveSurname = surname;
+};
+
 window.SlaveSort = function SlaveSort(slaves, main=false) {
 	const V = State.variables;
 	if (main) {
diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw
index 988baf9a0a8198824572888bc7af16d9d478c281..3f2b200d772c423a18da8d89f2415fa42a08a5f6 100644
--- a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw
+++ b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw
@@ -93,7 +93,7 @@
 <<case 0>>
 	 Is well-stocked with high-quality personal weapons and light armour, but contains little in the way of exceptional armament.
 <<case 1>>
-	 Has large stocks of the absolute latest personal weapons and light armour, and Has added first-generation exo-suits to improve soldier lethality.
+	 Has large stocks of the absolute latest personal weapons and light armour, and has added first-generation exo-suits to improve soldier lethality.
 <<case 2>>
 	 Acquired advanced tactical helmets and second-generation exo-suits to further improve soldier lethality.
 <<case 3>>
diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw
index ad1e0387cb57eb704d129f7f7057867f00dfaeee..d8279f16a9db46cd2964cf650e4d72b644891ad3 100644
--- a/src/pregmod/newChildIntro.tw
+++ b/src/pregmod/newChildIntro.tw
@@ -106,7 +106,7 @@ You completed the legalities before heading to $incubatorName, knowing the tank
 <<if $arcologies[0].FSDegradationist != "unset">>
     <br><<link "Have your PA assign her a degrading name">>
 		<<replace "#naming">>
-		<<DegradingName $activeSlave>>
+		<<run DegradingName($activeSlave)>>
 		<<set $activeSlave.birthName = $activeSlave.slaveName>>
 		$assistantName registers the new girl as "<<print $activeSlave.slaveName>>" in your registry.
 		<</replace>>
diff --git a/src/uncategorized/addCustomDescriptors.tw b/src/uncategorized/addCustomDescriptors.tw
index 248cb6f54b1f8d088fe435beccec6df9abf2dfcf..2a736e69c17e1da6abfd29974380c85ae4d017e4 100644
--- a/src/uncategorized/addCustomDescriptors.tw
+++ b/src/uncategorized/addCustomDescriptors.tw
@@ -97,7 +97,7 @@ You may enter custom descriptors for your slave's hair color, hair style, tattoo
 		| <<link "Give her a random full feudal Japanese name">><<set $activeSlave.slaveName = setup.edoSlaveNames.random(), $activeSlave.slaveSurname = setup.edoSlaveSurnames.random()>><<goto "Rename">><</link>>
 	<</if>>
 	<<if $arcologies[0].FSDegradationist > -1>>
-		| <<link "Give her a degrading full name">><<DegradingName $activeSlave>><<goto "Rename">><</link>>
+		| <<link "Give her a degrading full name">><<run DegradingName($activeSlave)>><<goto "Rename">><</link>>
 	<</if>>
 <<else>>
 	//You must break her will further before you can successfully force a new name on her.//
diff --git a/src/uncategorized/futureSociety.tw b/src/uncategorized/futureSociety.tw
index f0f5de340ba29eb2ee0a7a2274632bacbcb0fc81..8e6b352842ee99600212677aeaca782271ebc3c5 100644
--- a/src/uncategorized/futureSociety.tw
+++ b/src/uncategorized/futureSociety.tw
@@ -547,7 +547,7 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 	<br>
 	<<link "Rename all your slaves according to Degradationist custom">>
 	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<DegradingName $slaves[$i]>>
+		<<run DegradingName($slaves[$i])>>
 	<</for>>
 	<<replace "#mass">>
 		<br>Slaves renamed.<br>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index 13e0542dc34b9f562b6c317aad47ee8254220612..db16b0d2803e0632c773c57b7558c452990f455d 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -2033,389 +2033,6 @@ This experience
 */
 <<widget "EventNameDelink">><<replace "#name">><<= SlaveFullName($args[0])>><</replace>><</widget>>
 
-/*
- Call as <<DegradingName $slave>> where $slave is any slave object
-  $args[0]: Slave
- */
-<<widget "DegradingName">>
-<<if $args[0].fuckdoll > 0>>
-	<<set $args[0].slaveName = "Fuckdoll No. " + random(1000,9999), $args[0].slaveSurname = 0>>
-<<elseif ($args[0].assignment == "work in the dairy") && ($dairyRestraintsSetting >= 2)>>
-	<<set $args[0].slaveName = "Bioreactor No. " + random(1000,9999), $args[0].slaveSurname = 0>>
-<<else>>
-
-<<set _names = []>>
-
-<<if ($seeRace == 1)>>
-<<switch $args[0].race>>
-<<case "white">>
-	<<set _names.push("Pale", "White")>>
-<<case "asian">>
-	<<set _names.push("Asian", "Yellow")>>
-<<case "latina">>
-	<<set _names.push("Brown", "Latina")>>
-<<case "black">>
-	<<set _names.push("Black", "Dark")>>
-<<case "pacific islander">>
-	<<set _names.push("Islander", "Sea")>>
-<<case "malay">>
-	<<set _names.push("Cinnamon", "Pinoy", "Spice")>>
-<<case "southern european">>
-	<<set _names.push("Mediterranean", "Olive")>>
-<<case "amerindian">>
-	<<set _names.push("Indian", "Reservation")>>
-<<case "semitic">>
-	<<set _names.push("Semitic")>>
-<<case "middle eastern">>
-	<<set _names.push("Arab", "Sand")>>
-<<case "indo-aryan">>
-	<<set _names.push("Brown", "Indian")>>
-<<case "mixed race">>
-	<<set _names.push("Mulatto", "Mutt")>>
-<</switch>>
-<</if>>
-
-<<set _names.push($args[0].hColor)>>
-
-<<if ($args[0].eyes == -2)>>
-	<<set _names.push("Blind", "Eyeless", "Sightless")>>
-<</if>>
-
-<<if ($args[0].boobs < 500) && ($args[0].butt < 3)>>
-	<<set _names.push("Girly", "Slim", "Thin")>>
-<</if>>
-<<if ($args[0].boobs < 300)>>
-	<<set _names.push("Flat")>>
-<</if>>
-<<if ($args[0].anus > 2) || ($args[0].vagina > 2)>>
-	<<set _names.push("Gaping", "Hallway", "Slit", "Wideopen")>>
-<</if>>
-<<if ($args[0].weight > 160)>>
-	<<set _names.push("Cow", "Fat", "Whale")>>
-<<elseif ($args[0].weight > 30)>>
-	<<set _names.push("Chubby", "Fat", "Whale")>>
-<<elseif ($args[0].weight <= -30)>>
-	<<set _names.push("Bony", "Rail", "Skinny")>>
-<</if>>
-<<if ($args[0].muscles > 30)>>
-	<<set _names.push("Huge", "Muscles", "Ripped", "Strong")>>
-<</if>>
-<<if ($args[0].fetish == "buttslut") && ($args[0].fetishKnown == 1)>>
-	<<set _names.push("Anal", "Sodomy")>>
-<</if>>
-<<if ($args[0].fetish == "cumslut") && ($args[0].fetishKnown == 1)>>
-	<<set _names.push("Cum", "Dicksuck", "Sucker")>>
-<</if>>
-<<if ($args[0].fetish == "humiliation") && ($args[0].fetishKnown == 1)>>
-	<<set _names.push("Rape")>>
-<</if>>
-<<if ($args[0].fetish == "masochist") && ($args[0].fetishKnown == 1)>>
-	<<set _names.push("Pain", "Rape", "Struggle")>>
-<</if>>
-<<if ($args[0].fetish == "pregnancy") && ($args[0].fetishKnown == 1)>>
-	<<set _names.push("Fertile")>>
-<</if>>
-<<if (($args[0].boobs*$args[0].lactation) > 1000)>>
-	<<set _names.push("Creamy", "Milky")>>
-<</if>>
-<<if ($args[0].oralSkill <= 30) && ($args[0].analSkill <= 30)>>
-	<<set _names.push("Cheap", "Fail", "Gutter")>>
-<</if>>
-<<if $args[0].nipples == "fuckable">>
-	<<set _names.push("Nipplefuck", "Nipplecunt")>>
-<<elseif ($args[0].nipples != "tiny") && ($args[0].nipples != "cute")>>
-	<<set _names.push("Pointy", "Titclit")>>
-<</if>>
-<<if ($args[0].visualAge > 35)>>
-	<<set _names.push("Mature")>>
-<</if>>
-<<if ($args[0].visualAge < 25)>>
-	<<set _names.push("Girly", "Thin", "Young")>>
-<</if>>
-<<if ($args[0].amp == 1)>>
-	<<set _names.push("Stumpy")>>
-<</if>>
-<<if ($args[0].boobsImplant > 1000) || ($args[0].buttImplant > 3)>>
-	<<set _names.push("Fake", "Plastic", "Silicone")>>
-<</if>>
-<<if ($args[0].dick > 5) && ($args[0].balls > 5)>>
-	<<set $prefixes.push("Potent")>>
-<</if>>
-<<if ($args[0].broodmother == 2) && ($args[0].preg > 30)>>
-	<<set $prefixes.push("Bursting", "Seeded")>>
-<</if>>
-<<if ($args[0].broodmother == 1) && ($args[0].preg > 30)>>
-	<<set $prefixes.push("Bloated", "Stuffed")>>
-<</if>>
-<<if $args[0].bellyPreg >= 450000>>
-	<<set $prefixes.push("Bulging", "Squirming")>>
-<</if>>
-<<if ($args[0].bellyPreg >= 5000)>>
-	<<set _names.push("Preg")>>
-<</if>>
-<<if ($args[0].dick > 4)>>
-	<<set _names.push("Dangle", "Hung")>>
-<</if>>
-<<if ($args[0].dick > 0) && ($args[0].balls == 0)>>
-	<<set _names.push("Cut", "Gelded", "Soft")>>
-<</if>>
-<<if ($args[0].dick > 0) && ($args[0].balls > 0)>>
-	<<set _names.push("Erect", "Hard", "Stiff")>>
-<</if>>
-<<if ($args[0].dick == 1)>>
-	<<set _names.push("Micro", "Tiny")>>
-<</if>>
-<<if ($args[0].height >= 185)>>
-	<<set _names.push("Tall", "Top")>>
-<</if>>
-<<if ($args[0].height < 150)>>
-	<<set _names.push("Stumpy", "Tiny")>>
-<</if>>
-<<if ($args[0].whoreSkill > 95)>>
-	<<set _names.push("Money", "Street")>>
-<</if>>
-<<if ($args[0].entertainSkill > 95)>>
-	<<set _names.push("Easy", "Club")>>
-<</if>>
-<<if ($args[0].oralSkill > 95)>>
-	<<set _names.push("Suck")>>
-<</if>>
-<<if ($args[0].intelligence > 1)>>
-	<<set _names.push("Bright", "Clever", "Smart")>>
-	<<if ($args[0].intelligenceImplant == 1)>>
-		<<set _names.push("College", "Graduate", "Nerdy")>>
-	<</if>>
-<<elseif ($args[0].intelligence < -1)>>
-	<<set _names.push("Cretin", "Dumb", "Retarded", "Stupid")>>
-<</if>>
-<<if ($args[0].vagina == 1) && ($args[0].vaginalSkill <= 10)>>
-	<<set _names.push("Fresh", "New", "Tight")>>
-<</if>>
-<<if ($args[0].devotion < -75)>>
-	<<set _names.push("Angry", "Biter", "Caged")>>
-<<elseif ($args[0].devotion < -50)>>
-	<<set _names.push("Cell", "Cuffs")>>
-<<elseif ($args[0].devotion < -20)>>
-	<<set _names.push("Bag", "Box")>>
-<<elseif ($args[0].devotion <= 20)>>
-	<<set _names.push("Sad", "Whiner")>>
-<</if>>
-<<if ($args[0].trust < -50)>>
-	<<set _names.push("Screaming")>>
-<<elseif ($args[0].trust < -20)>>
-	<<set _names.push("Crying")>>
-<<elseif ($args[0].trust < 20)>>
-	<<set _names.push("Begging")>>
-<</if>>
-
-<<set _suffixes = []>>
-
-<<if $args[0].dick == 0>>
-	<<if $args[0].vagina == -1>> /* NULLS */
-		<<set _suffixes.push("Null")>>
-	<<else>> /* FEMALES */
-		<<if $args[0].visualAge < 25>>
-			<<set _suffixes.push("Girl")>>
-		<</if>>
-	<</if>>
-<<else>>
-	<<if $args[0].vagina != -1>>
-		<<set _suffixes.push("Futa")>>
-	<<else>>
-		<<if $args[0].balls > 0>>
-			<<if ($args[0].boobs > 300) && ($args[0].butt > 2)>> /* SHEMALES: cock & balls, T&A above minimum */
-				<<set _suffixes.push("Shemale")>>
-			<<else>>
-				<<if ($args[0].shoulders < 1) && ($args[0].muscles <= 30)>>
-					<<if ($args[0].faceShape == "masculine") || ($args[0].faceShape == "androgynous")>> /* SISSIES: feminine shoulders or muscles, masculine faces */
-						<<set _suffixes.push("Sissy")>>
-					<<else>> /* TRAPS: feminine shoulders or muscles, feminine faces */
-						<<set _suffixes.push("Trap")>>
-					<</if>>
-				<<else>> /* BITCHES: masculine shoulders or muscles */
-					<<set _suffixes.push("Bitch")>>
-				<</if>>
-			<</if>>
-		<<else>>
-			<<if $args[0].visualAge > 35>>
-				<<set _suffixes.push("DickMILF")>>
-			<<elseif $args[0].visualAge >= 25>>
-				<<set _suffixes.push("Dickslave")>>
-			<<else>>
-				<<set _suffixes.push("Dickgirl")>>
-			<</if>>
-		<</if>>
-	<</if>>
-<</if>>
-
-<<if ($args[0].anus > 0)>>
-	<<set _suffixes.push("Anus", "Asshole", "Backdoor", "Butt", "Butthole")>>
-<</if>>
-<<if ($args[0].vagina > 0)>>
-	<<set _suffixes.push("Cunt", "Pussy", "Vagina")>>
-<</if>>
-<<if ($args[0].boobs < 500) && ($args[0].butt < 3) && ($args[0].dick > 0)>>
-	<<set _suffixes.push("Bitch", "Bottom", "Sissy", "Trap")>>
-<</if>>
-<<if ($args[0].energy > 95)>>
-	<<set _suffixes.push("Fuck", "Fuckaddict", "Nympho", "Sexaddict")>>
-<</if>>
-<<if ($args[0].weight > 160)>>
-	<<set _names.push("Blimp", "Fatass")>>
-<</if>>
-<<if ($args[0].fetish == "humiliation") && ($args[0].fetishKnown == 1)>>
-	<<set _suffixes.push("Rapebait", "Showgirl")>>
-<</if>>
-<<if ($args[0].fetish == "submissive") && ($args[0].fetishKnown == 1)>>
-	<<set _suffixes.push("Bottom", "Fuckee", "Rapebait")>>
-<</if>>
-<<if ($args[0].fetish == "dom") && ($args[0].fetishKnown == 1)>>
-	<<set _suffixes.push("Dom", "Fucker", "Top")>>
-<</if>>
-<<if ($args[0].fetish == "pregnancy") && ($args[0].fetishKnown == 1)>>
-	<<set _suffixes.push("Breeder", "Mommy")>>
-<</if>>
-<<if ($args[0].fetish == "boobs") && ($args[0].fetishKnown == 1)>>
-	<<set _suffixes.push("Boob", "Boobie", "Tit", "Titty")>>
-<</if>>
-<<if (($args[0].boobs*$args[0].lactation) > 1000)>>
-	<<set _suffixes.push("Cow")>>
-<</if>>
-<<if $args[0].births >= 5>>
-	<<set _suffixes.push("Broodmother")>>
-<</if>>
-<<if $args[0].births >= 2>>
-	<<set _suffixes.push("Breeder")>>
-<</if>>
-<<if ($args[0].nipples != "tiny") && ($args[0].nipples != "cute")>>
-	<<set _suffixes.push("Nipples")>>
-<</if>>
-<<if ($args[0].areolae > 2)>>
-	<<set _suffixes.push("Areolas", "Headlights")>>
-<</if>>
-<<if ($args[0].lips > 40)>>
-	<<set _suffixes.push("Lips", "Pillows")>>
-<</if>>
-<<if ($args[0].labia > 1)>>
-	<<set _suffixes.push("Curtains", "Flower", "Lips")>>
-<</if>>
-<<if ($args[0].visualAge > 35)>>
-	<<set _suffixes.push("Cougar", "MILF")>>
-<</if>>
-<<if ($args[0].amp == 1)>>
-	<<set _suffixes.push("Stumpy")>>
-<</if>>
-<<if ($args[0].bellyPreg > 5000)>>
-	<<set _suffixes.push("Belly", "Mommy")>>
-<</if>>
-<<if $args[0].belly >= 1500>>
-	<<set _suffixes.push("Belly")>>
-<</if>>
-<<if ($args[0].dick > 5) && ($args[0].balls > 5)>>
-	<<set _suffixes.push("Cannon", "Daddy")>>
-<</if>>
-<<if $args[0].breedingMark == 1>>
-	<<set _suffixes.push("Breeder", "Oven", "Womb")>>
-<</if>>
-<<if ($args[0].broodmother == 2) && ($args[0].preg > 30)>>
-	<<set _suffixes.push("Factory", "Nursery")>>
-<</if>>
-<<if ($args[0].broodmother == 1) && ($args[0].preg > 30)>>
-	<<set _suffixes.push("Breeder", "Factory")>>
-<</if>>
-<<if $args[0].belly > 150000>>
-	<<set _suffixes.push("Balloon")>>
-<</if>>
-<<if ($args[0].dick > 4)>>
-	<<set _suffixes.push("Cock", "Dick")>>
-<</if>>
-<<if ($args[0].dick == 1)>>
-	<<set _suffixes.push("Bitch")>>
-<</if>>
-<<if ($args[0].boobs >= 800)>>
-	<<set _suffixes.push("Boob", "Boobs", "Titty")>>
-<</if>>
-<<if ($args[0].butt > 5)>>
-	<<set _suffixes.push("Ass", "Bottom", "Butt")>>
-<</if>>
-<<if ($args[0].vagina == 0)>>
-	<<set _suffixes.push("Virgin")>>
-<</if>>
-<<if ($args[0].height >= 185)>>
-	<<set _suffixes.push("Tower")>>
-<</if>>
-<<if ($args[0].height < 150)>>
-	<<set _suffixes.push("Shortstack", "Stumpy")>>
-<</if>>
-<<if ($args[0].whoreSkill > 95)>>
-	<<set _suffixes.push("Whore")>>
-<</if>>
-<<if ($args[0].entertainSkill > 95)>>
-	<<set _suffixes.push("Slut")>>
-<</if>>
-<<if ($args[0].oralSkill > 95)>>
-	<<set _suffixes.push("Throat")>>
-<</if>>
-<<if ($args[0].vaginalSkill > 95)>>
-	<<set _suffixes.push("Channel", "Kegel", "Pussy")>>
-<</if>>
-<<if ($args[0].analSkill > 95)>>
-	<<set _suffixes.push("Asspussy", "Sphincter")>>
-<</if>>
-<<if ($args[0].anus == 1)>>
-	<<set _suffixes.push("Tightass", "Tightbutt")>>
-<</if>>
-<<if $args[0].devotion > 50>>
-	<<set _names.push("Prize")>>
-	<<if ($args[0].visualAge > 35)>>
-		<<set _suffixes.push("Queen")>>
-	<<elseif ($args[0].visualAge < 25)>>
-		<<set _names.push("Princess")>>
-	<</if>>
-<</if>>
-<<if ($args[0].trust < -50)>>
-	<<set _suffixes.push("Sobber")>>
-<<elseif ($args[0].trust < -20)>>
-	<<set _suffixes.push("Meat", "Tears", "Thing", "Weeper")>>
-<</if>>
-
-<<set $args[0].slaveName = _names.random()>>
-<<switch $args[0].assignment>>
-<<case "guard you">>
-	<<set $args[0].slaveName = either("Battle", "Guard")>>
-<<case "recruit girls">>
-	<<set $args[0].slaveName = either("Cam", "Recruiter")>>
-<<case "be the Madam">>
-	<<set $args[0].slaveName = either("Madam", "Pimp")>>
-<<case "be the DJ">>
-	<<set $args[0].slaveName = either("Bass", "Booth")>>
-<<case "be the Milkmaid">>
-	<<if $cumSlaves > 3>>
-		<<set $args[0].slaveName = either("Fucker", "Milker")>>
-	<</if>>
-<<case "be the Milkmaid">>
-	<<set $args[0].slaveName = either("Dairy", "Farm")>>
-<<case "be your Head Girl">>
-	<<set $args[0].slaveName = either("Chief", "Head")>>
-<<case "be the Schoolteacher">>
-	<<set $args[0].slaveName = either("Classroom", "Teacher")>>
-<<case "be the Attendant">>
-	<<set $args[0].slaveName = either("Bath", "Spa")>>
-<<case "be the Wardeness">>
-	<<set $args[0].slaveName = either("Jail", "Prison")>>
-<<case "be your concubine">>
-	<<set $args[0].slaveName = either("Bed", "Master")>>
-<</switch>>
-
-<<set _surname = _suffixes.random()>>
-<<if _surname == $args[0].slaveName.toLowerCase()>>
-	<<DegradingName $args[0]>>
-<</if>>
-<<set $args[0].slaveSurname = _surname>>
-
-<</if>>
-<</widget>>
-
 <<widget "CreateSimpleTabs">>
 
 	<head>
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index 5a7051fae03bfc2fd0c5c8e788543eeaceff2ea7..c7f370a5a09efe5d7a0eb498cabfab5a229f8138 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -2483,7 +2483,7 @@
 		<</if>>
 	<<elseif $arcologies[_market].FSDegradationist > 20>>
 		They can be depended upon to be terrified into abject submission.
-		<<DegradingName $activeSlave>>
+		<<run DegradingName($activeSlave)>>
 		<<if $activeSlave.trust > -10>>
 			<<set $activeSlave.trust -= random(0,10)>>
 		<</if>>
diff --git a/src/utility/slaveGenerationWidgets.tw b/src/utility/slaveGenerationWidgets.tw
index b26c54402fc864a9eb12a1c716519389d80f192e..88cfab7227152fa1d20c89065f31106f98e6c18f 100644
--- a/src/utility/slaveGenerationWidgets.tw
+++ b/src/utility/slaveGenerationWidgets.tw
@@ -28,7 +28,7 @@
 <<elseif $arcologies[0].FSEdoRevivalist > 20>>
 	<<set $args[0].slaveName = setup.edoSlaveNames.random(), $args[0].slaveSurname = setup.edoSlaveSurnames.random()>>
 <<elseif $arcologies[0].FSDegradationist != "unset">>
-	<<DegradingName $args[0]>>
+	<<run DegradingName($args[0])>>
 <</if>>
 <</if>>