diff --git a/src/interaction/useSlave/useSlave.js b/src/interaction/useSlave/useSlave.js
index 116c86e6f40eedc74ef7412323f19e9c340e2041..e9ab9ef2b5f548563bae9e8a02a0216ad642fdd0 100644
--- a/src/interaction/useSlave/useSlave.js
+++ b/src/interaction/useSlave/useSlave.js
@@ -96,7 +96,7 @@ App.UI.SlaveInteract.useSlave = function(slave) {
 	// Generator Functions
 	function options() {
 		const optionsDiv = document.createElement("div");
-		const options = App.UI.SlaveInteract.useSlave.options(PC, slave, playerState, slaveState);
+		const options = App.UI.SlaveInteract.useSlave.options(PC, tempSlave, slave, playerState, slaveState);
 
 		const contextual = generateOptions(options.contextual, optionsDiv);
 		const face = generateOptions(options.face, optionsDiv);
diff --git a/src/interaction/useSlave/useSlaveOptions.js b/src/interaction/useSlave/useSlaveOptions.js
index 005a7cc37a92e0a212f2de9a015b8bf3b02cc33a..d97d2cb2683e49373bf2518a8729e7a375e6edc2 100644
--- a/src/interaction/useSlave/useSlaveOptions.js
+++ b/src/interaction/useSlave/useSlaveOptions.js
@@ -1,13 +1,14 @@
 /**
  * @param {FC.PlayerState} player
+ * @param {FC.SlaveState} clone
  * @param {FC.SlaveState} slave
  * @param {App.UI.SlaveInteract.CharacterState} playerState
  * @param {App.UI.SlaveInteract.CharacterState} slaveState
  */
-App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, slaveState) {
-	const refreshArt = () => App.Events.refreshEventArt(slave);
+App.UI.SlaveInteract.useSlave.options = function(player, clone, slave, playerState, slaveState) {
+	const refreshArt = () => App.Events.refreshEventArt(clone);
 
-	const {He, he, him, his, hers} = getPronouns(slave);
+	const {He, he, him, his, hers} = getPronouns(clone);
 
 	/** @enum {string} */
 	const Fetish = {
@@ -61,21 +62,21 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 	const contextual = [
 		{
 			link: `Keep kissing ${him}`,
-			desc: contextualText.keepKissing(slave),
+			desc: contextualText.keepKissing(clone),
 			tooltip: `Because why stop?`,
 			prereq: () =>
-				slave.mouthAccessory === none &&
+				clone.mouthAccessory === none &&
 				playerState.action === Action.KISSING &&
 				slaveState.action === Action.KISSING,
 			effect: () => {
 				playerState.lust++;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.keepKissing(slave),
+			reaction: this.reactionText.keepKissing(clone),
 		},
 		{
 			link: `Keep fucking ${him}`,
-			desc: contextualText.keepFucking(slave),
+			desc: contextualText.keepFucking(clone),
 			tooltip: `It feels too good to stop now.`,
 			prereq: () =>
 				playerState.action === Action.PENETRATING &&
@@ -85,11 +86,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.lust += 2;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.keepFucking(slave),
+			reaction: this.reactionText.keepFucking(clone),
 		},
 		{
 			link: `Hold ${him} down`,
-			desc: contextualText.holdDown(slave),
+			desc: contextualText.holdDown(clone),
 			tooltip: `${He}'s not going anywhere if you can help it.`,
 			prereq: () =>
 				playerState.action === Action.PENETRATING &&
@@ -99,11 +100,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.lust += 2;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.holdDown(slave),
+			reaction: this.reactionText.holdDown(clone),
 		},
 		{
 			link: `Pull out of ${him}`,
-			desc: contextualText.stopFucking(slave),
+			desc: contextualText.stopFucking(clone),
 			tooltip: `You can always put it back in. ${He} can't stop you.`,
 			prereq: () =>
 				playerState.action === Action.PENETRATING &&
@@ -113,11 +114,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = null;
 				slaveState.action = null;
 			},
-			reaction: this.reactionText.stopFucking(slave),
+			reaction: this.reactionText.stopFucking(clone),
 		},
 		{
 			link: `Let ${him} keep pleasuring you`,
-			desc: contextualText.continueOral(slave),
+			desc: contextualText.continueOral(clone),
 			tooltip: `Lay back and enjoy ${his} service.`,
 			prereq: () =>
 				playerState.action === Action.RECEIVING &&
@@ -126,11 +127,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.lust += 2;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.continueOral(slave),
+			reaction: this.reactionText.continueOral(clone),
 		},
 		{
 			link: `Hold ${his} head down`,
-			desc: contextualText.holdHeadDown(slave),
+			desc: contextualText.holdHeadDown(clone),
 			tooltip: `${He} can breathe when you've cum.`,
 			prereq: () =>
 				playerState.action === Action.RECEIVING &&
@@ -139,22 +140,22 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.lust += 2;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.holdHeadDown(slave),
+			reaction: this.reactionText.holdHeadDown(clone),
 		},
 		{
 			link: `Order ${him} to stop pleasuring you`,
-			desc: contextualText.stopOral(slave),
+			desc: contextualText.stopOral(clone),
 			tooltip: `Time for ${him} to please you another way.`,
 			prereq: () => slaveState.action === Action.ORAL,
 			effect: () => {
 				playerState.action = null;
 				slaveState.action = null;
 			},
-			reaction: this.reactionText.stopOral(slave),
+			reaction: this.reactionText.stopOral(clone),
 		},
 		{
 			link: `Cum on ${his} face`,
-			desc: contextualText.cumOnFace(slave),
+			desc: contextualText.cumOnFace(clone),
 			tooltip: `Let it all out on ${his} face.`,
 			prereq: () => playerState.lust - playerState.previousOrgasm >= 25 &&
 				slaveState.action === Action.ORAL,
@@ -165,11 +166,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = null;
 				slaveState.action = null;
 			},
-			reaction: this.reactionText.cumOnFace(slave),
+			reaction: this.reactionText.cumOnFace(clone),
 		},
 		{
 			link: `${V.PC.dick !== 0 ? `Cum in ${his} mouth` : `Have ${him} finish you with ${his} mouth`}`,
-			desc: contextualText.cumInMouth(slave),
+			desc: contextualText.cumInMouth(clone),
 			tooltip: `${V.PC.dick !== 0 ? `Shoot your cum down ${his} throat.` : `${He} won't dare stop until you're satisfied.`}`,
 			prereq: () => playerState.lust - playerState.previousOrgasm >= 25 &&
 				slaveState.action === Action.ORAL,
@@ -180,11 +181,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = null;
 				slaveState.action = null;
 			},
-			reaction: this.reactionText.cumInMouth(slave),
+			reaction: this.reactionText.cumInMouth(clone),
 		},
 		{
 			link: `Cum in ${his} pussy`,
-			desc: contextualText.cumInPussy(slave),
+			desc: contextualText.cumInPussy(clone),
 			tooltip: `Cum deep inside ${him}. Fill ${him} up. You know it'll feel amazing.`,
 			prereq: () => 
 				playerState.lust - playerState.previousOrgasm >= 25 &&
@@ -202,11 +203,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = null;
 				slaveState.action = null;
 			},
-			reaction: this.reactionText.cumInPussy(slave),
+			reaction: this.reactionText.cumInPussy(clone),
 		},
 		{
 			link: `Cum in ${his} ass`,
-			desc: contextualText.cumInAnus(slave),
+			desc: contextualText.cumInAnus(clone),
 			tooltip: `Make a mess of ${his} ass. Show ${him} ${his} place.`,
 			prereq: () => 
 				playerState.lust - playerState.previousOrgasm >= 25 &&
@@ -224,11 +225,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = null;
 				slaveState.action = null;
 			},
-			reaction: this.reactionText.cumInAnus(slave),
+			reaction: this.reactionText.cumInAnus(clone),
 		},
 		{
 			link: `Make ${him} cum`,
-			desc: contextualText.makeSlaveCum(slave),
+			desc: contextualText.makeSlaveCum(clone),
 			tooltip: `${He}'s been a good slave, and deserves a reward.`,
 			prereq: () => 
 				slaveState.lust - slaveState.previousOrgasm >= 25 &&
@@ -243,19 +244,19 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = null;
 				slaveState.action = null;
 			},
-			reaction: this.reactionText.makeSlaveCum(slave),
+			reaction: this.reactionText.makeSlaveCum(clone),
 		},
 	];
 
