diff --git a/src/events/RESS/restrictedSmart.js b/src/events/RESS/restrictedSmart.js
new file mode 100644
index 0000000000000000000000000000000000000000..350908126d26be317c7f2b57435545d0986c77c2
--- /dev/null
+++ b/src/events/RESS/restrictedSmart.js
@@ -0,0 +1,244 @@
+App.Events.RESSRestrictedSmart = class RESSRestrictedSmart extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.assignment !== Job.QUARTER,
+				s => s.rules.speech === "restrictive",
+				s => s.intelligence > 15,
+				s => s.trust >= -20,
+				s => s.devotion <= 20,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him, himself, girl
+		} = getPronouns(eventSlave);
+		const {title: Master, say} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(`During a routine inspection of`);
+		r.push(App.UI.DOM.combineNodes(contextualIntro(V.PC, eventSlave, "DOM"), ","));
+		r.push(`you notice that ${he}'s behaving a little strangely. ${He}'s participating in the inspection with almost manic attention, trying to anticipate your directions and hanging desperately on your every word. After a moment, you reflect that ${he}'s a smart ${girl}, and is probably suffering for a lack of conversation. As you regard ${him}`);
+		if (!hasAnyLegs(eventSlave)) {
+			r.push(`sitting`);
+			if (hasAnyArms(eventSlave)) {
+				r.push(`helplessly`);
+			} else {
+				r.push(`limblessly`);
+			}
+		} else if (!canWalk(eventSlave)) {
+			r.push(`kneeling`);
+		} else {
+			r.push(`standing`);
+		}
+		r.push(`there, ${his}`);
+		if (canSee(eventSlave)) {
+			r.push(`eyes almost scream`);
+		} else {
+			r.push(`face almost screams`);
+		}
+		r.push(`at you for some sort of stimulation. ${His} life is not without mental interest, but talking is one of the quintessential human behaviors, and having it taken away is very difficult for someone as intelligent as ${him}. A mute almost might have it easier, for ${he} is also denied the volubility through sign language that mute slaves under less restrictive rules often enjoy.`);
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Discuss ${his} future with ${him}`, discuss),
+			canDoAnal(eventSlave)
+				? new App.Events.Result(`Let ${him} talk during a rough buttfuck`, buttfuck, eventSlave.anus === 0 ? `This option will take ${his} anal virginity` : null)
+				: new App.Events.Result(),
+			canDoVaginal(eventSlave)
+				? new App.Events.Result(`Let ${him} try to talk during a vigorous fucking`, fucking, eventSlave.vagina === 0 ? `This option will take ${his} virginity` : null)
+				: new App.Events.Result(),
+		]);
+
+		function discuss() {
+			r = [];
+			r.push(`You announce matter-of-factly that ${he}'s allowed to speak temporarily, and that you'll be discussing where ${he} is and where ${he} sees ${himself} in the near future. ${He}'s disconcerted by the subject but so desperate for conversation that ${he}'s overjoyed anyway.`);
+			r.push(Spoken(eventSlave, `"I understand what you're doing, ${Master},"`), `${he} ${say}s forthrightly.`, Spoken(eventSlave, `"I'm to be broken down into a devoted slave."`), `${He} looks thoughtful.`, Spoken(eventSlave, `"I'll help you with that. It'll be easier if I do, won't it?"`), `${He} looks up, and you`);
+			if (canSee(eventSlave)) {
+				r.push(`nod in affirmation`);
+			} else {
+				r.push(`acknowledge ${him}`);
+			}
+			r.push(`${he} gives you a rueful smile.`, Spoken(eventSlave, `"A good slut would offer to give you oral now, I think. So, ${Master}, may I please be allowed to ${V.PC.dick === 0 ? "lick your pussy" : "suck your cock"}"?`));
+			if (canSee(eventSlave)) {
+				r.push(`You nod,`);
+			} else {
+				r.push(`You acknowledge,`);
+			}
+			r.push(`and tell ${him} that the rules are back in effect.`);
+			if (isAmputee(eventSlave)) {
+				r.push(`As you get ${his} helpless form into position,`);
+			} else if (eventSlave.belly >= 300000) {
+				r.push(`As ${he} struggles to get into position with ${his} ${belly} stomach in the way,`);
+			} else if (eventSlave.belly >= 10000) {
+				r.push(`As ${he} gently lowers ${his}`);
+				if (eventSlave.bellyPreg >= 3000) {
+					r.push(`gravid`);
+				} else {
+					r.push(`bloated`);
+				}
+				r.push(`form to`);
+				if (hasBothLegs(eventSlave)) {
+					r.push(`its knees,`);
+				} else {
+					r.push(`the ground,`);
+				}
+			} else {
+				r.push(`As ${he} gets down on`);
+				if (hasBothLegs(eventSlave)) {
+					r.push(`${his} knees,`);
+				} else {
+					r.push(`the ground,`);
+				}
+			}
+			r.push(`${he} <span class="devotion inc">focuses on the task</span> in front of ${him} with all ${his} considerable intelligence, clearly having decided to make things easier on ${himself} by conforming to ${his} new life.`);
+			eventSlave.devotion += 4;
+			seX(eventSlave, "oral", V.PC, "penetrative");
+			return r;
+		}
+
+		function buttfuck() {
+			r = [];
+			if (isAmputee(eventSlave)) {
+				r.push(`You lay ${his} fuckpuppet torso across`);
+			} else if (eventSlave.belly >= 5000) {
+				r.push(`You tip ${his}`);
+				if (eventSlave.bellyPreg >= 3000) {
+					r.push(`motherly`);
+				} else {
+					r.push(`swollen`);
+				}
+				r.push(`body backwards onto`);
+			} else {
+				r.push(`You push ${him} backwards onto`);
+			}
+			r.push(`your desk, groping ${his}`);
+			if (eventSlave.butt > 15) {
+				r.push(`absurd`);
+			} else if (eventSlave.butt > 10) {
+				r.push(`immense`);
+			} else if (eventSlave.butt > 7) {
+				r.push(`huge`);
+			} else if (eventSlave.butt > 4) {
+				r.push(`big`);
+			} else if (eventSlave.butt > 1) {
+				r.push(`moderate`);
+			} else {
+				r.push(`meager`);
+			}
+			r.push(`butt. You instruct ${him} that ${he}'ll be allowed to talk if ${he} wants, but not yet, as you`);
+			if (V.PC.dick === 0) {
+				r.push(`push a couple of fingers up`);
+			} else {
+				r.push(`line your cock up with`);
+			}
+			if (eventSlave.anus > 2) {
+				r.push(`${his} gaping asshole.`);
+			} else if (eventSlave.anus > 1) {
+				r.push(`${his} sizable asshole.`);
+			} else {
+				r.push(`${his} tight asshole.`);
+			}
+			r.push(`As you penetrate ${him}, you tell ${him} that the time to talk is now.`);
+			if (eventSlave.anus > 2) {
+				r.push(`To make the sex sufficiently uncomfortable, you`);
+				if (V.PC.dick === 0) {
+					r.push(`finger fuck`);
+				} else {
+					r.push(`dick`);
+				}
+				r.push(`${him} without mercy.`);
+			} else if (eventSlave.anus > 1) {
+				r.push(`To make the sex sufficiently uncomfortable, you pull yourself out with every stroke, putting ${him} through initial anal penetration over and over.`);
+			} else {
+				r.push(`${His} butt is so tight that just a simple assfuck makes ${him} uncomfortable enough.`);
+			}
+			r.push(`${He} opens ${his} mouth, closes it again, grunts at the burning sensation of your rough use of ${his} poor ass, and then shuts up. You ask ${him} if ${he}'s sure ${he} doesn't have anything to say, and ${he} makes ${his} one verbal comment of the day:`, Spoken(eventSlave, `"No, ${Master}."`), `${He} understands the lesson here: fail to <span class="devotion inc">conform,</span> <span class="trust dec">get assraped.</span> It's as simple as that.`);
+			eventSlave.devotion += 3;
+			eventSlave.trust -= 3;
+			r.push(VCheck.Anal(eventSlave, 1));
+			return r;
+		}
+
+		function fucking() {
+			r = [];
+			if (isAmputee(eventSlave)) {
+				r.push(`You lay ${his} fuckpuppet torso across`);
+			} else if (eventSlave.belly >= 5000) {
+				r.push(`You tip ${his}`);
+				if (eventSlave.bellyPreg >= 3000) {
+					r.push(`motherly`);
+				} else {
+					r.push(`swollen`);
+				}
+				r.push(`body backwards onto`);
+			} else {
+				r.push(`You push ${him} backwards onto`);
+			}
+			r.push(`your desk, groping ${his}`);
+			if (eventSlave.butt > 15) {
+				r.push(`absurd`);
+			} else if (eventSlave.butt > 10) {
+				r.push(`immense`);
+			} else if (eventSlave.butt > 7) {
+				r.push(`huge`);
+			} else if (eventSlave.butt > 4) {
+				r.push(`big`);
+			} else if (eventSlave.butt > 1) {
+				r.push(`moderate`);
+			} else {
+				r.push(`meager`);
+			}
+			r.push(`butt. You instruct ${him} that ${he}'ll be allowed to talk if ${he} wants, but not yet, as you`);
+			if (V.PC.dick === 0) {
+				r.push(`push a dildo into`);
+			} else {
+				r.push(`line your cock up with`);
+			}
+			r.push(`${his}`);
+			if (eventSlave.anus > 2) {
+				r.push(`gaping`);
+			} else if (eventSlave.anus > 1) {
+				r.push(`sizable`);
+			} else {
+				r.push(`tight`);
+			}
+			r.push(`pussy. As you penetrate ${him}, you tell ${him} that the time to talk is now.`);
+			if (eventSlave.vagina > 2) {
+				r.push(`To make the sex sufficiently overwhelming, you`);
+				if (V.PC.dick === 0) {
+					r.push(`ram`);
+				} else {
+					r.push(`dick`);
+				}
+				r.push(`${him} without mercy.`);
+			} else if (eventSlave.vagina > 1) {
+				r.push(`To make the sex sufficiently overwhelming, you pull yourself out with every stroke, putting ${him} through initial penetration over and over.`);
+			} else {
+				r.push(`${His} cunt is so tight that just a simple fucking overwhelms ${him} with pleasure.`);
+			}
+			r.push(`${He} opens ${his} mouth, closes it again, groaning at the sensation of your rough use of ${his} body, and then stops trying. You ask ${him} if ${he}'s sure ${he} doesn't have anything to say, and ${he} lets off an orgasmic moan. There's <span class="devotion inc">no need to talk</span> when your owner is <span class="trust inc">fucking your brains out.</span>`);
+			eventSlave.devotion += 3;
+			eventSlave.trust += 3;
+			r.push(VCheck.Vaginal(eventSlave, 1));
+			return r;
+		}
+	}
+};
diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js
index 38e29cace48d554031230d634fe2d002ca96ff51..6304afac9637ef6ce2112980941866ce202c6701 100644
--- a/src/events/randomEvent.js
+++ b/src/events/randomEvent.js
@@ -40,6 +40,7 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RESSObedientIdiot(),
 		new App.Events.RESSObedientShemale(),
 		new App.Events.RESSPassingDeclaration(),
