diff --git a/src/events/RETS/reCockmilkInterception.js b/src/events/RETS/reCockmilkInterception.js
index 4d8e4919f75fc0691001df9fad9cb68f94e69cc6..be42ef54e6abf557215d72e434b20ef74c9a6be9 100644
--- a/src/events/RETS/reCockmilkInterception.js
+++ b/src/events/RETS/reCockmilkInterception.js
@@ -7,19 +7,23 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 		return [
 			[ // event slave /domslave
 				s => s.fetish !== "mindbroken",
-				hasAnyArms,
-				hasAnyLegs,
+				canMove,
 				canTalk,
 				s => s.devotion > 20,
-				s => s.dietCum > 0 || (s.fetishKnown && s.fetish === "cumslut")
+				s => s.dietCum > 0 || (s.fetishKnown && s.fetish === "cumslut"),
+				s => s.belly < 60000,
 			],
 			[ // and subslave
 				s => s.fetish !== "mindbroken",
 				s => (s.assignment === Job.DAIRY || s.assignment === Job.MILKED),
+				isSlaveAvailable,
+				canMove,
 				s => s.dick !== 0,
 				s => s.balls !== 0,
-				s => (s.vasectomy === 0 && s.ballType === "human"),
-				s => (canDoAnal(s) && s.anus !== 0),
+				s => s.vasectomy === 0,
+				s => s.ballType === "human",
+				s => s.belly < 150000,
+				s => ((canDoVaginal(s) && s.vagina > 0) || (canDoAnal(s) && s.anus > 0)),
 			]
 		];
 	}
@@ -31,27 +35,31 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			He, he, his, him, himself, His
 		} = getPronouns(slave);
 		const {say} = getEnunciation(slave);
+		const doVaginal = (canDoVaginal(subSlave) && subSlave.vagina > 0);
+		const doAnal = (canDoAnal(subSlave) && subSlave.anus > 0);
+		const hands = hasBothArms(slave) ? "hands" : "hand";
 		const {He2, he2, His2, his2, him2, girl2} = getPronouns(subSlave).appendSuffix("2");
 		V.nextLink = "Next Week";
 		App.Events.drawEventArt(node, [slave, subSlave], "no clothing");
 
 		let t = [];