-	let clothes = slave.clothes;
+	let clothes = clone.clothes;
 	const faceText = App.UI.SlaveInteract.useSlave.faceText;
 	/** @type {FC.UseSlave.Option[]} */
 	const face = [
 		{
 			link: `Kiss ${him}`,
-			desc: faceText.regularKiss(slave),
+			desc: faceText.regularKiss(clone),
 			tooltip: `Press your lips to ${hers} and kiss ${him}.`,
-			prereq: () => slave.mouthAccessory === none,
+			prereq: () => clone.mouthAccessory === none,
 			effect: () => {
 				playerState.lust++;
 				slaveState.lust++;
@@ -263,13 +264,13 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = Action.KISSING;
 				slaveState.action = Action.KISSING;
 			},
-			reaction: this.reactionText.regularKiss(slave),
+			reaction: this.reactionText.regularKiss(clone),
 		},
 		{
 			link: `Kiss ${him} passionately`,
-			desc: faceText.passionateKiss(slave),
+			desc: faceText.passionateKiss(clone),
 			tooltip: `Press ${his} body to yours and kiss ${him}.`,
-			prereq: () => slave.mouthAccessory === none,
+			prereq: () => clone.mouthAccessory === none,
 			effect: () => {
 				playerState.lust++;
 				slaveState.lust++;
@@ -277,13 +278,13 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = Action.KISSING;
 				slaveState.action = Action.KISSING;
 			},
-			reaction: this.reactionText.passionateKiss(slave),
+			reaction: this.reactionText.passionateKiss(clone),
 		},
 		{
 			link: `Kiss ${him} intimately`,
-			desc: faceText.intimateKiss(slave),
+			desc: faceText.intimateKiss(clone),
 			tooltip: `Share a romantic kiss.`,
-			prereq: () => slave.mouthAccessory === none,
+			prereq: () => clone.mouthAccessory === none,
 			effect: () => {
 				playerState.lust++;
 				slaveState.lust++;
@@ -291,14 +292,14 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = Action.KISSING;
 				slaveState.action = Action.KISSING;
 			},
-			reaction: this.reactionText.intimateKiss(slave),
+			reaction: this.reactionText.intimateKiss(clone),
 		},
 		{
 			link: `Have ${him} go down on you`,
-			desc: faceText.slaveGivesOral(slave),
+			desc: faceText.slaveGivesOral(clone),
 			tooltip: `Have ${him} give you oral.`,
 			prereq: () => 
-				(slave.mouthAccessory === none || slave.mouthAccessory === "ring gag") &&
+				(clone.mouthAccessory === none || clone.mouthAccessory === "ring gag") &&
 				playerState.bottomFree &&
 				!playerState.clothing.underwear &&
 				!playerState.isKneeling &&
@@ -314,11 +315,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				recordSex(slaveState.action);
 			},
-			reaction: this.reactionText.slaveGivesOral(slave),
+			reaction: this.reactionText.slaveGivesOral(clone),
 		},
 		{
 			link: `Go down on ${him}`,
-			desc: faceText.playerGivesOral(slave),
+			desc: faceText.playerGivesOral(clone),
 			tooltip: `Give ${him} oral.`,
 			prereq: () => 
 				slaveState.clothing.bottom.isOff &&
@@ -338,7 +339,7 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				recordSex(playerState.action);
 			},
