diff --git a/src/endWeek/nextWeek/resetGlobals.js b/src/endWeek/nextWeek/resetGlobals.js
index 2c08654e4962b4d2b3fd16ebbfdc5fe60957d55b..467b5485b42324cd1900ed5ed433f5243e481146 100644
--- a/src/endWeek/nextWeek/resetGlobals.js
+++ b/src/endWeek/nextWeek/resetGlobals.js
@@ -45,7 +45,6 @@ App.EndWeek.resetGlobals = function() {
 	V.PETSevent = [];
 	V.FSAcquisitionEvents = [];
 	V.FSNonconformistEvents = [];
-	V.REAnalCowgirlSubIDs = [];
 	V.REButtholeCheckinIDs = [];
 	V.recruit = [];
 	V.RETasteTestSubIDs = [];
diff --git a/src/events/RETS/reAnalCowgirl.js b/src/events/RETS/reAnalCowgirl.js
new file mode 100644
index 0000000000000000000000000000000000000000..841691e83f5fa5802e8ebcf8f2b953baa71a569b
--- /dev/null
+++ b/src/events/RETS/reAnalCowgirl.js
@@ -0,0 +1,388 @@
+App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return [
+			() => V.universalRulesConsent === 0,
+		];
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // event slave /domslave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.assignment !== Job.QUARTER,
+				s => s.devotion > 20,
+				s => ["buttslut", "sadist", "dom"].includes(s.fetish),
+				s => (s.chastityPenis !== 1 || s.dick === 0),
+				s => s.rules.release.slaves === 1,
+			],
+			[ // and subslave
+				s => s.fetish !== "mindbroken",
+				canWalk,
+				canTalk,
+				isSlaveAvailable,
+				s => (s.devotion >= -20 && s.devotion <= 60),
+				s => s.fetish !== "buttslut",
+				s => (canDoAnal(s) && s.anus !== 0),
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave, subSlave] = this.actors.map(a => getSlave(a));
+		const {
+			He, he, his, him, himself
+		} = getPronouns(eventSlave);
+		const {
+			He2, he2, His2, his2, him2, girl2, himself2
+		} = getPronouns(subSlave).appendSuffix("2");
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, [eventSlave, subSlave], "no clothing");
+		const canP = canPenetrate(eventSlave);
+		let t = [];
+
+
+		t.push(`As you approach your office returning from an unexpected but minor matter, you hear the unmistakable sounds of sexual congress. Reviewing your schedule as you cover the last few ${V.showInches === 2 ? "feet" : "meters"} you see that indeed,`);
+		t.push(contextualIntro(V.PC, eventSlave, "DOM"));
+		t.push(`is due to be inspected. It seems likely that while waiting for your return, ${he} called a fellow slave who was passing your office in to keep ${him} company. And as you enter, you see that this is true.`);
+		App.Events.addParagraph(node, t);
+		t= [];
+
+		t.push(`${He}'s sitting on the end of the couch, though only ${his} legs, crotch, and hands are immediately visible. This is because ${he} has`);
+		t.push(contextualIntro(eventSlave, subSlave, "DOM"));
+		t.push(`on top of ${him}, impaled on ${canP ? `${his} cock`: `a strap-on ${he}'s wearing`}. ${subSlave.slaveName} is bent almost double. ${eventSlave.slaveName} has ${his} ${eventSlave.skin} hands up on the backs of ${subSlave.slaveName}'s ${subSlave.skin} knees, holding ${his2} legs`);
+		if (eventSlave.belly >= 5000) {
+			t.push(`to either side of ${his2}`);
+			if (eventSlave.preg > eventSlave.pregData.normalBirth/8) {
+				t.push(`pregnancy,`);
+			} else {
+				t.push(`belly,`);
+			}
+		}
+		t.push(`up against ${his2}`);
+		if (subSlave.boobs > 2000) {
+			t.push(`inconveniently big boobs.`);
+		} else {
+			t.push(`shoulders.`);
+		}
+		t.push(`${subSlave.slaveName} is completely helpless, and ${he2}'s being fucked hard:`);
+		if (canP) {
+			if (eventSlave.dick - subSlave.anus > 2) {
+				t.push(`${eventSlave.slaveName}'s cock is very big,`);
+				if (subSlave.anus > 2) {
+					t.push(`even for ${subSlave.slaveName}'s loose anus,`);
+				} else if (subSlave.anus > 1) {
+					t.push(`even for ${subSlave.slaveName}'s experienced anus,`);
+				} else {
+					t.push(`especially for ${subSlave.slaveName}'s tight anus,`);
+				}
+				t.push(`so ${eventSlave.slaveName} is bouncing ${his} anal bottom up and down only a little way, allowing ${him} to do so fast.`);
+			} else if (eventSlave.dick - subSlave.anus > 0) {
+				t.push(`${eventSlave.slaveName}'s cock is a good fit for ${subSlave.slaveName}'s`);
+				if (subSlave.anus > 2) {
+					t.push(`loose`);
+				} else if (subSlave.anus > 1) {
+					t.push(`welcoming`);
+				} else {
+					t.push(`tight`);
+				}
+				t.push(`anus, so ${eventSlave.slaveName} is bouncing ${his} anal bottom up and down fast.`);
+			} else {
+				t.push(`${eventSlave.slaveName}'s cock barely stretches ${subSlave.slaveName}'s`);
+				if (subSlave.anus > 2) {
+					t.push(`loose`);
+				} else if (subSlave.anus > 1) {
+					t.push(`welcoming`);
+				} else {
+					t.push(`tight`);
+				}
+				t.push(`anus, so ${eventSlave.slaveName} is bouncing ${his} anal bottom up and down as fast as ${he} possibly can.`);
+			}
+		} else {
+			t.push(`${eventSlave.slaveName} is using the biggest dildo ${subSlave.slaveName}'s`);
+			if (subSlave.anus > 2) {
+				t.push(`loose`);
+			} else if (subSlave.anus > 1) {
+				t.push(`welcoming`);
+			} else {
+				t.push(`tight`);
+			}
+			t.push(`anus can handle, and ${he}'s bouncing ${his} anal bottom up and down fast.`);
+		}
+		t.push(`Surprisingly, the slave on top doesn't seem too unhappy with this. ${He2}'s no slavishly devoted buttslut, but`);
+		if ((subSlave.chastityPenis === 1) && canAchieveErection(subSlave)) {
+			t.push(`${he2}'s taking it well, and even looking a little uncomfortable as the beginnings of a hard-on press against ${his2} chastity cage.`);
+		} else if (subSlave.belly >= 10000) {
+			t.push(`${he2}'s taking it well,`);
+			if (subSlave.bellyPreg >= 8000) {
+				t.push(`though ${his2}`);
+				if (subSlave.pregType > 1) {
+					t.push(`children seem to be expressing their own thoughts as ${he2} rubs ${his2} pregnant belly.`);
+				} else {
+					t.push(`children seem to be expressing their own thought as ${he2} rubs ${his2} pregnant belly.`);
+				}
+			} else if (subSlave.bellyImplant >= 8000) {
+				t.push(`${his2} implant rounded belly bobbing with each thrust into ${him2}.`);
+			} else {
+				t.push(`though looking a little uncomfortable as ${he2} soothes ${his2} ${subSlave.inflationType}-filled belly.`);
+			}
+		} else if (canAchieveErection(subSlave)) {
+			t.push(`${his2} cock is proudly erect, sticking straight up as ${he2} reclines against ${eventSlave.slaveName} beneath ${him2}, wiggling a little with the rhythm of the pounding.`);
+		} else if (subSlave.bellyFluid >= 2000) {
+			t.push(`${his2} ${subSlave.inflationType}-filled belly wobbling lewdly with the motion of the pounding.`);
+		} else if (subSlave.dick > 0) {
+			t.push(`${he2} looks aroused, though ${his2} flopping dick can't show it.`);
+		} else if (subSlave.vaginaLube > 0) {
+			t.push(`${his2} cunt is gushing`);
+			if (girl2 === "girl") {
+				t.push(`female`);
+			}
+			t.push(`lubricant as the pistoning phallus alternately pushes and pulls at ${his2} vaginal walls.`);
+		} else if (subSlave.labia > 0) {
+			t.push(`${his2} generous petals move gently with the motion of the pounding, and they're far from dry.`);
+		} else if (subSlave.vagina === -1) {
+			t.push(`${he2}'s taking it up ${his2} only hole just fine.`);
+		} else {
+			t.push(`${his2} cunt glistens as the pistoning phallus alternately pushes and pulls at ${his2} vaginal walls.`);
+		}
+		t.push(`"H-h-hi-i`);
+		if (SlaveStatsChecker.checkForLisp(subSlave)) {
+			if (subSlave.custom.titleLisp !== "" && subSlave.custom.titleLisp !== 0) {
+				t.push(`${subSlave.custom.titleLisp}," ${he2} lisps`);
+			} else if (V.PC.customTitleLisp) {
+				t.push(`${V.PC.customTitleLisp}," ${he2} lisps`);
+			} else if (V.PC.title !== 0) {
+				t.push(`M-m-ma-a-th-t-ter," ${he2} lisps`);
+			} else {
+				t.push(`M-m-mi-i-ith-t-r-r-e-eth-th-th," ${he2} lisps`);
+			}
+		} else {
+			if (subSlave.custom.title !== "" && subSlave.custom.title !== 0) {
+				t.push(`${subSlave.custom.title}," ${he2} says`);
+			} else if (V.PC.customTitle) {
+				t.push(`${V.PC.customTitle}," ${he2} says`);
+			} else if (V.PC.title !== 0) {
+				t.push(`M-m-ma-a-st-t-ter," ${he2} says`);
+			} else {
+				t.push(`M-m-mi-i-is-st-r-r-e-es-s-s," ${he2} says`);
+			}
+		}
+		t.push(`breathlessly, doing ${his2} best to greet you properly despite the bouncing.`);
+		App.Events.addParagraph(node, t);
+		t= [];
+
+		t.push(`${eventSlave.slaveName} stops thrusting, and ${his}`);
+		if (eventSlave.face > 95) {
+			t.push(`gorgeous`);
+		} else if (eventSlave.face >= -10) {
+			t.push(`pretty`);
+		} else {
+			t.push(`homely`);
+		}
+		t.push(`face instantly appears, craning out from behind ${subSlave.slaveName}'s back to see. ${Spoken(eventSlave, `"Oh, hi, ${getWrittenTitle(eventSlave)}!"`)} ${he} says with a cheerful smile,`);
+		if (eventSlave.muscles > 30) {
+			t.push(`not breathing hard at all despite bouncing a ${girl2} off ${his} crotch.`);
+		} else if (eventSlave.muscles > 5) {
+			t.push(`barely out of breath despite the effort.`);
+		} else {
+			t.push(`completely out of breath.`);
+		}
+		t.push(Spoken(eventSlave, `"I ${canSee(eventSlave) ? "saw" : canHear(eventSlave) ? "heard" : "noticed"} ${him2} going by, and I thought ${he2}'d look cute with ${canP ? "my dick" : "a strap-on"} up ${his2} butthole, so I ${V.universalRulesConsent === 0 ? `told ${him2} to get in here and take it.` : `asked ${him2} to get in here and ${he2} did!`}"`));
+		t.push(`${He} shrugs.`);
+		if (eventSlave.fetish === "sadist") {
+			t.push(Spoken(eventSlave, `"I thought ${he2} was going to whine and struggle, but ${he2}'s kinda disappointing."`));
+		} else if (eventSlave.fetish === "pregnancy" && subSlave.belly >= 10000) {
+			if (subSlave.bellyPreg >= 8000) {
+				t.push(Spoken(eventSlave, `"${He2} was so pregnant, I just had to fuck ${him2}. I'm surprised ${he2}'s enjoying it so much."`));
+			} else {
+				t.push(Spoken(eventSlave, `"${His2} belly's so round, I just had to fuck ${him2}. I just wish ${he2} was pregnant."`));
+			}
+		} else if (eventSlave.fetish === "buttslut") {
+			t.push(Spoken(eventSlave, `"I like buttsex so much, it's good to give back."`));
+		} else {
+			t.push(Spoken(eventSlave, `"I thought ${he2} was going to be unhappy about it, but ${he2}'s actually taking it really well."`));
+		}
+		t.push(`${He} clearly held off on climaxing in case you wanted ${his} libido undiminished for the inspection, and is obediently waiting for your orders, with the bemused ${subSlave.slaveName} perched motionless atop ${him}.`);
+
+		App.Events.addParagraph(node, t);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Make sure ${he} looks after ${his} bottom`, bottom),
+			new App.Events.Result("Dominate the slave on top", dominate),
+		]);
+
+
+		function bottom() {
+			t = [];
+
+			t.push(`You tell ${him} you'll inspect ${him} after ${he}'s done, but add that ${subSlave.slaveName} is clearly being a very good little anal slut, and ${he2} deserves to be rewarded.`);
+			t.push(`${canHear(subSlave) ? "Hearing" : "Learning"} this, ${subSlave.slaveName} <span class="hotpink">looks at you very gratefully,</span> and mouths a quiet thanks.`);
+			t.push(Spoken(subSlave, `"Yes, ${getWrittenTitle(subSlave)}!"`));
+			t.push(`comes the response. ${eventSlave.slaveName} shifts ${his} bitch to one side, and cranes ${his} head upward to make out with the compliant slave. ${subSlave.slaveName} kisses ${him} back with gusto, surprising ${eventSlave.slaveName} again. ${He} recoils in shock at how much tongue ${subSlave.slaveName} gives ${him}, but moans aggressively and gets ${his} revenge by dropping one of ${subSlave.slaveName}'s knees and`);
+			if (subSlave.chastityPenis) {
+				t.push(`playing with one of ${his2} nipples.`);
+			} else if (canAchieveErection(subSlave)) {
+				t.push(`jacking ${him2} off.`);
+			} else if (subSlave.dick > 0) {
+				t.push(`playing with ${his2} soft cock.`);
+			} else if (subSlave.clit > 1) {
+				t.push(`rubbing ${his2} ridiculous clit.`);
+			} else if (subSlave.labia > 0) {
+				t.push(`fingering ${his2} glorious labia.`);
+			} else if (subSlave.vagina === -1) {
+				t.push(`fingering ${his2} anus.`);
+			} else {
+				t.push(`fingering ${his2} clit.`);
+			}
+			t.push(`Jerking at the stimulation, ${subSlave.slaveName} urges ${his2} butt down against ${eventSlave.slaveName}'s hips, physically begging for a resumption of the sodomy. ${eventSlave.slaveName} applies ${himself}, forcing a growing whine out of ${subSlave.slaveName} as ${his2} asspussy is mercilessly fucked.`);
+			if (subSlave.chastityPenis) {
+				t.push(`${His2} chastity cage prevents ${him2} from orgasming, but when ${eventSlave.slaveName} climaxes and lets ${him2} up,`);
+			} else if (canAchieveErection(subSlave)) {
+				t.push(`${He2} cums all over ${his2} own`);
+				if (subSlave.belly >= 5000) {
+					if (subSlave.bellyPreg >= 3000) {
+						t.push(`pregnant`);
+					} else {
+						t.push(`rounded`);
+					}
+				} else {
+					t.push(`chest and`);
+				}
+				t.push(`belly, the droplets of semen oozing down ${him2} as ${eventSlave.slaveName} reaches ${his} own climax. When ${eventSlave.slaveName} lets ${him2} up,`);
+			} else if (subSlave.vagina === -1) {
+				t.push(`${He2} cums weakly, the droplets of watery ejaculate running down ${him2} as ${eventSlave.slaveName} reaches ${his} own climax. When ${eventSlave.slaveName} lets ${him2} up,`);
+			} else if (subSlave.vaginaLube > 0) {
+				t.push(`${He2} orgasms powerfully, femcum squirting out of ${his2} pussy as ${eventSlave.slaveName} reaches ${his} own climax. When ${eventSlave.slaveName} lets ${him2} up,`);
+			} else {
+				t.push(`${He2} orgasms powerfully, ${his2} abs tightening. When ${eventSlave.slaveName} lets ${him2} up,`);
+			}
+			t.push(`${he2} looks pleased with ${himself2}, and <span class="mediumaquamarine">a little more confident,</span> too.`);
+			subSlave.devotion += 2;
+			subSlave.trust += 2;
+			seX(subSlave, "anal", eventSlave, "penetrative");
+			if (canImpreg(subSlave, eventSlave)) {
+				t.push(knockMeUp(subSlave, 5, 1, eventSlave.ID, true));
+			}
+			return t;
+		}
+		function dominate() {
+			const frag = document.createDocumentFragment();
+			t = [];
+
+			t.push(`You make no reply, but`);
+			if (V.PC.dick !== 0) {
+				t.push(`advance on the couch, stripping down to reveal a raging erection.`);
+				if (V.PC.vagina !== -1) {
+					t.push(`and ready cunt.`);
+				}
+			} else {
+				t.push(`move to a side table, selecting a formidable strap-on.`);
+			}
+			if (canSee(eventSlave)) {
+				t.push(`Seeing`);
+			} else if (canHear(eventSlave)) {
+				t.push(`Hearing`);
+			} else {
+				t.push(`Acknowledging`);
+			}
+			t.push(`this, ${eventSlave.slaveName} <span class="hotpink">giggles with anticipation,</span> and pulls ${subSlave.slaveName}'s knees back farther. The slave whines at the stretch, and then gasps as the invading phallus pops free of ${his2} asshole. ${His2} anus`);
+			if (subSlave.anus > 2) {
+				t.push(`gapes lewdly, its sphincter so well stretched that it stays invitingly open,`);
+			} else if (subSlave.anus > 1) {
+				t.push(`gapes slightly, its sphincter remaining just barely open,`);
+			} else {
+				t.push(`closes up again immediately once it's no longer being penetrated. Its rosebud is`);
+			}
+			if (canP) {
+				t.push(`glistening with lube and precum from ${eventSlave.slaveName}'s cock`);
+			} else {
+				t.push("glistening with lube.");
+			}
+			t.push(`But you decide to be more circumspect. Pressing your`);
+			if (V.PC.dick !== 0) {
+				t.push(`dickhead`);
+			} else {
+				t.push(`phallus`);
+			}
+			t.push(`into ${subSlave.slaveName}'s mouth, you tell ${him2} to be thorough with ${his2}`);
+			if (V.PC.vagina !== -1) {
+				t.push(`saliva and not to worry about your pussy.`);
+			} else {
+				t.push("saliva.");
+			}
+			t.push(`${His2} eyes widen at the implication, and ${he2} starts to suck lushly.`);
+			App.Events.addParagraph(frag, t);
+			t = [];
+			t.push(`Suddenly, ${he2} jerks and squeals into your`);
+			if (V.PC.dick !== 0) {
+				t.push(`dick.`);
+			} else {
+				t.push(`crotch.`);
+			}
+			t.push(`With you standing there, ${eventSlave.slaveName} can't really see much, and ${he} can't drop ${subSlave.slaveName}'s legs without throwing everything into confusion. So, ${he}'s reduced to blind jabs to get ${his}`);
+			if (canP) {
+				t.push(`cock`);
+			} else {
+				t.push(`strap-on`);
+			}
+			t.push(`back up the poor slave's butt. It takes ${him} quite a while to manage it, and when ${he}'s finally seated, ${subSlave.slaveName} gives as huge a sigh as ${he2} can manage with a phallus down ${his2} throat. ${His2} relief is short lived, however, because soon afterward, you withdraw, leaving a string of spit between ${his2} wet lips and the`);
+			if (V.PC.dick !== 0) {
+				t.push(`head of your turgid cock.`);
+			} else {
+				t.push(`massive head of your strap-on.`);
+			}
+			App.Events.addParagraph(frag, t);
+			t = [];
+			if (subSlave.vagina > 0) {
+				t.push(`With ${eventSlave.slaveName} occupying ${subSlave.slaveName}'s rear hole, your next step is obvious to everyone involved, and ${he2} groans with fullness as ${he2} feels ${his2} cunt accommodate you. ${eventSlave.slaveName} matches ${his} rhythm to yours, and`);
+				if (canP) {
+					t.push(`orgasms promptly, since ${he}'s less accustomed than you are to the delectable sensation of a ${girl2} tightened by a phallus in ${his2} other hole.`);
+				} else {
+					t.push(`climaxes quickly despite having no sensation in ${his} fake dick, since ${he} finds the situation so arousing.`);
+				}
+				if (canImpreg(subSlave, V.PC)) {
+					t.push(knockMeUp(subSlave, 5, 0, -1, true));
+				}
+				if (canP && canImpreg(subSlave, eventSlave)) {
+					t.push(knockMeUp(subSlave, 5, 1, eventSlave.ID, true));
+				}
+			} else if (subSlave.anus > 2) {
+				t.push(`${subSlave.slaveName}'s rear hole is such a loose slit that double anal shouldn't be too much trouble for ${him2}. It isn't, though ${his2} breath definitely quickens as ${he2} feels a second rod push its way past ${his2} stretched sphincter. ${eventSlave.slaveName}`);
+				if (canP) {
+					t.push(`orgasms promptly, unable to prolong sex when ${he}'s feeling ${his} cock slide against you inside another slave's anus.`);
+				} else {
+					t.push(`climaxes quickly despite having no sensation in ${his} fake dick, since ${he} finds the situation so arousing.`);
+				}
+				if (canImpreg(subSlave, V.PC)) {
+					t.push(knockMeUp(subSlave, 5, 1, -1, true));
+				}
+				if (canP && canImpreg(subSlave, eventSlave)) {
+					t.push(knockMeUp(subSlave, 5, 1, eventSlave.ID, true));
+				}
+			} else {
+				t.push(`${subSlave.slaveName}'s rear hole is a bit tight for double anal, and ${he2}'s already quite dominated; you mean to use ${him2} thoroughly, not destroy ${him2}. So, you and ${eventSlave.slaveName} switch off: you use ${subSlave.slaveName}'s butt while ${eventSlave.slaveName} pins ${him2} for you, and then you go back to ${subSlave.slaveName}'s mouth for a while and let ${eventSlave.slaveName} take over sodomizing duties. ${He}`);
+				if (canP) {
+					t.push(`orgasms promptly, since ${he} finds a hole warm from your use very hot.`);
+				} else {
+					t.push(`climaxes quickly despite having no sensation in ${his} fake dick, since ${he} finds the situation so arousing.`);
+				}
+				if (canImpreg(subSlave, V.PC)) {
+					t.push(knockMeUp(subSlave, 5, 1, -1, true));
+				}
+				if (canP && canImpreg(subSlave, eventSlave)) {
+					t.push(knockMeUp(subSlave, 5, 1, eventSlave.ID, true));
+				}
+			}
+			t.push(`When ${subSlave.slaveName} has stumbled off to the shower, ${eventSlave.slaveName} presents ${himself} for inspection, smelling of sex and <span class="mediumaquamarine">smiling trustingly.</span>`);
+			eventSlave.devotion += 2;
+			eventSlave.trust += 2;
+			seX(subSlave, "anal", eventSlave, "penetrative");
+			App.Events.addParagraph(frag, t);
+			return frag;
+		}
+	}
+};
diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js
index 6df323011859ddedfa3242df8e82e3c2dd87eec9..833fee700729a5a9fa5e1e83696a74dc54d59395 100644
--- a/src/events/randomEvent.js
+++ b/src/events/randomEvent.js
@@ -47,6 +47,7 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RECIOrientation(),
 		new App.Events.RECIUgly(),
 