+		new App.Events.RESSRestrictedSmart(),
 		new App.Events.RESSPenitent(),
 		new App.Events.RESSRetchingCum(),
 		new App.Events.RESSServeThePublicDevoted(),
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index aa457212ea7aa62ac12bf757d982ce3570bf05a4..65a692b4756f72ba12bcfd5e6564534ba56924f2 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -915,13 +915,6 @@ if(eventSlave.drugs === "breast injections") {
 							V.RESSevent.push("restricted profession");
 						}
 					}
-					if (eventSlave.intelligence > 15) {
-						if (eventSlave.trust >= -20) {
-							if (eventSlave.devotion <= 20) {
-								V.RESSevent.push("restricted smart");
-							}
-						}
-					}
 				}
 			}
 
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 7fae1648cdeacdff6c414d666768c97041f9d9fd..e2cfa861510a9a297a75925a98919153a253f6ac 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -44,7 +44,7 @@
 <<set _clothesTemp = $activeSlave.clothes>>
 <<switch $RESSevent>>
 /*Some events start with the slave naked (any event that starts with the daily inspection, for example). Here we switch their clothing just for the image to load, then switch it back quickly so the player's choice is not messed up.*/
-<<case "age implant" "ara ara" "back stretch" "bad dream" "bonded love" "breast expansion blues" "confident tanning" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "implant inspection" "language lesson" "mindbroken morning" "mods please" "old PC age difference" "orchiectomy please" "PA flirting" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "restricted smart" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave dick huge" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">>
+<<case "age implant" "ara ara" "back stretch" "bad dream" "bonded love" "breast expansion blues" "confident tanning" "devoted exhibition" "devoted lotion" "desperate null" "devoted nympho" "extreme aphrodisiacs" "fearful balls" "fucktoy tribbing" "gaped asshole" "happy dance" "heavy piercing" "huge naturals" "huge tits" "hugely pregnant" "ignorant horny" "implant inspection" "language lesson" "mindbroken morning" "mods please" "old PC age difference" "orchiectomy please" "PA flirting" "permitted masturbation" "plimb help" "rebellious arrogant" "resistant gelding" "resistant shower" "resting amp" "restricted profession" "sexy succubus" "shaped areolae" "shift masturbation" "shift sleep" "shower slip" "slave dick huge" "sleeping ambivalent" "sore shoulders" "spa boobs" "subjugation blues" "tendon fall" "terrified inspection" "tittymonster inspection" "torpedo squeeze" "transition anxiety" "trusting HG" "unhappy virgin" "used whore" "vocal disobedience" "young PC age difference">>
 	<<set $activeSlave.clothes = "no clothing">>
 <<case "inconvenient labia">>
 	/* "pulling down the compression shorts $he was wearing" */