-			reaction: this.reactionText.playerGivesOral(slave),
+			reaction: this.reactionText.playerGivesOral(clone),
 		},
 	];
 
@@ -347,62 +348,62 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 	const chest = [
 		{
 			link: `Grope ${his} chest`,
-			desc: chestText.grope(slave),
+			desc: chestText.grope(clone),
 			tooltip: slave.boobs >= 300 ? `Play with ${his} tits a bit.` : `Stroke ${his} chest a bit.`,
 			prereq: () => slaveState.topFree,
 			effect: () => {
 				playerState.lust += 2;
-				slaveState.lust += slave.fetish === Fetish.BOOBS ? 7 : 4;
+				slaveState.lust += clone.fetish === Fetish.BOOBS ? 7 : 4;
 
 				playerState.action = Action.TOUCHING;
 				slaveState.action = Action.RECEIVING;
 			},
-			reaction: this.reactionText.grope(slave),
+			reaction: this.reactionText.grope(clone),
 		},
 		{
-			link: `Lick ${his} ${slave.boobs >= 300 ? `tits` : `chest`}`,
-			desc: chestText.lick(slave),
-			tooltip: slave.boobs >= 300 ? `Give ${his} boobs a taste.` : `Run your tongue along ${his} chest.`,
+			link: `Lick ${his} ${clone.boobs >= 300 ? `tits` : `chest`}`,
+			desc: chestText.lick(clone),
+			tooltip: clone.boobs >= 300 ? `Give ${his} boobs a taste.` : `Run your tongue along ${his} chest.`,
 			prereq: () => slaveState.topFree &&
 				!slaveState.clothing.bra,
 			effect: () => {
 				playerState.lust += 2;
-				slaveState.lust += slave.fetish === Fetish.BOOBS ? 8 : 5;
+				slaveState.lust += clone.fetish === Fetish.BOOBS ? 8 : 5;
 
 				playerState.action = Action.KISSING;
 				slaveState.action = Action.RECEIVING;
 			},
-			reaction: this.reactionText.lick(slave),
+			reaction: this.reactionText.lick(clone),
 		},
 		{
 			link: `Suck on ${his} nipples`,
-			desc: chestText.suck(slave),
+			desc: chestText.suck(clone),
 			tooltip: `See if you can't get any milk.`,
 			prereq: () => slaveState.topFree &&
 				!slaveState.clothing.bra,
 			effect: () => {
 				playerState.lust += 2;
-				slaveState.lust += slave.fetish === Fetish.BOOBS ? 9 : 5;
+				slaveState.lust += clone.fetish === Fetish.BOOBS ? 9 : 5;
 
 				playerState.action = Action.KISSING;
 				slaveState.action = Action.RECEIVING;
 			},
-			reaction: this.reactionText.suck(slave),
+			reaction: this.reactionText.suck(clone),
 		},
 		{
 			link: `Bite ${his} nipples`,
-			desc: chestText.bite(slave),
+			desc: chestText.bite(clone),
 			tooltip: `Give them a little nibble.`,
 			prereq: () => slaveState.topFree &&
 				!slaveState.clothing.bra,
 			effect: () => {
 				playerState.lust += 2;
-				slaveState.lust += slave.fetish === Fetish.BOOBS ? 8 : 5;
+				slaveState.lust += clone.fetish === Fetish.BOOBS ? 8 : 5;
 
 				playerState.action = Action.KISSING;
 				slaveState.action = Action.RECEIVING;
 			},
-			reaction: this.reactionText.bite(slave),
+			reaction: this.reactionText.bite(clone),
 		},
 	];
 