+		new App.Events.RETSAnalCowgirl(),
 		new App.Events.RETSFucktoyPrefersRelative(),
 		new App.Events.RETSInterslaveBegging(),
 		new App.Events.RETSSadisticDescription(),
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index ab0beed8df675fb4d978f2a73e9a016cdc22de2c..6f64ebcb406636376f4a0c1bad4070469a408da5 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -223,18 +223,6 @@ globalThis.generateRandomEventPool = function(eventSlave) {
 						}
 					}
 
-					if (V.REAnalCowgirlSubIDs.length > 1 || (V.REAnalCowgirlSubIDs.length === 1 && eventSlave.ID !== V.REAnalCowgirlSubIDs[0])) {
-						if (eventSlave.devotion > 20) {
-							if (eventSlave.rules.release.slaves === 1) {
-								if (eventSlave.fetish === "buttslut" || eventSlave.fetish === "sadist" || eventSlave.fetish === "dom") {
-									if ((eventSlave.chastityPenis !== 1) || (eventSlave.dick === 0)) {
-										V.RETSevent.push("anal cowgirl");
-									}
-								}
-							}
-						}
-					}
-
 					if (V.REBoobCollisionSubIDs.length > 1) {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.trust > 20) {
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index f63701754c6eb1265006f4e1ef7f3a110516d409..e50fee14b03cec899c749970270e9e3044ccf20c 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -59,18 +59,6 @@
 
 <<set $subSlave = $slaves[$slaveIndices[$eventSlave.relationshipTarget]]>>
 
-<<case "anal cowgirl">>
-
-<<if Array.isArray($REAnalCowgirlSubIDs)>>
-	<<set $REAnalCowgirlSubIDs = $REAnalCowgirlSubIDs.shuffle()>>
-	<<for $i = 0; $i < $REAnalCowgirlSubIDs.length; $i++>>
-		<<if $eventSlave.ID != $REAnalCowgirlSubIDs[$i]>>
-			<<set $subSlave = $slaves[$slaveIndices[$REAnalCowgirlSubIDs[$i]]]>>
-			<<break>>
-		<</if>>
-	<</for>>
-<</if>>
-
 <<case "boob collision">>
 
 <<if Array.isArray($REBoobCollisionSubIDs)>>
@@ -133,7 +121,7 @@
 <<set _clothesTemp2 = $subSlave.clothes>>
 <<switch $RETSevent>>
 	/*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 "anal cowgirl" "boob collision" "cockmilk interception" "if you enjoy it" "incestuous nursing" "repressed anal virgin" "shower force" "taste test">>
+	<<case "boob collision" "cockmilk interception" "if you enjoy it" "incestuous nursing" "repressed anal virgin" "shower force" "taste test">>
 		<<set $activeSlave.clothes = "no clothing">>
 		<<set $subSlave.clothes = "no clothing">>
 	<<case "date please">>
@@ -296,80 +284,6 @@ After you complete your weekly inspection of <<= App.UI.slaveDescriptionDialog($
 <br><br>
 "Thank you, <<Master>>," $he <<say>>s. "I would like to do <<s>>omething for $subSlave.slaveName." You ask if $he's worried about $his <<if $activeSlave.relationship >= 5>>_wife2<<else>><<= _girl2>>friend<</if>> for some reason. "Oh no, <<Master>>," $he answers hurriedly. "No, no, that came out wrong. It'<<s>> ju<<s>>t that I love _him2 and I want to, you know, get _him2 <<s>>omething or do <<s>>omething <<s>>pe<<c>>ial for _him2. We don't really have <<s>>tuff of our own, <<s>>o I can't give _him2 a pre<<s>>ent, and we already do everything either one of u<<s>> want<<s>> in bed, <<s>>o I can't really think of anything." $He <<if canSee($activeSlave)>>looks<<else>>gazes<</if>> at you hopefully.
 
-<<case "anal cowgirl">>
-
-As you approach your office as you return from an unexpected but minor matter, you hear the unmistakable sounds of sexual congress. Reviewing your schedule as you cover the last few <<if $showInches == 2>>feet<<else>>meters<</if>> on your way there, you see that indeed, <<= App.UI.slaveDescriptionDialog($activeSlave)>> is due to be inspected. It seems likely that while waiting for your return, $he called a fellow slave who was passing your office in to keep $him company. And as you enter, you see that this is true.
-<br><br>
-$He's sitting on the end of the couch, though only $his legs, crotch, and hands are immediately visible. This is because $he has <<= App.UI.slaveDescriptionDialog($subSlave)>> on top of $him, impaled on <<if canPenetrate($activeSlave)>>$his cock<<else>>a strap-on $he's wearing<</if>>. $subSlave.slaveName is bent almost double. $activeSlave.slaveName has $his $activeSlave.skin hands up on the backs of $subSlave.slaveName's $subSlave.skin knees, holding _his2 legs<<if $activeSlave.belly >= 5000>> to either side of _his2 <<if ($activeSlave.preg > $activeSlave.pregData.normalBirth/8)>>pregnancy<<else>>belly<</if>>,<</if>> up against _his2 <<if $subSlave.boobs > 2000>>inconveniently big boobs<<else>>shoulders<</if>>. $subSlave.slaveName is completely helpless, and _he2's being fucked hard:
-<<if canPenetrate($activeSlave)>>
-	<<if ($activeSlave.dick - $subSlave.anus > 2)>>
-		$activeSlave.slaveName's cock is very big, <<if $subSlave.anus > 2>>even for $subSlave.slaveName's loose anus<<elseif $subSlave.anus > 1>>even for $subSlave.slaveName's experienced anus<<else>>especially for $subSlave.slaveName's tight anus<</if>>, so $activeSlave.slaveName is bouncing $his anal bottom up and down only a little way, allowing $him to do so fast.
-	<<elseif ($activeSlave.dick - $subSlave.anus > 0)>>
-		$activeSlave.slaveName's cock is a good fit for $subSlave.slaveName's <<if $subSlave.anus > 2>>loose<<elseif $subSlave.anus > 1>>welcoming<<else>>tight<</if>> anus, so $activeSlave.slaveName is bouncing $his anal bottom up and down fast.
-	<<else>>
-		$activeSlave.slaveName's cock barely stretches $subSlave.slaveName's <<if $subSlave.anus > 2>>loose<<elseif $subSlave.anus > 1>>welcoming<<else>>tight<</if>> anus, so $activeSlave.slaveName is bouncing $his anal bottom up and down as fast as $he possibly can.
-	<</if>>
-<<else>>
-	$activeSlave.slaveName is using the biggest dildo $subSlave.slaveName's <<if $subSlave.anus > 2>>loose<<elseif $subSlave.anus > 1>>welcoming<<else>>tight<</if>> anus can handle, and $he's bouncing $his anal bottom up and down fast.
-<</if>>
-Surprisingly, the slave on top doesn't seem too unhappy with this. _He2's no slavishly devoted buttslut, but
-<<if ($subSlave.chastityPenis == 1) && canAchieveErection($subSlave)>>
-	_he2's taking it well, and even looking a little uncomfortable as the beginnings of a hard-on press against _his2 chastity cage.
-<<elseif $subSlave.belly >= 10000>>
-	_he2's taking it well,
-	<<if $subSlave.bellyPreg >= 8000>>
-		though _his2 child<<if $subSlave.pregType > 1>>ren seem<<else>> seems<</if>> to expressing their own thought<<if $subSlave.pregType > 1>>s<</if>> as _he2 rubs _his2 pregnant belly.
-	<<elseif $subSlave.bellyImplant >= 8000>>
-		_his2 implant rounded belly bobbing with each thrust into _him2.
-	<<else>>
-		though looking a little uncomfortable as _he2 soothes _his2 $subSlave.inflationType-filled belly.
-	<</if>>
-<<elseif canAchieveErection($subSlave)>>
-	_his2 cock is proudly erect, sticking straight up as _he2 reclines against $activeSlave.slaveName beneath _him2, wiggling a little with the rhythm of the pounding.
-<<elseif $subSlave.bellyFluid >= 2000>>
-	_his2 $subSlave.inflationType-filled belly wobbling lewdly with the motion of the pounding.
-<<elseif ($subSlave.dick > 0)>>
-	_he2 looks aroused, though _his2 flopping dick can't show it.
-<<elseif ($subSlave.vaginaLube > 0)>>
-	_his2 cunt is gushing <<if _girl2 == "girl">>female <</if>>lubricant as the pistoning phallus alternately pushes and pulls at _his2 vaginal walls.
-<<elseif ($subSlave.labia > 0)>>
-	_his2 generous petals move gently with the motion of the pounding, and they're far from dry.
-<<elseif ($subSlave.vagina == -1)>>
-	_he2's taking it up _his2 only hole just fine.
-<<else>>
-	_his2 cunt glistens as the pistoning phallus alternately pushes and pulls at _his2 vaginal walls.
-<</if>>
-"H-h-hi-i
-<<if SlaveStatsChecker.checkForLisp($subSlave)>>
-	<<if $subSlave.custom.titleLisp != "" && $subSlave.custom.titleLisp != 0>>$subSlave.custom.titleLisp<<elseif def $PC.customTitleLisp>>$PC.customTitleLisp<<elseif $PC.title != 0>>M-m-ma-a-th-t-ter<<else>>M-m-mi-i-ith-t-r-r-e-eth-th-th<</if>>," _he2 lisps
-<<else>>
-	<<if $subSlave.custom.title != "" && $subSlave.custom.title != 0>>$subSlave.custom.title<<elseif def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>M-m-ma-a-st-t-ter<<else>>M-m-mi-i-is-st-r-r-e-es-s-s<</if>>," _he2 says
-<</if>>
-breathlessly, doing _his2 best to greet you properly despite the bouncing.
-<br><br>
-$activeSlave.slaveName stops thrusting, and $his <<if $activeSlave.face > 95>>gorgeous<<elseif $activeSlave.face >= -10>>pretty<<else>>homely<</if>> face instantly appears, craning out from behind $subSlave.slaveName's back to see. "Oh, hi, <<Master>>!" $he says with a cheerful smile, <<if $activeSlave.muscles > 30>>not breathing hard at all despite bouncing a _girl2 off $his crotch<<elseif $activeSlave.muscles > 5>>barely out of breath despite the effort<<else>>completely out of breath<</if>>.
-"I <<if canSee($activeSlave)>><<s>>aw<<elseif canHear($activeSlave)>>heard<<else>>noti<<c>>ed<</if>> _him2 going by, and I thought <<he>>'d look cute with <<if canPenetrate($activeSlave)>>my dick<<else>>a <<s>>trap-on<</if>> up <<his 2>> butthole,
-<<if $universalRulesConsent == 0>>
-	<<s>>o I told _him2 to get in here and take it."
-<<else>>
-	<<s>>o I a<<s>>ked _him2 to come in, and <<he 2>> did!"
-<</if>>
-$He shrugs.
-<<if $activeSlave.fetish == "sadist">>
-	"I thought <<he>> wa<<s>> going to whine and <<s>>truggle, but <<he>>'<<s>> kinda di<<ss>>appointing."
-<<elseif $activeSlave.fetish == "pregnancy" && $subSlave.belly >= 10000>>
-	<<if $subSlave.bellyPreg >= 8000>>
-		"<<He 2>>'<<s>> <<s>>o pregnant, I ju<<s>>t had to fuck _him2. I'm <<s>>urpri<<s>>ed <<he 2>>'<<s>> enjoying it <<s>>o much."
-	<<else>>
-		"<<His 2>> belly'<<s>> <<s>>o round, I ju<<s>>t had to fuck _him2. I ju<<s>>t wi<<sh>> <<he 2>> wa<<s>> pregnant."
-	<</if>>
-<<elseif $activeSlave.fetish == "buttslut">>
-	"I like butt<<s>>e<<x>> <<s>>o much, it'<<s>> good to give back."
-<<else>>
-	"I thought <<he 2>> wa<<s>> going to be unhappy about it, but <<he 2>>'<<s>> actually taking it really well."
-<</if>>
-$He clearly held off on climaxing in case you wanted $his libido undiminished for the inspection, and is obediently waiting for your orders, with the bemused $subSlave.slaveName perched motionless atop $him.
-
 <<case "boob collision">>
 
 <<set _headGirlPresent = 1>>
@@ -872,85 +786,6 @@ $he adds impishly. <<if canHear($subSlave)>>Hearing this<<else>>Realizing your p
 	<</replace>>
 <</link>> //This will cost <<print cashFormat(1000)>>//
 
-<<case "anal cowgirl">>
-
-<<link "Make sure $he looks after $his bottom">>
-	<<replace "#result">>
-	You tell $him you'll inspect $him after $he's done, but add that $subSlave.slaveName is clearly being a very good little anal slut, and _he2 deserves to be rewarded. <<if canHear($subSlave)>>Hearing<<else>>Learning<</if>> this, $subSlave.slaveName @@.hotpink;looks at you very gratefully,@@ and mouths a quiet thanks. "Ye<<s>> <<Master>>!" comes the response. $activeSlave.slaveName shifts $his bitch to one side, and cranes $his head upward to make out with the compliant slave. $subSlave.slaveName kisses $him back with gusto, surprising $activeSlave.slaveName again. $He recoils in shock at how much tongue $subSlave.slaveName gives $him, but moans aggressively and gets $his revenge by dropping one of $subSlave.slaveName's knees and
-	<<if ($subSlave.chastityPenis)>>
-		playing with one of _his2 nipples.
-	<<elseif canAchieveErection($subSlave)>>
-		jacking _him2 off.
-	<<elseif ($subSlave.dick > 0)>>
-		playing with _his2 soft cock.
-	<<elseif ($subSlave.clit > 1)>>
-		rubbing _his2 ridiculous clit.
-	<<elseif ($subSlave.labia > 0)>>
-		fingering _his2 glorious labia.
-	<<elseif ($subSlave.vagina == -1)>>
-		fingering _his2 anus.
-	<<else>>
-		fingering _his2 clit.
-	<</if>>
-	Jerking at the stimulation, $subSlave.slaveName urges _his2 butt down against $activeSlave.slaveName's hips, physically begging for a resumption of the sodomy. $activeSlave.slaveName applies $himself, forcing a growing whine out of $subSlave.slaveName as _his2 asspussy is mercilessly fucked.
-	<<if ($subSlave.chastityPenis)>>
-		_His2 chastity cage prevents _him2 from orgasming, but when $activeSlave.slaveName climaxes and lets _him2 up,
-	<<elseif canAchieveErection($subSlave)>>
-		_He2 cums all over _his2 own <<if $subSlave.belly >= 5000>><<if $subSlave.bellyPreg >= 3000>>pregnant<<else>>rounded<</if>> belly<<else>>chest and belly<</if>>, the droplets of semen oozing down _him2 as $activeSlave.slaveName reaches $his own climax. When $activeSlave.slaveName lets _him2 up,
-	<<elseif ($subSlave.vagina == -1)>>
-		_He2 cums weakly, the droplets of watery ejaculate running down _him2 as $activeSlave.slaveName reaches $his own climax. When $activeSlave.slaveName lets _him2 up,
-	<<elseif ($subSlave.vaginaLube > 0)>>
-		_He2 orgasms powerfully, femcum squirting out of _his2 pussy as $activeSlave.slaveName reaches $his own climax. When $activeSlave.slaveName lets _him2 up,
-	<<else>>
-		_He2 orgasms powerfully, _his2 abs tightening. When $activeSlave.slaveName lets _him2 up,
-	<</if>>
-	_he2 looks pleased with _himself2, and @@.mediumaquamarine;a little more confident,@@ too.
-	<<set $subSlave.devotion += 2, $subSlave.trust += 2>>
-	<<run seX($subSlave, "anal", $activeSlave, "penetrative")>>
-	<<if canImpreg($subSlave, $activeSlave)>>
-		<<= knockMeUp($subSlave, 5, 1, $activeSlave.ID, 1)>>
-	<</if>>
-	<<set $slaves[$slaveIndices[$subSlave.ID]] = $subSlave>>
-	<</replace>>
-<</link>>
-<br><<link "Dominate the slave on top">>
-	<<replace "#result">>
-	You make no reply, but <<if $PC.dick != 0>>advance on the couch, stripping down to reveal a raging erection<<if $PC.vagina != -1>> and ready cunt<</if>>.<<else>>move to a side table, selecting a formidable strap-on.<</if>> <<if canSee($activeSlave)>>Seeing<<elseif canHear($activeSlave)>>Hearing<<else>>Acknowledging<</if>> this, $activeSlave.slaveName @@.hotpink;giggles with anticipation,@@ and pulls $subSlave.slaveName's knees back farther. The slave whines at the stretch, and then gasps as the invading phallus pops free of _his2 asshole. _His2 anus <<if $subSlave.anus > 2>>gapes lewdly, its sphincter so well stretched that it stays invitingly open,<<elseif $subSlave.anus > 1>>gapes slightly, its sphincter remaining just barely open,<<else>>closes up again immediately once it's no longer being penetrated. Its rosebud is<</if>> glistening with lube<<if canPenetrate($activeSlave)>> and precum from $activeSlave.slaveName's cock<</if>>. But you decide to be more circumspect. Pressing your <<if $PC.dick != 0>>dickhead<<else>>phallus<</if>> into $subSlave.slaveName's mouth, you tell _him2 to be thorough with _his2 saliva<<if $PC.vagina != -1>> and not to worry about your pussy<</if>>. _His2 eyes widen at the implication, and _he2 starts to suck lushly.
-	<br><br>
-	Suddenly, _he2 jerks and squeals into your <<if $PC.dick != 0>>dick<<else>>crotch<</if>>. With you standing there, $activeSlave.slaveName can't really see much, and $he can't drop $subSlave.slaveName's legs without throwing everything into confusion. So, $he's reduced to blind jabs to get $his <<if canPenetrate($activeSlave)>>cock<<else>>strap-on<</if>> back up the poor slave's butt. It takes $him quite a while to manage it, and when $he's finally seated, $subSlave.slaveName gives as huge a sigh as _he2 can manage with a phallus down _his2 throat. _His2 relief is short lived, however, because soon afterward, you withdraw, leaving a string of spit between _his2 wet lips and the <<if $PC.dick != 0>>head of your turgid cock<<else>>massive head of your strap-on<</if>>.
-	<br><br>
-	<<if $subSlave.vagina > 0>>
-		With $activeSlave.slaveName occupying $subSlave.slaveName's rear hole, your next step is obvious to everyone involved, and _he2 groans with fullness as _he2 feels _his2 cunt accommodate you. $activeSlave.slaveName matches $his rhythm to yours, and <<if canPenetrate($activeSlave)>>orgasms promptly, since $he's less accustomed than you are to the delectable sensation of a _girl2 tightened by a phallus in _his2 other hole<<else>>climaxes quickly despite having no sensation in $his fake dick, since $he finds the situation so arousing<</if>>.
-		<<if canImpreg($subSlave, $PC)>>
-			<<= knockMeUp($subSlave, 5, 0, -1, 1)>>
-		<</if>>
-		<<if canPenetrate($activeSlave) && canImpreg($subSlave, $activeSlave)>>
-			<<= knockMeUp($subSlave, 5, 1, $activeSlave.ID, 1)>>
-		<</if>>
-	<<elseif $subSlave.anus > 2>>
-		$subSlave.slaveName's rear hole is such a loose slit that double anal shouldn't be too much trouble for _him2. It isn't, though _his2 breath definitely quickens as _he2 feels a second rod push its way past _his2 stretched sphincter. $activeSlave.slaveName <<if canPenetrate($activeSlave)>>orgasms promptly, unable to prolong sex when $he's feeling $his cock slide against you inside another slave's anus<<else>>climaxes quickly despite having no sensation in $his fake dick, since $he finds the situation so arousing<</if>>.
-		<<if canImpreg($subSlave, $PC)>>
-			<<= knockMeUp($subSlave, 5, 1, -1, 1)>>
-		<</if>>
-		<<if canPenetrate($activeSlave) && canImpreg($subSlave, $activeSlave)>>
-			<<= knockMeUp($subSlave, 5, 1, $activeSlave.ID, 1)>>
-		<</if>>
-	<<else>>
-		$subSlave.slaveName's rear hole is a bit tight for double anal, and _he2's already quite dominated; you mean to use _him2 thoroughly, not destroy _him2. So, you and $activeSlave.slaveName switch off: you use $subSlave.slaveName's butt while $activeSlave.slaveName pins _him2 for you, and then you go back to $subSlave.slaveName's mouth for a while and let $activeSlave.slaveName take over sodomizing duties. $He <<if canPenetrate($activeSlave)>>orgasms promptly, since $he finds a hole warm from your use very hot<<else>>climaxes quickly despite having no sensation in $his fake dick, since $he finds the situation so arousing<</if>>.
-		<<if canImpreg($subSlave, $PC)>>
-			<<= knockMeUp($subSlave, 5, 1, -1, 1)>>
-		<</if>>
-		<<if canPenetrate($activeSlave) && canImpreg($subSlave, $activeSlave)>>
-			<<= knockMeUp($subSlave, 5, 1, $activeSlave.ID, 1)>>
-		<</if>>
-	<</if>>
-	When $subSlave.slaveName has stumbled off to the shower, $activeSlave.slaveName presents $himself for inspection, smelling of sex and @@.mediumaquamarine;smiling trustingly.@@
-	<<set $activeSlave.devotion += 2, $activeSlave.trust += 2>>
-	<<run seX($subSlave, "anal", $activeSlave, "penetrative")>>
-	<<set $slaves[$slaveIndices[$subSlave.ID]] = $subSlave>>
-	<</replace>>
-<</link>>
-
 <<case "boob collision">>
 
 <<link "Fuck them">>
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index 6b6a36f74d42ebc951a2ddb2907e4da15e7ef732..f5f8f68b485a63217ad7bb1103bb405e3461c3e6 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -28,7 +28,7 @@
 
 	/* SUB CHECKS */
 
-	<<set $REAnalCowgirlSubIDs = [], $RETasteTestSubIDs = [], $RECockmilkInterceptionIDs = [], $REShowerForceSubIDs = [], $REIfYouEnjoyItSubIDs = [], $REBoobCollisionSubIDs = [], $RERepressedAnalVirginSubIDs = []>>
+	<<set $RETasteTestSubIDs = [], $RECockmilkInterceptionIDs = [], $REShowerForceSubIDs = [], $REIfYouEnjoyItSubIDs = [], $REBoobCollisionSubIDs = [], $RERepressedAnalVirginSubIDs = []>>
 
 	<<for $i = 0; $i < $slaves.length; $i++>>
 		<<if $slaves[$i].fetish != "mindbroken">>
@@ -47,15 +47,6 @@
 								<<set $REBoobCollisionSubIDs.push($slaves[$i].ID)>>
 							<</if>>
 						<</if>>
-						<<if $slaves[$i].devotion >= -20>>
-							<<if $slaves[$i].devotion <= 60>>
-								<<if $slaves[$i].fetish != "buttslut">>
-									<<if $slaves[$i].anus != 0 && canDoAnal($slaves[$i])>>
-										<<set $REAnalCowgirlSubIDs.push($slaves[$i].ID)>>
-									<</if>>
-								<</if>>
-							<</if>>
-						<</if>>
 						<<if $slaves[$i].anus > 0 && canDoAnal($slaves[$i])>>
 							<<if $slaves[$i].devotion > 50>>
 								<<if hasBothLegs($slaves[$i])>>