-
-		seX(subSlave, "oral", slave, "oral");
 		t.push(`Early in the morning, you run across`, contextualIntro(V.PC, subSlave, "DOM"), `using one of the penthouse milking machines. This isn't surprising;`);
 		if (subSlave.lactation === 0) {
 			t.push(`${he2}'s not lactating, but ${he2}'s a good semen producer and when ${he2} wakes up, ${he2}'s usually very ready to have one of the machines drain ${his2} balls for ${him2}.`);
 		} else {
-			if (subSlave.preg > subSlave.pregData.normalBirth/1.33) {
+			if (subSlave.preg > subSlave.pregData.normalBirth / 1.33) {
 				t.push(`it's late in ${his2} pregnancy and ${he2} wakes up every day with ${his2} ${subSlave.boobShape} breasts sore, painfully swollen with rich, nutritious milk.`);
-			} else if (subSlave.preg > subSlave.pregData.normalBirth/2) {
+			} else if (subSlave.preg > subSlave.pregData.normalBirth / 2) {
 				t.push(`${he2}'s pregnant and ${he2} wakes up every day with ${his2} ${subSlave.boobShape} breasts sore and swollen with rich, nutritious milk.`);
 			} else if (subSlave.lactation > 1) {
 				t.push(`the tiny little slow-release implant in each of ${his2} breasts is merciless. It keeps ${his2} mammary glands in a permanent state of barely-safe hyperproduction, and ${he2} wakes up every day with ${his2} terribly sore breasts spontaneously dribbling milk.`);
 			} else {
 				t.push(`${his2} lactation is natural, but it's still enough that ${he2} wakes up most days with full, sore breasts.`);
 			}
-			t.push(`But ${his2} udders aren't the only thing producing creamy liquid. The machine is applying generous prostate stimulation to drain ${his2} balls, too.`);
+			t.push(`But ${his2} udders aren't the only thing producing creamy liquid.`);
+			if ((doAnal || doVaginal) && subSlave.prostate > 0) {
+				t.push(`The machine is applying generous prostate stimulation to drain ${his2} balls, too.`);
+			}
 			subSlave.lactationDuration = 2;
 			subSlave.boobs -= subSlave.boobsMilk;
 			subSlave.boobsMilk = 0;
@@ -64,7 +72,15 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 		}
 		App.Events.addParagraph(node, t);
 		t = [];
-		t.push(`You can't see much of the slave under ${subSlave.slaveName}, since ${he}'s intimately intertwined with the machine and with ${subSlave.slaveName}, but based on ${his}`);
+		t.push(`You can't see much of the slave under ${subSlave.slaveName}, since ${he}'s intimately intertwined with the machine and`);
+		if (subSlave.weight > 95) {
+			t.push(`${subSlave.slaveName} is a hefty ${girl2},`);
+		} else if (subSlave.belly > 30000) {
+			t.push(`${subSlave.slaveName}'s middle isn't exactly small,`);
+		} else {
+			t.push(`with ${subSlave.slaveName},`);
+		}
+		t.push(`but based on ${his}`);
 		if (slave.dick > 0) {
 			if (canAchieveErection(slave) && !(slave.chastityPenis)) {
 				t.push(`stiff prick,`);
@@ -117,53 +133,130 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			}
 			t.push(`so ${slave.slaveName} has ${his} head buried between ${subSlave.slaveName}'s quivering thighs. ${He} isn't sucking ${subSlave.slaveName}'s dick so much as ${he}'s nursing at it, keeping it entirely within ${his} mouth and applying powerful suction.`);
 		} else if (subSlave.dick > 8) {
-			t.push(`has an inhumanly monstrous penis that the poor slave's cardiovascular system couldn't possibly bring erect. ${slave.slaveName} has gotten its huge soft head into ${his} mouth, and is sucking lustily.`);
+			t.push(`has an inhumanly monstrous penis that the poor slave's cardiovascular system couldn't possibly bring`);
+			if (slave.drugs === "priapism agents") {
+				t.push(`erect without outside aid; agents like the priapism agents ${he2} is currently on. ${slave.slaveName} has forced as much of its head into ${his} mouth as ${he} can, and is sucking lustily while trying not to choke.`);
+			} else {
+				t.push(`erect. ${slave.slaveName} has gotten its huge soft head into ${his} mouth, and is sucking lustily.`);
+			}
 		} else if (!canAchieveErection(subSlave)) {
 			t.push(`can't achieve an erection, but ${slave.slaveName} is sucking ${his2} dick anyway. ${He}'s got ${his} mouth full of it, and to go by the flexing of ${his} cheeks, is applying ${his} tongue with gusto.`);
 		} else {
 			t.push(`is rock hard, of course, and ${slave.slaveName} is giving ${him2} a lusty blowjob, stroking ${his2} head busily back and forth.`);
 		}
-		t.push(`The milking machine cum receptacle is designed to be warm, wet, and stimulating, but ${subSlave.slaveName} is getting much better attention. ${slave.slaveName} is omitting nothing that could help ${him} extract every last drop of cum. ${He}'s sucking, and the machine is applying direct stimulation to ${subSlave.slaveName}'s`);
-		if (subSlave.prostate) {
-			t.push(`prostate`);
-		} else {
-			t.push(`insides`);
-		}
-		t.push(`with`);
-		if (subSlave.anus > 3) {
-			t.push(`a big vibrating dildo that comfortably fills ${his2} experienced anus,`);
-		} else if (subSlave.anus > 2) {
-			t.push(`a vibrating dildo that ${his2} soft asshole can take comfortably,`);
-		} else {
-			t.push(`a little vibrator that fits comfortably up ${his2} tight ass,`);
-		}
-		if (subSlave.dick < 3) {
-			t.push(`giving ${slave.slaveName} limited options to further stimulate the poorly-endowed slave. ${He}'s using one hand to stroke the soft, precum-slick skin below ${subSlave.slaveName}'s anus.`);
-		} else if (subSlave.dick > 8) {
-			t.push(`so ${slave.slaveName} has one hand wrapped around the gigantic soft python of flesh between ${subSlave.slaveName}'s legs, and is squeezing it rhythmically from its base up to where its head enters ${his} wet lips.`);
-		} else if (!canAchieveErection(subSlave)) {
-			t.push(`so, since ${slave.slaveName} can't jack off a soft shaft, ${he}'s using one hand to stroke the soft, precum-slick skin below ${subSlave.slaveName}'s anus.`);
-		} else {
-			t.push(`so ${he} uses one hand to stroke the hard shaft outside ${his} wet lips, using ${his} saliva and ${subSlave.slaveName}'s precum to perform a messy handjob.`);
+		t.push(`The milking machine cum receptacle is designed to be warm, wet, and stimulating, but ${subSlave.slaveName} is getting much better attention. ${slave.slaveName} is omitting nothing that could help ${him} extract every last drop of cum.`);
+		if (doAnal || doVaginal) {
+			t.push(`${He}'s sucking, and the machine is applying direct stimulation to ${subSlave.slaveName}'s`);
+			if (subSlave.prostate) {
+				t.push(`prostate`);
+			} else {
+				t.push(`insides`);
+			}
+			t.push(`with`);
+			if (doAnal) {
+				actX(subSlave, "anal");
+				if (subSlave.anus > 3) {
+					t.push(`a big vibrating dildo that comfortably fills ${his2} experienced anus,`);
+				} else if (subSlave.anus > 2) {
+					t.push(`a vibrating dildo that ${his2} soft asshole can take comfortably,`);
+				} else {
+					t.push(`a little vibrator that fits comfortably up ${his2} tight ass,`);
+				}
+			} else {
+				actX(subSlave, "vaginal");
+				if (subSlave.vagina > 3) {
+					t.push(`a big vibrating dildo that comfortably fills ${his2} mature pussy,`);
+				} else if (subSlave.vagina > 2) {
+					t.push(`a vibrating dildo that ${his2} fits ${his2} pussy perfectly,`);
+				} else {
+					t.push(`a vibrating dildo that fills ${his2} tight little pussy,`);
+				}
+			}
+			if (hasAnyArms(slave)) {
+				if (subSlave.dick < 3) {
+					t.push(`giving ${slave.slaveName} limited options to further stimulate the poorly-endowed slave. ${He}'s using one hand to`);
+					if (doAnal && doVaginal) {
+						seX(subSlave, "vaginal", slave, "penetrative");
+						if (subSlave.vagina > 3) {
+							t.push(`fist ${his2} mature vagina.`);
+						} else if (subSlave.vagina > 2) {
+							t.push(`penetrate ${his2} pussy.`);
+						} else {
+							t.push(`finger ${his2} tight pussy.`);
+						}
+					} else {
+						t.push(`stroke the soft, precum-slick skin below ${subSlave.slaveName}'s anus.`);
+					}
+				} else if (subSlave.dick > 8) {
+					t.push(`so ${slave.slaveName} has one hand wrapped around the gigantic soft python of flesh between ${subSlave.slaveName}'s legs, and is squeezing it rhythmically from its base up to where its head enters ${his} wet lips.`);
+				} else if (!canAchieveErection(subSlave)) {
+					t.push(`so, since ${slave.slaveName} can't jack off a soft shaft, ${he}'s using one hand to`);
+					if (doAnal && doVaginal) {
+						seX(subSlave, "vaginal", slave, "penetrative");
+						if (subSlave.vagina > 3) {
+							t.push(`fist ${his2} mature vagina.`);
+						} else if (subSlave.vagina > 2) {
+							t.push(`penetrate ${his2} vagina.`);
+						} else {
+							t.push(`finger ${his2} tight vagina.`);
+						}
+					} else {
+						t.push(`stroke the soft, precum-slick skin below ${subSlave.slaveName}'s anus.`);
+					}
+				} else {
+					t.push(`so ${he} uses one hand to stroke the hard shaft outside ${his} wet lips, using ${his} saliva and ${subSlave.slaveName}'s precum to perform a messy handjob.`);
+				}
+			}
+		} else if (hasAnyArms(slave)) {
+			if (subSlave.dick < 3) {
+				t.push(`${He}'s giving ${slave.slaveName} limited options to further stimulate the poorly-endowed slave. ${He}'s using one hand to stroke the soft, precum-slick skin below ${subSlave.slaveName}'s anus.`);
+			} else if (subSlave.dick > 8) {
+				t.push(`${He} has has one hand wrapped around the gigantic soft python of flesh between ${subSlave.slaveName}'s legs, and is squeezing it rhythmically from its base up to where its head enters ${his} wet lips.`);
+			} else if (!canAchieveErection(subSlave)) {
+				t.push(`Since ${slave.slaveName} can't jack off a soft shaft, ${he}'s using one hand to stroke the soft, precum-slick skin below ${subSlave.slaveName}'s anus.`);
+			} else {
+				t.push(`{He}'s using one hand to stroke the hard shaft outside ${his} wet lips, using ${his} saliva and ${subSlave.slaveName}'s precum to perform a messy handjob.`);
+			}
 		}
-		t.push(`${His} other hand is`);
-		if (subSlave.scrotum === 0) {
-			t.push(`massaging the place where ${subSlave.slaveName}'s scrotum used to be.`);
-		} else if (subSlave.scrotum < slave.balls) {
-			t.push(`gently massaging ${subSlave.slaveName}'s overfilled scrotum, which ${his2} balls fill to the point of discomfort.`);
-		} else if (subSlave.scrotum > slave.balls+1) {
-			t.push(`playing with ${subSlave.slaveName}'s loose scrotum.`);
-		} else {
-			t.push(`massaging ${subSlave.slaveName}'s balls.`);
+		if (hasBothArms(slave)) {
+			t.push(`${His} other hand is`);
+			if (subSlave.scrotum === 0) {
+				if (subSlave.balls > 0) {
+					if (subSlave.belly > 15000) {
+						t.push(`pushing against ${his2} belly in an effort to claim a little more room beneath it.`);
+					} else if (subSlave.belly > 1500 || subSlave.weight > 95) {
+						t.push(`supporting ${his2} belly to keep it out of the way.`);
+					} else {
+						t.push(`massaging ${subSlave.slaveName}'s lower belly where ${hsi2} balls now reside.`);
+					}
+				} else {
+					t.push(`massaging the place where ${subSlave.slaveName}'s scrotum used to be.`);
+				}
+			} else if (subSlave.scrotum < subSlave.balls) {
+				t.push(`gently massaging ${subSlave.slaveName}'s overfilled scrotum, which ${his2} balls fill to the point of discomfort.`);
+			} else if (subSlave.scrotum > subSlave.balls+1) {
+				t.push(`playing with ${subSlave.slaveName}'s loose scrotum.`);
+			} else {
+				t.push(`massaging ${subSlave.slaveName}'s balls.`);
+			}
 		}
 		App.Events.addParagraph(node, t);
 		t = [];
-		t.push(`${subSlave.slaveName} is getting ${his2} dick `);
-		if (subSlave.lactation === 0) {
-			t.push(`sucked and ${his2} ass fucked.`);
-		} else {
-			t.push(`sucked, ${his2} ass fucked, and ${his2} boobs milked.`);
+		t.push(`${subSlave.slaveName} is getting`);
+		let orgasmic = [];
+		orgasmic.push(`${his2} dick sucked`);
+		if (doAnal) {
+			orgasmic.push(`${his2} ass fucked`);
+			if (doVaginal) {
+				orgasmic.push(`${his2} pussy teased`);
+			}
+		} else if (doVaginal) {
+			orgasmic.push(`${his2} pussy fucked`);
 		}
+		if (subSlave.lactation > 0) {
+			orgasmic.push(`${his2} boobs milked`);
+		}
+		t.push(toSentence(orgasmic) + ".");
 		t.push(`${He2}'s so overstimulated that ${he2}'s shaking; a tremendous orgasm is building within ${him2}. ${He2}`);
 		if (subSlave.voice !== 0) {
 			t.push(`groans,`);
@@ -176,18 +269,19 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 		} else {
 			t.push(`can feel,`);
 		}
-		t.push(`and ${subSlave.slaveName} tenses, which ${slave.slaveName} feels in ${his} mouth and hands. Smiling around the penis in ${his} mouth, pleased by the approach of a gush of delectable semen, ${slave.slaveName} hums encouragement into ${subSlave.slaveName}'s`);
+		t.push(`and ${subSlave.slaveName} tenses, which ${slave.slaveName} feels in ${his} mouth${hasAnyArms(slave) ? ` and ${hands}` : ""}. Smiling around the penis in ${his} mouth, pleased by the approach of a gush of delectable semen, ${slave.slaveName} hums encouragement into ${subSlave.slaveName}'s`);
 		if (canAchieveErection(subSlave)) {
 			t.push(`rock-hard`);
 		} else {
 			t.push(`soft`);
 		}
-		if (subSlave.scrotum) {
+		if (subSlave.scrotum && subSlave.balls) {
 			t.push(`dickhead and visibly tickles ${subSlave.slaveName}'s balls with ${his} naughty pink tongue`);
 		} else {
 			t.push(`dickhead.`);
 		}
 
+		seX(slave, "oral", subSlave, "penetrative");
 
 		App.Events.addParagraph(node, t);
 		App.Events.addResponses(node, [
@@ -204,15 +298,15 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			const frag = document.createDocumentFragment();
 			t = [];
 
-			seX(subSlave, "anal", V.PC, "penetrative");
-			if (canImpreg(subSlave, V.PC)) {
-				t.push(knockMeUp(subSlave, 5, 1, -1, true));
-			}
 			t.push(`You command the machine to cease`);
-			if (subSlave.anus < 3 || canDoVaginal(subSlave)) {
-				t.push(`stimulating and leave ${subSlave.slaveName}'s ass alone for now. ${He2}`);
+			if (doAnal) {
+				if (subSlave.anus < 3 || doVaginal) {
+					t.push(`stimulating and leave ${subSlave.slaveName}'s ass alone for now. ${He2}`);
+				} else {
+					t.push(`stimulating, but leave its dildo where it is, for now. ${subSlave.slaveName}`);
+				}
 			} else {
-				t.push(`stimulating, but leave its dildo where it is, for now. ${subSlave.slaveName}`);
+				t.push(`stimulating and retract the dildo. ${subSlave.slaveName}`);
 			}
 			if (subSlave.voice !== 0) {
 				t.push(`moans with frustration,`);
@@ -229,7 +323,7 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 				}
 				t.push(`hands reach around either side of ${subSlave.slaveName}'s torso and seize hold of ${his2}`);
 			} else {
-				t.push(`hears a pair of hands seize hold of ${subSlave.slaveName}'s`);
+				t.push(`hears a pair of hands slap against the flesh of ${subSlave.slaveName}'s`);
 			}
 			if (subSlave.lactation === 0) {
 				t.push(`milkless breasts.`);
@@ -253,7 +347,7 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			t = [];
 
 			t.push(`You order ${him} to stay where ${he} is, and go back to sucking dick.`, Spoken(slave, `"Yes, ${getWrittenTitle(slave)},"`), `${he} giggles, and then shuts up as ${his} mouth is occupied once more. ${subSlave.slaveName}, who's been obediently still under you as ${he2} waits for your pleasure, stiffens as ${he2} feels ${his2} dickhead surrounded by warm wetness once more. ${He2}'s got more coming.`);
-			if (canDoVaginal(subSlave)) {
+			if (doVaginal && doAnal) {
 				t.push(`${He2}'s got a cock and two fuckholes, so you instruct the machine to go back to stimulating, and adroitly lift ${his2} hips a little so that when the machine reinserts its stimulator, it penetrates ${his2} vagina and fucks that instead. Then you insert your`);
 				if (V.PC.dick) {
 					t.push(`cock`);
@@ -266,7 +360,12 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 				} else {
 					t.push("pounding.");
 				}
-			} else if (subSlave.anus > 2) {
+				seX(subSlave, "anal", V.PC, "penetrative");
+				actX(subSlave, "vaginal");
+				if (canImpreg(slave, V.PC)) {
+					t.push(knockMeUp(slave, 5, 1, -1, true));
+				}
+			} else if (subSlave.anus > 2 && doAnal) {
 				t.push(`${His2} ass is so relaxed that your`);
 				if (V.PC.dick) {
 					t.push(`cock`);
@@ -279,6 +378,10 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 				} else {
 					t.push(`ass.`);
 				}
+				seX(subSlave, "anal", V.PC, "penetrative");
+				if (canImpreg(slave, V.PC)) {
+					t.push(knockMeUp(slave, 5, 1, -1, true));
+				}
 			} else {
 				t.push(`The stimulator is effective enough, but it can't match `);
 				if (V.PC.dick) {
@@ -286,7 +389,18 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 				} else {
 					t.push(`a strap-on wielded by a consummate master of the art,`);
 				}
-				t.push(`which is of course what ${subSlave.slaveName} has up ${his2} ass in short order.`);
+				t.push(`which is of course what ${subSlave.slaveName} has ${doAnal ? `up ${his2} ass` : `hilted in ${him2}`} in short order.`);
+				if (doAnal) {
+					seX(subSlave, "anal", V.PC, "penetrative");
+					if (canImpreg(slave, V.PC)) {
+						t.push(knockMeUp(slave, 5, 1, -1, true));
+					}
+				} else {
+					seX(subSlave, "vaginal", V.PC, "penetrative");
+					if (canImpreg(slave, V.PC)) {
+						t.push(knockMeUp(slave, 5, 0, -1, true));
+					}
+				}
 			}
 			t.push(`${He2} was on the edge of orgasm when you stepped in, and this is just too much. ${He2} climaxes with indecent speed, involuntarily humping against the machine, shooting rope after rope of ${his2} cum into ${slave.slaveName}'s`);
 			if (V.PC.dick) {
@@ -298,29 +412,44 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			App.Events.addParagraph(frag, t);
 			t = [];
 
-			t.push(`As ${subSlave.slaveName} stumbles off, looking <span class="hotpink">rather submissive,</span> ${slave.slaveName} scoots out from underneath the machine.`);
-			t.push(Spoken(slave, `"${getWrittenTitle(slave)},"`), `${he} ${say}s <span class="hotpink">devotedly,</span>`, Spoken(slave, `"that ${canTaste(slave) ? `tasted` : "was"} incredible. It ${canTaste(slave) ? `tastes` : "feels"} so much better when you fuck it out of ${him2}!"`));
-			t.push(`${He} rubs ${his}`);
-			if (slave.belly >= 5000) {
-				t.push(`rounded`);
+			t.push(`As ${subSlave.slaveName} stumbles off, looking <span class="devotion inc">rather submissive,</span> ${slave.slaveName} scoots out from underneath the machine.`);
+			t.push(Spoken(slave, `"${getWrittenTitle(slave)},"`), `${he} ${say}s <span class="devotion inc">devotedly,</span>`, Spoken(slave, `"that ${canTaste(slave) ? `tasted` : "was"} incredible. It ${canTaste(slave) ? `tastes` : "feels"} so much better when you fuck it out of ${him2}!"`));
+			t.push(`${He}`);
+			if (hasAnyArms(slave)) {
+				t.push(`rubs ${his}`);
+				if (slave.belly >= 5000) {
+					t.push(`rounded`);
+				}
+			} else {
+				t.push(`puffs out ${his}`);
+				if (slave.belly >= 5000) {
+					t.push(`already rounded`);
+				}
 			}
 			t.push(`tummy with exaggerated satisfaction, and then realizes that you weren't fucking for nearly long enough to have gotten off yourself.`);
-			if (slave.lactation || slave.balls) {
+			if ((slave.lactation || slave.balls) && ((canDoVaginal(slave) && slave.vagina > 0) || (canDoAnal(slave) && slave.anus > 0))) {
 				t.push(`"I need to be milked now, too," ${he} ${say}s flirtily, and turns to mount the machine in turn.`, Spoken(slave, `"Please, please do me too!"`), `The machine hasn't had a turn first, this time, so ${he}'s much`);
 				if (V.PC.dick) {
 					t.push(`tighter, and when ${he}'s done being milked, ${he}'s got a load of your cum inside ${him}.`);
 				} else {
 					t.push("tighter.");
 				}
-				seX(subSlave, "anal", V.PC, "penetrative");
-				if (canImpreg(slave, V.PC)) {
-					t.push(knockMeUp(slave, 5, 1, -1, true));
-				}
 				if (slave.lactation > 0) {
 					slave.lactationDuration = 2;
 					slave.boobs -= slave.boobsMilk;
 					slave.boobsMilk = 0;
 				}
+				if (canDoAnal(slave) && slave.anus > 0) {
+					seX(subSlave, "anal", V.PC, "penetrative");
+					if (canImpreg(subSlave, V.PC)) {
+						t.push(knockMeUp(subSlave, 5, 1, -1, true));
+					}
+				} else if (canDoVaginal(slave) && slave.vagina > 0) {
+					seX(subSlave, "vaginal", V.PC, "penetrative");
+					if (canImpreg(subSlave, V.PC)) {
+						t.push(knockMeUp(subSlave, 5, 0, -1, true));
+					}
+				}
 			} else {
 				t.push(Spoken(slave, `"Please, please let me drink yours, too,"`), `${he} moans, and gets down on ${his} knees, opening ${his} mouth and sticking out ${his} tongue, begging for`);
 				if (V.PC.dick) {
@@ -333,6 +462,7 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			}
 			slave.devotion += 3;
 			subSlave.devotion += 3;
+
 			App.Events.addParagraph(frag, t);
 
 			return frag;
@@ -394,15 +524,18 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			} else {
 				t.push(`milk is really flowing,`);
 			}
-			t.push(`and a thin stream of cream squirts out of ${him2}. It lands on ${slave.slaveName}'s face below, surprising ${him}. ${He} splutters comically, but obeys eagerly when you squeeze ${subSlave.slaveName}'s freed boob and order ${slave.slaveName} to start drinking. After all, you point out, a balanced diet is important. ${slave.slaveName} <span class="mediumaquamarine">giggles complaisantly</span> and reaches for the proffered tit. ${subSlave.slaveName} is still basking in the afterglow of ${his2} orgasm and shudders silently with overstimulation as ${he2} feels ${slave.slaveName}'s lips`);
+			t.push(`and a thin stream of cream squirts out of ${him2}. It lands on ${slave.slaveName}'s face below, surprising ${him}. ${He} splutters comically, but obeys eagerly when you squeeze ${subSlave.slaveName}'s freed boob and order ${slave.slaveName} to start drinking. After all, you point out, a balanced diet is important. ${slave.slaveName} <span class="trust inc">giggles complaisantly</span> and reaches for the proffered tit. ${subSlave.slaveName} is still basking in the afterglow of ${his2} orgasm and shudders silently with overstimulation as ${he2} feels ${slave.slaveName}'s lips`);
 			if (subSlave.nipples !== "fuckable") {
 				t.push(`latch around`);
 			} else {
 				t.push(`encircle`);
 			}
 			t.push(`${his2} ${subSlave.nipples} nipple.`);
-			seX(subSlave, "oral", slave, "oral");
-			seX(subSlave, "mammary", V.PC, "penetrative");
+			if (V.PC.dick) {
+				seX(subSlave, "oral", V.PC, "penetrative");
+			} else {
+				seX(subSlave, "oral", V.PC, "vaginal");
+			}
 			slave.trust += 5;
 
 			App.Events.addParagraph(frag, t);
@@ -424,6 +557,8 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 					t.push(`belly`);
 				}
 				t.push(`is.`);
+			} else if (slave.weight > 95) {
+				t.push(`a process made much more comical as ${his} plush body wobbles and flops against everything in its way.`);
 			} else if (slave.dick > 4) {
 				t.push(`${his} own`);
 				if (canAchieveErection(slave)) {
@@ -437,7 +572,11 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			} else {
 				t.push(`${his} bare buttocks smacking painfully against the floor in ${his} haste.`);
 			}
-			t.push(`${He} starts to scramble up to a standing position, but ${he} only gets halfway before ${he} notices that there's`);
+			if (canStand(slave)) {
+				t.push(`${He} starts to scramble up to a standing position, but ${he} only gets halfway before ${he} notices that there's`);
+			} else {
+				t.push(`${He} starts push ${himself} upright, but quickly finds that there's`);
+			}
 			if (canAchieveErection(subSlave)) {
 				t.push(`another`);
 			} else {
@@ -451,12 +590,13 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 			}
 			t.push(`at ${his} face. Yours.`);
 			App.Events.addParagraph(frag, t);
+
 			t = [];
 			t.push(`${slave.slaveName}`);
 			if (slave.trust > 20) {
-				t.push(`wasn't really worried that ${he} was in trouble; your tone was not angry and ${he} wasn't breaking the rules. Even so, ${he} giggles`);
+				t.push(`wasn't really worried that ${he} was in trouble; ${canHear(slave) ? "your tone was not" : "you don't seem"} angry and ${he} wasn't breaking the rules. Even so, ${he} giggles`);
 			} else {
-				t.push(`was worried that ${he} was in trouble; even through your tone wasn't angry, and even though ${he} wasn't breaking the rules, ${he}'s afraid of you. So ${he} giggles with relief`);
+				t.push(`was worried that ${he} was in trouble; even through ${canHear(slave) ? "your tone wasn't not" : "you don't seem"} angry, and even though ${he} wasn't breaking the rules, ${he}'s afraid of you. So ${he} giggles with relief`);
 			}
 			t.push(`when ${he}`);
 			if (canSee(slave)) {
@@ -478,28 +618,52 @@ App.Events.RETSCockmilkInterception = class RETSCockmilkInterception extends App
 				} else {
 					t.push(`centimeters`);
 				}
-				t.push(`in front of ${his} face.`, Spoken(slave, `"I'm so happy, ${getWrittenTitle(slave)},"`), `${he} purrs.`,  Spoken(slave, `"You have the best cum. ${V.PC.balls >= 10 ? "I'll never go hungry with you either." : "."}"`), `${He}'s still right up against ${subSlave.slaveName}, and ${he} reaches back to pat ${subSlave.slaveName}'s butt reassuringly.`);
+				t.push(`in front of ${his} face.`, Spoken(slave, `"I'm so happy, ${getWrittenTitle(slave)},"`), `${he} purrs.`,  Spoken(slave, `"You have the best cum. ${V.PC.balls >= 10 ? "I'll never go hungry with you either." : "."}"`), `${He}'s still right up against ${subSlave.slaveName},`);
+				if (hasAnyArms(slave)) {
+					t.push(`and ${he} reaches back to pat ${subSlave.slaveName}'s butt reassuringly.`);
+				} else {
+					t.push(`so ${he} leans back and nuzzles ${subSlave.slaveName}'s butt reassuringly.`);
+				}
 				t.push(Spoken(slave, `"Yours is nice, but there's only one ${getWrittenTitle(slave)}."`), `Then ${he} starts sucking your dick.`);
 			} else {
 				t.push(Spoken(slave, `"Thank you, ${getWrittenTitle(slave)},"`), `${he} ${say}s dutifully.`, Spoken(slave, `"Your, um, your cum is the best.${V.PC.balls >= 10 ? " I'll never go hungry with you either." : ""}"`));
 				t.push(`Momentarily unsure of ${himself}, ${he} blushes, and decides to take refuge in dicksucking.`);
 			}
 			if (slave.skill.oral > 60) {
-				t.push(`${He}'s a well-trained cocksucker, and as the suction and ${his} active tongue go to work, ${he} reaches up and`);
-				if (V.PC.vagina !== -1) {
-					t.push(`begins to lavish attention on your pussy with both hands. ${He} fingers your labia lovingly before starting to dip ${his} fingers inside you in time with ${his} oral strokes at your shaft.`);
+				t.push(`${He}'s a well-trained cocksucker, and as the suction and ${his} active tongue go to work,`);
+				if (hasAnyArms(slave)) {
+					t.push(`${he} reaches up and`);
+					if (V.PC.vagina !== -1) {
+						t.push(`begins to lavish attention on your pussy with both hands. ${He} fingers your labia lovingly before starting to dip ${his} fingers inside you in time with ${his} oral strokes at your shaft.`);
+					} else {
+						t.push(`cups your`);
+						if (V.PC.balls >= 30) {
+							t.push(`monstrous balls`);
+						} else if (V.PC.balls >= 14) {
+							t.push(`hand-filling`);
+						} else if (V.PC.balls >= 9) {
+							t.push(`huge`);
+						} else if (V.PC.balls >= 5) {
+							t.push(`big`);
+						}
+						t.push(`balls lovingly. A testicular massage during a blowjob might not actually increase ejaculation volume, but the care ${he} shows suggests that the hungry slut might believe it does.`);
+					}
 				} else {
-					t.push(`cups your`);
-					if (V.PC.balls >= 30) {
-						t.push(`monstrous balls`);
-					} else if (V.PC.balls >= 14) {
-						t.push(`hand-filling`);
-					} else if (V.PC.balls >= 9) {
-						t.push(`huge`);
-					} else if (V.PC.balls >= 5) {
-						t.push(`big`);
+					t.push(`${he} lavishes attention as best ${he} can to your`);
+					if (V.PC.vagina !== -1) {
+						t.push(`your pussy without any hands.`);
+					} else {
+						if (V.PC.balls >= 30) {
+							t.push(`monstrous balls`);
+						} else if (V.PC.balls >= 14) {
+							t.push(`hand-filling`);
+						} else if (V.PC.balls >= 9) {
+							t.push(`huge`);
+						} else if (V.PC.balls >= 5) {
+							t.push(`big`);
+						}
+						t.push(`balls without any hands. Lovingly teasing your testicles during a blowjob might not actually increase ejaculation volume, but the care ${he} shows suggests that the hungry slut might believe it does.`);
 					}
-					t.push(`balls lovingly. A testicular massage during a blowjob might not actually increase ejaculation volume, but the care ${he} shows suggests that the hungry slut might believe it does.`);
 				}
 			} else {
 				t.push(`${He}'s not an outstanding oral slave, so after ${he}'s working away reasonably well, you take ${his} head in both hands and fuck ${his} face. Not cruelly, but with comprehensive dominance. ${He} can breathe, but ${he} has to concentrate to do so, letting you rape ${his} throat like a good little bitch.`);