@@ -411,11 +412,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 	const crotch = [
 		{
 			link: `Grope ${his} pussy`,
-			desc: crotchText.gropePussy(slave),
+			desc: crotchText.gropePussy(clone),
 			tooltip: `Fondle and play with ${his} crotch a bit.`,
 			prereq: () => 
-				slave.vagina > -1 &&
-				!slave.chastityVagina &&
+				clone.vagina > -1 &&
+				!clone.chastityVagina &&
 				slaveState.bottomFree,
 			effect: () => {
 				playerState.lust++;
@@ -424,15 +425,15 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = Action.TOUCHING;
 				slaveState.action = Action.RECEIVING;
 			},
-			reaction: this.reactionText.gropePussy(slave),
+			reaction: this.reactionText.gropePussy(clone),
 		},
 		{
 			link: `Grope ${his} dick`,
-			desc: crotchText.gropeDick(slave),
+			desc: crotchText.gropeDick(clone),
 			tooltip: `Rub ${his} cock a little.`,
 			prereq: () => 
-				slave.dick > 0 &&
-				!slave.chastityPenis &&
+				clone.dick > 0 &&
+				!clone.chastityPenis &&
 				slaveState.bottomFree,
 			effect: () => {
 				playerState.lust++;
@@ -441,11 +442,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = Action.TOUCHING;
 				slaveState.action = Action.RECEIVING;
 			},
-			reaction: this.reactionText.gropeDick(slave),
+			reaction: this.reactionText.gropeDick(clone),
 		},
 		{
 			link: `Grope ${his} ass`,
-			desc: crotchText.gropeAss(slave),
+			desc: crotchText.gropeAss(clone),
 			tooltip: `Grab ${his} ass and give it a good fondle.`,
 			prereq: () => slaveState.bottomFree,
 			effect: () => {
@@ -455,17 +456,17 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = Action.TOUCHING;
 				slaveState.action = Action.RECEIVING;
 			},
-			reaction: this.reactionText.gropeAss(slave),
+			reaction: this.reactionText.gropeAss(clone),
 		},
 		{
 			link: `Finger ${his} pussy`,
-			desc: crotchText.fingerPussy(slave),
+			desc: crotchText.fingerPussy(clone),
 			tooltip: `Play with ${his} clit a little, maybe slide a finger in there. Go on, you know you want to.`,
 			prereq: () => 
-				slave.vagina > -1 &&
+				clone.vagina > -1 &&
 				(slaveState.bottomFree || clothes.includes("dress")) &&
 				!slaveState.clothing.underwear &&
-				!slave.chastityVagina,
+				!clone.chastityVagina,
 			effect: () => {
 				playerState.lust += 2;
 				slaveState.lust += 5;
@@ -473,34 +474,34 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.action = Action.FINGERING;
 				slaveState.action = Action.VAGINAL;
 			},
-			reaction: this.reactionText.fingerPussy(slave),
+			reaction: this.reactionText.fingerPussy(clone),
 		},
 		{
 			link: `Finger ${his} asshole`,
-			desc: crotchText.fingerAnus(slave),
+			desc: crotchText.fingerAnus(clone),
 			tooltip: `Play with ${his} backdoor a little. Go on, you know you want to.`,
 			prereq: () => 
 				(slaveState.bottomFree || clothes.includes("dress")) && 
 				!slaveState.clothing.underwear &&
-				!slave.chastityAnus,
+				!clone.chastityAnus,
 			effect: () => {
 				playerState.lust += 2;
-				slaveState.lust += slave.fetish === Fetish.BUTTSLUT ? 7 : 4;
+				slaveState.lust += clone.fetish === Fetish.BUTTSLUT ? 7 : 4;
 
 				playerState.action = Action.FINGERING;
 				slaveState.action = Action.ANAL;
 			},
-			reaction: this.reactionText.fingerAnus(slave),
+			reaction: this.reactionText.fingerAnus(clone),
 		},
 		{
 			link: `Take ${his} virginity`,
-			desc: crotchText.takeVirginity(slave),
+			desc: crotchText.takeVirginity(clone),
 			tooltip: `Make ${him} remember ${his} first time being used as a proper sex slave.`,
 			prereq: () => 
 				slave.vagina === 0 &&
 				slaveState.bottomFree &&
 				!slaveState.clothing.underwear &&
-				!slave.chastityVagina &&
+				!clone.chastityVagina &&
 				playerState.bottomFree &&
 				!playerState.clothing.underwear &&
 				slaveState.action !== Action.VAGINAL &&
@@ -525,17 +526,17 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				recordSex(slaveState.action);
 			},
-			reaction: this.reactionText.takeVirginity(slave),
+			reaction: this.reactionText.takeVirginity(clone),
 		},
 		{
 			link: `Fuck ${his} pussy`,
-			desc: crotchText.fuckPussy(slave),
+			desc: crotchText.fuckPussy(clone),
 			tooltip: `Push your ${player.dick ? `dick` : `strapon`} into ${his} pussy.`,
 			prereq: () => 
 				slave.vagina > 0 &&
 				slaveState.bottomFree &&
 				!slaveState.clothing.underwear &&
-				!slave.chastityVagina &&
+				!clone.chastityVagina &&
 				playerState.bottomFree &&
 				!playerState.clothing.underwear &&
 				slaveState.action !== Action.VAGINAL &&
@@ -549,24 +550,24 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				recordSex(slaveState.action);
 			},