@@ -1634,10 +1634,6 @@ $He looks doubtful, as though $he's wondering whether to make a request. Finally
 	"May I have labiapla<<s>>ty, <<Master>>? It would make working out <<s>>o much ea<<s>>ier on my poor pu<<ss>>y."
 <</if>>
 
-<<case "restricted smart">>
-
-During a routine inspection of <<= App.UI.slaveDescriptionDialog($activeSlave)>>, you notice that $he's behaving a little strangely. $He's participating in the inspection with almost manic attention, trying to anticipate your directions and hanging desperately on your every word. After a moment, you reflect that $he's a smart $girl, and is probably suffering for a lack of conversation. As you regard $him <<if (!hasAnyLegs($activeSlave))>>sitting <<if (hasAnyArms($activeSlave))>>helplessly<<else>>limblessly<</if>><<elseif !canWalk($activeSlave)>>kneeling<<else>>standing<</if>> there, $his <<if canSee($activeSlave)>>eyes almost scream<<else>>face almost screams<</if>> at you for some sort of stimulation. $His life is not without mental interest, but talking is one of the quintessential human behaviors, and having it taken away is very difficult for someone as intelligent as $him. A mute almost might have it easier, for $he is also denied the volubility through sign language that mute slaves under less restrictive rules often enjoy.
-
 <<case "restricted profession">>
 
 <<set _shoutitoutloud = $enunciate.title.toUpperCase()>>