-			reaction: this.reactionText.fuckPussy(slave),
+			reaction: this.reactionText.fuckPussy(clone),
 		},
 		{
 			link: `Take ${his} anal virginity`,
-			desc: crotchText.takeAnalVirginity(slave),
+			desc: crotchText.takeAnalVirginity(clone),
 			tooltip: `Use ${his} butt for the first of surely many times.`,
 			prereq: () => 
 				slave.anus === 0 &&
 				slaveState.bottomFree &&
 				!slaveState.clothing.underwear &&
-				!slave.chastityAnus &&
+				!clone.chastityAnus &&
 				playerState.bottomFree &&
 				!playerState.clothing.underwear &&
 				slaveState.action !== Action.ANAL &&
 				playerState.lust - playerState.previousOrgasm > 5,
 			effect: () => {
 				playerState.lust += 10;
-				slaveState.lust += slave.fetish === Fetish.BUTTSLUT ? 10 : 5;
+				slaveState.lust += clone.fetish === Fetish.BUTTSLUT ? 10 : 5;
 
 				slave.anus++;
 				if (slave.devotion > 20) {
@@ -583,35 +584,35 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				recordSex(slaveState.action);
 			},
-			reaction: this.reactionText.takeAnalVirginity(slave),
+			reaction: this.reactionText.takeAnalVirginity(clone),
 		},
 		{
 			link: `Fuck ${his} asshole`,
-			desc: crotchText.fuckAnus(slave),
+			desc: crotchText.fuckAnus(clone),
 			tooltip: `Push your ${player.dick ? `dick` : `strapon`} into ${his} asshole.`,
 			prereq: () => 
 				slave.anus > 0 &&
 				slaveState.bottomFree &&
 				!slaveState.clothing.underwear &&
-				!slave.chastityAnus &&
+				!clone.chastityAnus &&
 				playerState.bottomFree &&
 				!playerState.clothing.underwear &&
 				slaveState.action !== Action.ANAL &&
 				playerState.lust - playerState.previousOrgasm > 5,
 			effect: () => {
 				playerState.lust += 8;
-				slaveState.lust += slave.fetish === Fetish.BUTTSLUT ? 8 : 5;
+				slaveState.lust += clone.fetish === Fetish.BUTTSLUT ? 8 : 5;
 
 				playerState.action = Action.PENETRATING;
 				slaveState.action = Action.ANAL;
 
 				recordSex(slaveState.action);
 			},
-			reaction: this.reactionText.fuckAnus(slave),
+			reaction: this.reactionText.fuckAnus(clone),
 		},
 		{
 			link: `Start a sixty-nine`,
-			desc: crotchText.sixtyNine(slave),
+			desc: crotchText.sixtyNine(clone),
 			tooltip: `Show each other some mutual affection.`,
 			prereq: () => 
 				slaveState.bottomFree &&
@@ -631,7 +632,7 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				recordSex(slaveState.action);
 			},
-			reaction: this.reactionText.sixtyNine(slave),
+			reaction: this.reactionText.sixtyNine(clone),
 		},
 	];
 
@@ -640,25 +641,25 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 	const general = [
 		{
 			link: `Have ${him} dance for you`,
-			desc: generalText.dance(slave),
+			desc: generalText.dance(clone),
 			tooltip: `Make ${him} give you a sensual dance.`,
 			prereq: () => !slaveState.isKneeling && !slaveState.isLaying,
 			effect: () => {
 				playerState.lust += 4;
 				slaveState.lust += 3;
 			},
-			reaction: this.reactionText.dance(slave),
+			reaction: this.reactionText.dance(clone),
 		},
 		{
 			link: `Have ${him} perform a striptease for you`,
-			desc: generalText.striptease(slave),
+			desc: generalText.striptease(clone),
 			tooltip: `Make ${him} strip for you.`,
 			prereq: () =>
 				!slaveState.isKneeling &&
 				!slaveState.isLaying &&
 				clothes !== "no clothing",
 			effect: () => {
-				slave.clothes = "no clothing";
+				clone.clothes = "no clothing";
 				slaveState.clothing.top.isOff = true;
 				slaveState.clothing.bottom.isOff = true;
 				slaveState.clothing.bra = false;
@@ -668,99 +669,99 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				refreshArt();
 			},
-			reaction: this.reactionText.striptease(slave),
+			reaction: this.reactionText.striptease(clone),
 		},
 		{
 			link: `Push ${him} down`,
-			desc: generalText.pushDown(slave),
+			desc: generalText.pushDown(clone),
 			tooltip: `Put ${him} on ${his} knees.`,
 			prereq: () => !slaveState.isKneeling,
 			effect: () => {
 				slaveState.position = Position.KNEELING;
 			},
-			reaction: this.reactionText.pushDown(slave),
+			reaction: this.reactionText.pushDown(clone),
 		},
 		{
 			link: `Pull ${him} up`,
-			desc: generalText.pullUp(slave),
+			desc: generalText.pullUp(clone),
 			tooltip: `Have ${him} stand up.`,
 			prereq: () => slaveState.isKneeling,
 			effect: () => {
 				slaveState.position = Position.STANDING;
 			},
-			reaction: this.reactionText.pullUp(slave),
+			reaction: this.reactionText.pullUp(clone),
 		},
 		{
 			link: `Pull ${him} in close`,
-			desc: generalText.pullClose(slave),
+			desc: generalText.pullClose(clone),
 			tooltip: `Pull ${his} body in close to yours.`,
 			prereq: () => !slaveState.close,
 			effect: () => {
 				slaveState.close = true;
 			},
-			reaction: this.reactionText.pullClose(slave),
+			reaction: this.reactionText.pullClose(clone),
 		},
 		{
 			link: `Push ${him} away`,
-			desc: generalText.pushAway(slave),
+			desc: generalText.pushAway(clone),
 			tooltip: `Put some distance between you two.`,
 			prereq: () => slaveState.close,
 			effect: () => {
 				slaveState.close = false;
 			},
-			reaction: this.reactionText.pushAway(slave),
+			reaction: this.reactionText.pushAway(clone),
 		},
 		{
 			link: `Put ${him} on your lap`,
-			desc: generalText.putOnLap(slave),
+			desc: generalText.putOnLap(clone),
 			tooltip: `Ask ${him} if ${he}'s been naughty or nice.`,
 			prereq: () => !slaveState.onLap && !playerState.onLap,
 			effect: () => {
 				slaveState.onLap = true;
 			},
-			reaction: this.reactionText.putOnLap(slave),
+			reaction: this.reactionText.putOnLap(clone),
 		},
 		{
 			link: `Get ${him} off your lap`,
-			desc: generalText.getOffLap(slave),
+			desc: generalText.getOffLap(clone),
 			tooltip: `That's enough of that.`,
 			prereq: () => slaveState.onLap,
 			effect: () => {
 				slaveState.onLap = false;
 			},
-			reaction: this.reactionText.getOffLap(slave),
+			reaction: this.reactionText.getOffLap(clone),
 		},
 		{
 			link: `Take ${him} to bed`,
-			desc: generalText.goToBed(slave),
+			desc: generalText.goToBed(clone),
 			tooltip: `Take ${him} somewhere a bit more comfortable.`,
 			prereq: () => !playerState.isLaying && !slaveState.isLaying,
 			effect: () => {
 				playerState.position = Position.LAYING;
 				slaveState.position = Position.LAYING;
 			},
-			reaction: this.reactionText.goToBed(slave),
+			reaction: this.reactionText.goToBed(clone),
 		},
 		{
 			link: `Get out of bed`,
-			desc: generalText.getOutOfBed(slave),
+			desc: generalText.getOutOfBed(clone),
 			tooltip: `In case you need a little more maneuverability.`,
 			prereq: () => playerState.isLaying && slaveState.isLaying,
 			effect: () => {
 				playerState.position = Position.STANDING;
 				slaveState.position = Position.STANDING;
 			},
-			reaction: this.reactionText.getOutOfBed(slave),
+			reaction: this.reactionText.getOutOfBed(clone),
 		},
 		{
 			link: `Bring in another slave`,
-			desc: generalText.bringInSlave(slave),
+			desc: generalText.bringInSlave(clone),
 			tooltip: `Have another slave join the two of you.`,
 			prereq: () => V.slaves.length > 1,
 			effect: () => {
 				return;	// temporarily disabled
 			},
-			reaction: this.reactionText.bringInSlave(slave),
+			reaction: this.reactionText.bringInSlave(clone),
 		},
 	];
 
@@ -768,39 +769,39 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 		if (V.active.canine) {
 			general.push({
 				link: `Bring in ${getAnimal(V.active.canine).articleAn} ${V.active.canine}`,
-				desc: generalText.bringInCanine(slave),
+				desc: generalText.bringInCanine(clone),
 				tooltip: `Spice things up with ${getAnimal(V.active.canine).species === 'dog' ? `man's best friend` : `a four-legged friend`}.`,
 				prereq: () => V.seeBestiality && !!V.active.canine,
 				effect: () => {
 					return;	// temporarily disabled
 				},
-				reaction: this.reactionText.bringInCanine(slave),
+				reaction: this.reactionText.bringInCanine(clone),
 			});
 		}
 
 		if (V.active.hooved) {
 			general.push({
 				link: `Bring in ${getAnimal(V.active.hooved).articleAn} ${V.active.hooved}`,
-				desc: generalText.bringInHooved(slave),
+				desc: generalText.bringInHooved(clone),
 				tooltip: `Make things more interesting with something a bit larger.`,
 				prereq: () => V.active.hooved !== null,
 				effect: () => {
 					return;	// temporarily disabled
 				},
-				reaction: this.reactionText.bringInHooved(slave),
+				reaction: this.reactionText.bringInHooved(clone),
 			});
 		}
 
 		if (V.active.feline) {
 			general.push({
 				link: `Bring in ${getAnimal(V.active.feline).articleAn} ${V.active.feline}`,
-				desc: generalText.bringInFeline(slave),
+				desc: generalText.bringInFeline(clone),
 				tooltip: `Have some fun with a furry ${getAnimal(V.active.feline).species === 'cat' ? `little` : ``} friend.`,
 				prereq: () => V.active.feline !== null,
 				effect: () => {
 					return;	// temporarily disabled
 				},
-				reaction: this.reactionText.bringInFeline(slave),
+				reaction: this.reactionText.bringInFeline(clone),
 			});
 		}
 	}