@@ -9717,122 +9713,6 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look.
 	<</link>><<if ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>>
 <</if>>
 
-<<case "restricted smart">>
-
-<<link "Discuss $his future with $him">>
-	<<replace "#result">>
-		You announce matter-of-factly that $he's allowed to speak temporarily, and that you'll be discussing where $he is and where $he sees $himself in the near future. $He's disconcerted by the subject but so desperate for conversation that $he's overjoyed anyway.
-		"I under<<s>>tand what you're doing, <<Master>>," $he <<say>>s forthrightly. "I'm to be broken down into a devoted <<s>>lave." $He looks thoughtful. "I'll help you with that. It'll be ea<<s>>ier if I do, won't it?" $He looks up, and you <<if canSee($activeSlave)>>nod in affirmation<<else>>acknowledge $him<</if>>; $he gives you a rueful smile. "A good <<s>>lut would offer to give you oral now, I think. <<S>>o, <<Master>>, may I plea<<s>>e be allowed to <<if $PC.dick == 0>>lick your pu<<ss>>y<<else>><<s>>uck your cock<</if>>?"
-		You <<if canSee($activeSlave)>>nod<<else>>acknowledge<</if>>, and tell $him that the rules are back in effect. As
-		<<if isAmputee($activeSlave)>>
-			you get $his helpless form into position,
-		<<elseif $activeSlave.belly >= 300000>>
-			$he struggles to get into position with $his _belly stomach in the way,
-		<<elseif $activeSlave.belly >= 10000>>
-			$he gently lowers $his <<if $activeSlave.bellyPreg >= 3000>>gravid<<else>>bloated<</if>> form to <<if hasBothLegs($activeSlave)>>its knees<<else>>the ground<</if>>,
-		<<else>>
-			$he gets down on <<if hasBothLegs($activeSlave)>>$his knees<<else>>the ground<</if>>,
-		<</if>>
-		$he @@.hotpink;focuses on the task@@ in front of $him with all $his considerable intelligence, clearly having decided to make things easier on $himself by conforming to $his new life.
-		<<set $activeSlave.devotion += 4>>
-		<<run seX($activeSlave, "oral", $PC, "penetrative")>>
-	<</replace>>
-<</link>>
-<<if canDoAnal($activeSlave)>>
-	<br><<link "Let $him talk during a rough buttfuck">>
-		<<replace "#result">>
-			You
-			<<if isAmputee($activeSlave)>>
-				lay $his fuckpuppet torso across
-			<<elseif $activeSlave.belly >= 5000>>
-				tip $his <<if $activeSlave.bellyPreg >= 3000>>motherly<<else>>swollen<</if>> body backwards onto
-			<<else>>
-				push $him backwards onto
-			<</if>>
-			your desk, groping $his
-			<<if $activeSlave.butt > 15>>
-				absurd
-			<<elseif $activeSlave.butt > 10>>
-				immense
-			<<elseif $activeSlave.butt > 7>>
-				huge
-			<<elseif $activeSlave.butt > 4>>
-				big
-			<<elseif $activeSlave.butt > 1>>
-				moderate
-			<<else>>
-				meager
-			<</if>>
-			butt. You instruct $him that $he'll be allowed to talk if $he wants, but not yet, as you <<if $PC.dick == 0>>push a couple of fingers up<<else>>line your cock up with<</if>> $his
-			<<if $activeSlave.anus > 2>>
-				gaping
-			<<elseif $activeSlave.anus > 1>>
-				sizable
-			<<else>>
-				tight
-			<</if>>
-			asshole. As you penetrate $him, you tell $him that the time to talk is now.
-			<<if $activeSlave.anus > 2>>
-				To make the sex sufficiently uncomfortable, you <<if $PC.dick == 0>>finger fuck<<else>>dick<</if>> $him without mercy.
-			<<elseif $activeSlave.anus > 1>>
-				To make the sex sufficiently uncomfortable, you pull yourself out with every stroke, putting $him through initial anal penetration over and over.
-			<<else>>
-				$His butt is so tight that just a simple assfuck makes $him uncomfortable enough.
-			<</if>>
-			$He opens $his mouth, closes it again, grunts at the burning sensation of your rough use of $his poor ass, and then shuts up. You ask $him if $he's sure $he doesn't have anything to say, and $he makes $his one verbal comment of the day: "No, <<Master>>." $He understands the lesson here: fail to @@.hotpink;conform,@@ @@.gold;get assraped.@@ It's as simple as that.
-			<<set $activeSlave.devotion += 3, $activeSlave.trust -= 3>>
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<</replace>>
-	<</link>><<if ($activeSlave.anus == 0)>> //This option will take $his virginity//<</if>>
-<</if>>
-<<if canDoVaginal($activeSlave)>>
-	<br><<link "Let $him try to talk during a vigorous fucking">>
-		<<replace "#result">>
-			You
-			<<if isAmputee($activeSlave)>>
-				lay $his fuckpuppet torso across
-			<<elseif $activeSlave.belly >= 5000>>
-				tip $his <<if $activeSlave.bellyPreg >= 3000>>motherly<<else>>swollen<</if>> body backwards onto
-			<<else>>
-				push $him backwards onto
-			<</if>>
-			your desk, groping $his
-			<<if $activeSlave.butt > 15>>
-				absurd
-			<<elseif $activeSlave.butt > 10>>
-				immense
-			<<elseif $activeSlave.butt > 7>>
-				huge
-			<<elseif $activeSlave.butt > 4>>
-				big
-			<<elseif $activeSlave.butt > 1>>
-				moderate
-			<<else>>
-				meager
-			<</if>>
-			butt. You instruct $him that $he'll be allowed to talk if $he wants, but not yet, as you <<if $PC.dick == 0>>push a dildo into<<else>>line your cock up with<</if>> $his
-			<<if $activeSlave.anus > 2>>
-				gaping
-			<<elseif $activeSlave.anus > 1>>
-				sizable
-			<<else>>
-				tight
-			<</if>>
-			pussy. As you penetrate $him, you tell $him that the time to talk is now.
-			<<if $activeSlave.vagina > 2>>
-				To make the sex sufficiently overwhelming, you <<if $PC.dick == 0>>ram<<else>>dick<</if>> $him without mercy.
-			<<elseif $activeSlave.vagina > 1>>
-				To make the sex sufficiently overwhelming, you pull yourself out with every stroke, putting $him through initial penetration over and over.
-			<<else>>
-				$His cunt is so tight that just a simple fucking overwhelms $him with pleasure.
-			<</if>>
-			$He opens $his mouth, closes it again, groaning at the sensation of your rough use of $his body, and then stops trying. You ask $him if $he's sure $he doesn't have anything to say, and $he lets off an orgasmic moan. There's @@.hotpink;no need to talk@@ when your owner is @@.mediumaquamarine;fucking your brains out.@@
-			<<set $activeSlave.devotion += 3, $activeSlave.trust += 3>>
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<</replace>>
-	<</link>><<if ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>>
-<</if>>
-
 <<case "restricted profession">>
 
 <<link "Let $him speak briefly if $he's very quiet">>