@@ -810,7 +811,7 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 	const clothing = [
 		{
 			link: `Pull up ${his} dress`,
-			desc: clothingText.pullUpDress(slave),
+			desc: clothingText.pullUpDress(clone),
 			tooltip: `For easier access.`,
 			prereq: () => clothes.includes("dress") && !slaveState.clothing.bottom.pulledDown,
 			effect: () => {
@@ -821,18 +822,18 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				refreshArt();
 			},
-			reaction: this.reactionText.pullUpDress(slave),
+			reaction: this.reactionText.pullUpDress(clone),
 		},
 		{
-			link: `Take off ${his} ${slave.clothes.replace('a ', '')}`,
-			desc: clothingText.removeClothing(slave),
+			link: `Take off ${his} ${clone.clothes.replace('a ', '')}`,
+			desc: clothingText.removeClothing(clone),
 			tooltip: `Have ${him} take off ${his} outermost layer.`,
 			prereq: () =>
 				clothes !== "no clothing" &&
 				!slaveState.clothing.top.isOff &&
 				!slaveState.clothing.bottom.isOff,
 			effect: () => {
-				slave.clothes = "no clothing";
+				clone.clothes = "no clothing";
 				slaveState.clothing.top.isOff = true;
 				slaveState.clothing.bottom.isOff = true;
 
@@ -841,17 +842,17 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeClothing(slave),
+			reaction: this.reactionText.removeClothing(clone),
 		},
 		{
 			link: `Take off ${his} top`,
-			desc: clothingText.removeTop(slave),
-			tooltip: `For easier access to ${his} ${slave.boobs >= 300 ? `tits` : `chest`}.`,
+			desc: clothingText.removeTop(clone),
+			tooltip: `For easier access to ${his} ${clone.boobs >= 300 ? `tits` : `chest`}.`,
 			prereq: () => !clothes.includes("dress") && !slaveState.clothing.top.isOff,
 			effect: () => {
 				slaveState.clothing.top.isOff = true;
 				if (slaveState.clothing.bottom.isOff) {
-					slave.clothes = "no clothing";
+					clone.clothes = "no clothing";
 				}
 
 				playerState.lust++;
@@ -859,17 +860,17 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeTop(slave),
+			reaction: this.reactionText.removeTop(clone),
 		},
 		{
 			link: `Take off ${his} bottoms`,
-			desc: clothingText.removeBottom(slave),
+			desc: clothingText.removeBottom(clone),
 			tooltip: `For easier access to ${his} crotch.`,
 			prereq: () => !clothes.includes("dress") && !slaveState.clothing.bottom.isOff,
 			effect: () => {
 				slaveState.clothing.bottom.isOff = true;
 				if (slaveState.clothing.top.isOff) {
-					slave.clothes = "no clothing";
+					clone.clothes = "no clothing";
 				}
 
 				playerState.lust++;
@@ -877,17 +878,17 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeBottom(slave),
+			reaction: this.reactionText.removeBottom(clone),
 		},
 		{
 			link: `Take off ${his} bra`,
-			desc: clothingText.removeBra(slave),
+			desc: clothingText.removeBra(clone),
 			tooltip: `Get ${his} bra out of the way.`,
 			prereq: () => slaveState.topFree && slaveState.clothing.bra,
 			effect: () => {
 				slaveState.clothing.bra = false;
 				if (!slaveState.clothing.underwear) {
-					slave.clothes = "no clothing";
+					clone.clothes = "no clothing";
 				}
 
 				playerState.lust++;
@@ -895,17 +896,17 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeBra(slave),
+			reaction: this.reactionText.removeBra(clone),
 		},
 		{
 			link: `Take off ${his} underwear`,
-			desc: clothingText.removeUnderwear(slave),
-			tooltip: `Get ${his} ${slave.vagina > -1 ? `panties` : `underwear`} out of the way.`,
+			desc: clothingText.removeUnderwear(clone),
+			tooltip: `Get ${his} ${clone.vagina > -1 ? `panties` : `underwear`} out of the way.`,
 			prereq: () => slaveState.bottomFree && slaveState.clothing.underwear,
 			effect: () => {
 				slaveState.clothing.underwear = false;
 				if (!slaveState.clothing.bra) {
-					slave.clothes = "no clothing";
+					clone.clothes = "no clothing";
 				}
 
 				playerState.lust++;
@@ -913,97 +914,97 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeUnderwear(slave),
+			reaction: this.reactionText.removeUnderwear(clone),
 		},
 		{
 			link: `Pull aside ${his} underwear`,
-			desc: clothingText.pullAsideUnderwear(slave),
-			tooltip: `Move ${his} ${slave.vagina > -1 ? `panties` : `underwear`} out of the way for easier access to what's underneath.`,
+			desc: clothingText.pullAsideUnderwear(clone),
+			tooltip: `Move ${his} ${clone.vagina > -1 ? `panties` : `underwear`} out of the way for easier access to what's underneath.`,
 			prereq: () => slaveState.bottomFree && slaveState.clothing.underwear,
 			effect: () => {
 				playerState.lust++;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.pullAsideUnderwear(slave),
+			reaction: this.reactionText.pullAsideUnderwear(clone),
 		},
 		{
 			link: `Give ${him} a ball gag`,
-			desc: clothingText.addMouthAccessory(slave),
+			desc: clothingText.addMouthAccessory(clone),
 			tooltip: `In case ${he}'s being too mouthy – or just for fun.`,
-			prereq: () => slave.mouthAccessory === none,
+			prereq: () => clone.mouthAccessory === none,
 			effect: () => {
-				slave.mouthAccessory = "ball gag";
+				clone.mouthAccessory = "ball gag";
 
 				refreshArt();
 			},
-			reaction: this.reactionText.addMouthAccessory(slave),
+			reaction: this.reactionText.addMouthAccessory(clone),
 		},
 		{
 			link: `Give ${him} a ring gag`,
-			desc: clothingText.addMouthAccessory(slave),
+			desc: clothingText.addMouthAccessory(clone),
 			tooltip: `In case ${he}'s being too mouthy, but you still want access to ${his} throat.`,
-			prereq: () => slave.mouthAccessory === none,
+			prereq: () => clone.mouthAccessory === none,
 			effect: () => {
-				slave.mouthAccessory = "ring gag";
+				clone.mouthAccessory = "ring gag";
 
 				refreshArt();
 			},
-			reaction: this.reactionText.addMouthAccessory(slave),
+			reaction: this.reactionText.addMouthAccessory(clone),
 		},
 		{
-			link: `Take ${slave.mouthAccessory.includes("dildo") ? `out` : `off`} ${his} ${slave.mouthAccessory}`,
-			desc: clothingText.removeMouthAccessory(slave),
+			link: `Take ${clone.mouthAccessory.includes("dildo") ? `out` : `off`} ${his} ${clone.mouthAccessory}`,
+			desc: clothingText.removeMouthAccessory(clone),
 			tooltip: `Give ${him} some respite.`,
-			prereq: () => slave.mouthAccessory !== none,
+			prereq: () => clone.mouthAccessory !== none,
 			effect: () => {
-				slave.mouthAccessory = none;
+				clone.mouthAccessory = none;
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeMouthAccessory(slave),
+			reaction: this.reactionText.removeMouthAccessory(clone),
 		},
 		{
 			link: `Take off ${his} vaginal chastity device`,
-			desc: clothingText.removeChastityVaginal(slave),
+			desc: clothingText.removeChastityVaginal(clone),
 			tooltip: `${He} won't be needing it.`,
 			prereq: () => (clothes === "no clothing" || clothes.includes("dress")) &&
-				slave.chastityVagina === 1,
+				clone.chastityVagina === 1,
 			effect: () => {
-				slave.chastityVagina = 0;
+				clone.chastityVagina = 0;
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeChastityVaginal(slave),
+			reaction: this.reactionText.removeChastityVaginal(clone),
 		},
 		{
 			link: `Take off ${his} anal chastity device`,
-			desc: clothingText.removeChastityAnal(slave),
+			desc: clothingText.removeChastityAnal(clone),
 			tooltip: `${He} won't be needing it.`,
 			prereq: () => (clothes === "no clothing" || clothes.includes("dress")) &&
-				slave.chastityAnus === 1,
+				clone.chastityAnus === 1,
 			effect: () => {
-				slave.chastityAnus = 0;
+				clone.chastityAnus = 0;
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeChastityAnal(slave),
+			reaction: this.reactionText.removeChastityAnal(clone),
 		},
 		{
 			link: `Take the chastity device off of ${his} dick`,
-			desc: clothingText.removeChastityPenis(slave),
+			desc: clothingText.removeChastityPenis(clone),
 			tooltip: `${He} won't be needing it.`,
 			prereq: () => (clothes === "no clothing" || clothes.includes("dress")) &&
-				slave.chastityPenis === 1,
+				clone.chastityPenis === 1,
 			effect: () => {
-				slave.chastityPenis = 0;
+				clone.chastityPenis = 0;
 
 				refreshArt();
 			},
-			reaction: this.reactionText.removeChastityPenis(slave),
+			reaction: this.reactionText.removeChastityPenis(clone),
 		},
 		{
 			link: `Take your shirt off`,
-			desc: clothingText.removePlayerTop(slave),
+			desc: clothingText.removePlayerTop(clone),
 			tooltip: `You won't be needing this.`,
 			prereq: () => !player.clothes.includes("dress") && !playerState.clothing.top.isOff,
 			effect: () => {
@@ -1012,11 +1013,11 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.lust++;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.removePlayerTop(slave),
+			reaction: this.reactionText.removePlayerTop(clone),
 		},
 		{
 			link: `Take your pants off`,
-			desc: clothingText.removePlayerBottom(slave),
+			desc: clothingText.removePlayerBottom(clone),
 			tooltip: `These will just get in the way.`,
 			prereq: () => !player.clothes.includes("dress") && !playerState.clothing.bottom.isOff,
 			effect: () => {
@@ -1025,7 +1026,7 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.lust++;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.removePlayerBottom(slave),
+			reaction: this.reactionText.removePlayerBottom(clone),
 		},
 		{
 			link: `Take off your bra`,
@@ -1042,7 +1043,7 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 		},
 		{
 			link: `Take off your underwear`,
-			desc: clothingText.removePlayerUnderwear(slave),
+			desc: clothingText.removePlayerUnderwear(clone),
 			tooltip: `For easier access.`,
 			prereq: () => playerState.clothing.underwear && playerState.clothing.bottom.isOff,
 			effect: () => {
@@ -1051,7 +1052,7 @@ App.UI.SlaveInteract.useSlave.options = function(player, slave, playerState, sla
 				playerState.lust++;
 				slaveState.lust++;
 			},
-			reaction: this.reactionText.removePlayerUnderwear(slave),
+			reaction: this.reactionText.removePlayerUnderwear(clone),
 		},
 	];