diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..474880409f2eb7e1e60e1f030f7bb46364ea574c
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "eslint.enable": false
+}
\ No newline at end of file
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index a1d9d6cba8aef8a7ecf44770ed75da0d54082366..477a44f14ee1bf6953d39b5505fe0d972ad7dddb 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -2636,6 +2636,7 @@ vaginalAccessory:
 
 may accept strings, use at own risk
 "none"
+"bullet vibrator"
 "dildo"
 "large dildo"
 "huge dildo"
@@ -2643,6 +2644,12 @@ may accept strings, use at own risk
 "long, large dildo"
 "long, huge dildo"
 
+vaginalAttachment:
+
+may accept strings, use at own risk
+"none"
+"vibrator"
+
 dickAccessory:
 
 may accept strings, use at own risk
diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js
index 6d6308083adfb65acbd108ab69e9dec11a20e44c..b1cf19041dd87a77d2447f0da5d433403ed9ebd1 100644
--- a/src/art/vector/VectorArtJS.js
+++ b/src/art/vector/VectorArtJS.js
@@ -1029,6 +1029,8 @@ window.VectorArt = (function () {
 							r += jsInclude("Art_Vector_Dildo_Huge");
 						else if (slave.vaginalAccessory === "long, huge dildo")
 							r += jsInclude("Art_Vector_Dildo_Huge_Long");
+					} else if (slave.vaginalAccessory === "bullet vibrator") {
+						r += jsInclude("Art_Vector_Bullet_Vibrator");
 					}
 			}
 		}
diff --git a/src/art/vector_revamp/vectorRevampedArtControl.js b/src/art/vector_revamp/vectorRevampedArtControl.js
index b70074c5f3a8e1fab7d4e04917203740926cc8a4..8be76f964b583f31b7239a461db15b90665c57f3 100644
--- a/src/art/vector_revamp/vectorRevampedArtControl.js
+++ b/src/art/vector_revamp/vectorRevampedArtControl.js
@@ -1067,7 +1067,7 @@ class RevampedArtControl {
 			result.push("Art_Vector_Revamp_Clit_Piercing");
 		else if (this.artSlave.clitPiercing == 2)
 			result.push("Art_Vector_Revamp_Clit_Piercing_Heavy");
-		else if (this.artSlave.clitPiercing == 1)
+		else if (this.artSlave.clitPiercing == 3)
 			result.push("Art_Vector_Revamp_Clit_Piercing_Smart");
 
 		return result;
diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw
index 7efa84944bfcfac157d03422e1bf81829da88ef2..7645c3af06e676e6658cb1e3009ca2b9083c9775 100644
--- a/src/init/setupVars.tw
+++ b/src/init/setupVars.tw
@@ -2072,6 +2072,7 @@ Then pick _namePool.random(), or display those names as possible choices, or do
 <<set setup.vaginalAccessories = [
 	{name: "No default setting", value: "no default setting"},
 	{name: "None", value: "none"},
+	{name: "Bullet vibrator", value: "bullet vibrator"},
 	{name: "Dildo", value: "dildo"},
 	{name: "Long dildo", value: "long dildo", rs: "buyBigDildos"},
 	{name: "Large dildo", value: "large dildo"},
@@ -2079,6 +2080,11 @@ Then pick _namePool.random(), or display those names as possible choices, or do
 	{name: "Huge dildo", value: "huge dildo"},
 	{name: "Long, huge dildo", value: "long, huge dildo", rs: "buyBigDildos"}]>>
 
+<<set setup.vaginalAttachments = [
+	{name: "No default setting", value: "no default setting"},
+	{name: "None", value: "none"},
+	{name: "Vibrating attachment", value: "vibrator"}]>>
+
 <<set setup.dickAccessories = [
 	{name: "No default setting", value: "no default setting"},
 	{name: "None", value: "none"}]>>
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index d8c08dce33727b9173234eb4a23982ee8e560e21..1241b29310c51c3e7184a200c587e78a60d41f0e 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -861,6 +861,7 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $clothesBoughtSwimwear = 0>>
 <<set $toysBoughtDildos = 0>>
 <<set $toysBoughtGags = 0>>
+<<set $toysBoughtVaginalAttachments = 0>>
 <<set $toysBoughtButtPlugs = 0>>
 <<set $toysBoughtButtPlugTails = 0>>
 <<set $buckets = 0>>
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index b028235b359e8a38177877876cf89d1d722121fe..16ba5229c57bd28f8b345411eb1a2a2b4af50bfe 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -564,6 +564,7 @@ window.DefaultRules = (function() {
 			ProcessAVirginDildos(slave, rule);
 		} else if (slave.vagina > 0) {
 			ProcessNonVirginDildos(slave, rule);
+		ProcessVaginalAttachments(slave, rule);
 		}
 	}
 
@@ -740,6 +741,45 @@ window.DefaultRules = (function() {
 		}
 	}
 
+	/** @param {App.Entity.SlaveState} slave */
+	function ProcessVaginalAttachments(slave, rule) {
+		// apply vaginal accessories to slaves
+		if (slave.vaginalAccessory === "none" && slave.vaginalAttachment === "vibrator") {
+			slave.vaginalAttachment = "none"; // clears dildo attachment when dildos are removed above
+		} else if ((rule.vaginalAttachment !== undefined) && (rule.vaginalAttachment !== "no default setting")) {
+			if ((slave.vaginalAttachment !== rule.vaginalAttachment)) {
+				slave.vaginalAttachment = rule.vaginalAttachment;
+				if (slave.vaginalAccessory !== "none") {
+					switch (slave.vaginalAttachment) {
+
+						case "none":
+							r += `<br>${slave.slaveName} has been instructed not to use an attachment for ${his} dildo.`;
+							break;
+						
+						case "vibrator":
+							r += `<br>${slave.slaveName}'s dildo has been replaced with a vibrating model.`;
+							break;
+
+						default:
+							r += `<br>${slave.slaveName} has been given a ${slave.vaginalAttachment}.`;
+							break;
+					}
+				} else {
+					switch (slave.vaginalAttachment) {
+						
+						case "none":
+							r += `<br>${slave.slaveName} has been instructed not to use any vaginal accessories.`;
+							break;
+
+						default:
+							r += `<br>${slave.slaveName} has been given a ${slave.vaginalAttachment}.`;
+							break;
+					}
+				}
+			}
+		}
+	}
+
 	/** @param {App.Entity.SlaveState} slave */
 	function ProcessDickAccessories(slave, rule) {
 		// apply dick accessories to slave
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 2a72bb0ff5a8cf672762f51d0f251640cfb7070d..4bcb55d3cf9b4ae203c1a4ef6dd5013ac3166d59 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -1554,6 +1554,19 @@ App.Entity.SlaveState = class SlaveState {
 		/**
 		 * may accept strings, use at own risk
 		 * * "none"
+		 * * "bullet vibrator"
+		 * * "dildo"
+		 * * "long dildo"
+		 * * "large dildo"
+		 * * "long, large dildo"
+		 * * "huge dildo"
+		 * * "long, huge dildo"
+		 */
+		this.vaginalAttachment = "none";
+		/**
+		 * may accept strings, use at own risk
+		 * * "none"
+		 * * "vibrator"
 		 */
 		this.dickAccessory = "none";
 		/**
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 923ec88aa2a87acdc08af7d20bd44502975c4f77..79920a1b4deb3c7175d74d95d77e924364a84a0c 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -404,6 +404,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		if (typeof slave.vaginalAccessory !== "string") {
 			slave.vaginalAccessory = "none";
 		}
+		if (typeof slave.vaginalAttachment !== "string") {
+			slave.vaginalAttachments = "none";
+		}
 		if (typeof slave.dickAccessory !== "string") {
 			slave.dickAccessory = "none";
 		}
@@ -979,6 +982,9 @@ window.childCosmeticsDatatypeCleanup = function childCosmeticsDatatypeCleanup(ch
 	if (typeof child.vaginalAccessory !== "string") {
 		child.vaginalAccessory = "none";
 	}
+	if (typeof child.vaginalAttachment !== "string") {
+		child.vaginalAttachments = "none";
+	}
 	if (typeof child.dickAccessory !== "string") {
 		child.dickAccessory = "none";
 	}
diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js
index 4f06d45d4718beb412310765b99b1bd500b888d7..eeac0fb007d7a35cf66753a39943814cfb1eb814 100644
--- a/src/js/itemAvailability.js
+++ b/src/js/itemAvailability.js
@@ -134,10 +134,13 @@ window.isItemAccessible = function(string) {
 		case 'a large empathy belly':
 		case 'a huge empathy belly':
 			return (V.arcologies[0].FSRepopulationFocus > 0 || V.clothesBoughtBelly === 1);
+		case 'bullet vibrator':	// Not technically a dildo, but $toyBoughtVaginalAccessories doesn't exist
 		case 'long dildo':
 		case 'long, large dildo':
 		case 'long, huge dildo':
 			return (V.toysBoughtDildos === 1);
+		case 'vibrator':
+			return (V.toysBoughtVaginalAttachments === 1);
 		case 'long plug':
 		case 'long, large plug':
 		case 'long, huge plug':
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 311155c74e46521ef93fea701218a3568625ce9b..a3caa9529ccbe59fb7768c55025e2ba5768d6cb4 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -918,6 +918,7 @@ window.rulesAssistantOptions = (function() {
 			this.appendChild(new VagAccVirginsList());
 			this.appendChild(new VagAccAVirginsList());
 			this.appendChild(new VagAccOtherList());
+			this.appendChild(new VaginalAttachmentsList());
 			if (V.seeDicks !== 0 || V.makeDicks !== 0) {
 				this.appendChild(new DickChastityList());
 				this.appendChild(new DickAccVirginsList());
@@ -1355,6 +1356,21 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+	class VaginalAttachmentsList extends List {	/**TODO: this will need expanding */
+		constructor() {
+			const accs = [];
+			setup.vaginalAttachments.forEach(acc => {
+				if (acc.fs === undefined && acc.rs === undefined)
+					accs.push([acc.name, acc.value]);
+				else if (acc.rs === "buyVaginalAttachments" && V.toysBoughtVaginalAttachments === 1)
+					accs.push([acc.name + " (Purchased)", acc.value]);
+			});
+			super("Vaginal attachments for slaves with vaginal accessories", accs);
+			this.setValue(current_rule.set.vaginalAttachment);
+			this.onchange = (value) => current_rule.set.vaginalAttachment = value;
+		}
+	}
+
 	class DickChastityList extends List {
 		constructor() {
 			const items = [
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index 2eb64c87236dfc98bc5d26aee4a5a736ed49e1c3..a9cc60634875e403f1d3bcb8dc83cc09527c6ec2 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -4622,27 +4622,40 @@ window.SlaveSummaryUncached = (function(){
 
 	/** @param {App.Entity.SlaveState} slave */
 	function long_vaginal_acc(slave) {
-		switch (slave.vaginalAccessory) {
-			case "dildo":
-				r += `Vaginal dildo.`;
-				break;
-			case "large dildo":
-				r += `Large vaginal dildo.`;
-				break;
-			case "huge dildo":
-				r += `Huge vaginal dildo.`;
-				break;
-			case "long dildo":
-				r += `Long vaginal dildo.`;
-				break;
-			case "long, large dildo":
-				r += `Long and large vaginal dildo.`;
-				break;
-			case "long, huge dildo":
-				r += `Long and wide vaginal dildo.`;
-				break;
+		if (slave.vaginalAttachment !== "vibrator") {
+			switch (slave.vaginalAccessory) {
+				case "bullet vibrator":
+					r += `Attached bullet vibrator.`;
+					break;
+				case "dildo":
+					r += `Vaginal dildo.`;
+					break;
+				case "large dildo":
+					r += `Large vaginal dildo.`;
+					break;
+				case "huge dildo":
+					r += `Huge vaginal dildo.`;
+					break;
+				case "long dildo":
+					r += `Long vaginal dildo.`;
+					break;
+				case "long, large dildo":
+					r += `Long and large vaginal dildo.`;
+					break;
+				case "long, huge dildo":
+					r += `Long and wide vaginal dildo.`;
+					break;
+			}
 		}
 		r += " ";
+		if (slave.vaginalAttachment !== "none") {
+			switch (slave.vaginalAttachment) {
+				case "vibrator":
+					r += `Vibrating dildo.`;
+					break;
+			}
+			r += " ";
+		}
 	}
 
 	/** @param {App.Entity.SlaveState} slave */
diff --git a/src/pregmod/saClothes.tw b/src/pregmod/saClothes.tw
index 221e26ae97b6a92160f07d33fe506c0540be0f11..e2caab61e098eed72e7cc9d6dd14d4aaab0b462b 100644
--- a/src/pregmod/saClothes.tw
+++ b/src/pregmod/saClothes.tw
@@ -639,7 +639,9 @@
 <</if>>
 
 <<if ($slaves[$i].vaginalAccessory != "none")>>
-	<<if ($slaves[$i].vaginalAccessory == "dildo")>>
+	<<if ($slaves[$i].vaginalAttachment == "bullet vibrator")>>
+		/* TODO: add effects here */
+	<<elseif ($slaves[$i].vaginalAccessory == "dildo")>>
 		<<if ($slaves[$i].vagina < 1) && (random(1,100) > 50)>>
 			Constantly wearing a dildo in $his virgin pussy @@.lime;gets it used to penetration.@@
 			<<set $slaves[$i].vagina += 1>>
@@ -819,7 +821,11 @@
 			<</if>>
 		<</if>>
 	<</if>>
-
+<</if>>
+<<if ($slaves[$i].vaginalAttachment != "none")>>
+	/* TODO: write effects here */
+	<<elseif ($slaves[$i].vaginalAttachment == "vibrator")>>
+	<</if>>
 <</if>>
 
 <<if ($slaves[$i].buttplug != "none")>>
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index f6a079911ca684ef2106a0133ebba31690fc62e7..d396524a58ad51221474b634587bd7d1d087ef30 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -182,6 +182,7 @@
 <<set $args[0].collar = $args[1].collar>>
 <<set $args[0].shoes = $args[1].shoes>>
 <<set $args[0].vaginalAccessory = $args[1].vaginalAccessory>>
+<<set $args[0].vaginalAttachment = $args[1].vaginalAttachment>>
 <<set $args[0].dickAccessory = $args[1].dickAccessory>>
 <<set $args[0].chastityVagina = $args[1].chastityVagina>>
 <<set $args[0].chastityPenis = $args[1].chastityPenis>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index d2603d3a4f614b47653513c3b0fc3cae9010bf00..3c1bb3c7b0b12cd6c651f044965a61cc65f5f43a 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -452,6 +452,9 @@
 <<if ndef $toysBoughtGags>>
 	<<set $toysBoughtGags = 0>>
 <</if>>
+<<if ndef $toysBoughtVaginalAttachments>>
+	<<set $toysBoughtVaginalAttachments = 0>>
+<</if>>
 <<if ndef $toysBoughtButtPlugs>>
 	<<set $toysBoughtButtPlugs = 0>>
 <</if>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 52ac6c1a92ccae865dbce2af4e4f91e270f90a80..7e3b2b7e31057856a8fe7381b5ecf222ffa438d0 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -4993,7 +4993,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			<br><<link "Deny $him from ever having satisfying sex again">>
 				<<replace "#result2">>
 				You ask $him if $he enjoyed $his last orgasm, because $he won't be getting any more. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null,@@ though $he retains $his balls, and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ You waste no time in shoving $him against the wall and forcing your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>> into $his anus. As $his arousal grows, $he realizes you not only took $his dick, but $his prostate as well. $He quickly find $himself desperate for release but lacking any way to do so. You watch $him squirm in sexual frustration. This will be $his new life. Every other rebellious slave is @@.gold;horrified by the example.@@
-				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.chastityVagina = 0>>
+				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.chastityVagina = 0>>
 				<<= AnalVCheck()>>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
 				<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
@@ -5093,7 +5093,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			<br><<link "Deny $him from ever having satisfying sex again">>
 				<<replace "#result2">>
 				You ask $him if $he enjoyed $his last orgasm, because $he won't be getting any more. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null,@@ though $he retains $his balls, and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ You waste no time in shoving $him against the wall and forcing your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>> into $his anus. As $his arousal grows, $he realizes you not only took $his dick, but $his prostate as well. $He quickly find $himself desperate for release but lacking any way to do so. You watch $him squirm in sexual frustration. This will be $his new life. Every other rebellious slave is @@.gold;horrified by the example.@@
-				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.chastityVagina = 0>>
+				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.chastityVagina = 0>>
 				<<= AnalVCheck()>>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
 				<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
@@ -5188,7 +5188,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			<br><<link "Deny $him from ever having satisfying sex again">>
 				<<replace "#result2">>
 				You ask $him if $he enjoyed $his last orgasm, because $he won't be getting any more. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null,@@ though $he retains $his balls, and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ You waste no time in shoving $him against the wall and forcing your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>> into $his anus. As $his arousal grows, $he realizes you not only took $his dick, but $his prostate as well. $He quickly find $himself desperate for release but lacking any way to do so. You watch $him squirm in sexual frustration. This will be $his new life. Every other rebellious slave is @@.gold;horrified by the example.@@
-				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.chastityVagina = 0>>
+				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.chastityVagina = 0>>
 				<<= AnalVCheck()>>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
 				<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
@@ -5258,7 +5258,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<br><<link "Deny $him from ever having satisfying sex again">>
 			<<replace "#result2">>
 			You ask $him if $he enjoyed $his last orgasm, because $he won't be getting any more. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null,@@ though $he retains $his balls, and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ You waste no time in shoving $him against the wall and forcing your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>> into $his anus. As $his arousal grows, $he realizes you not only took $his dick, but $his prostate as well. $He quickly find $himself desperate for release but lacking any way to do so. You watch $him squirm in sexual frustration. This will be $his new life. Every other rebellious slave is @@.gold;horrified by the example.@@
-			<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.chastityVagina = 0>>
+			<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.chastityPenis = 0, $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0, $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.chastityVagina = 0>>
 			<<= AnalVCheck()>>
 			<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
 			<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
@@ -7793,7 +7793,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<</if>>
 	<</replace>>
 <</link>>
-<<if $activeSlave.buttPlug == "none" && ($activeSlave.vagina < 0 || $activeSlave.vaginalAccessory == "none")>>
+<<if $activeSlave.buttPlug == "none" && ($activeSlave.vagina < 0 || ($activeSlave.vaginalAccessory == "none" && $activeSlave.vaginalAttachment == "none"))>>
 <br><<link "Add dildos to $his gear">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index 2b1a916c6bd29be3544cca5ce2f23dc2b64b229a..c102a4800cd9579dd8c32b4d0e78ef6e424cbc28 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -368,7 +368,7 @@
 		<<set $slaves[$i].diet = "healthy">>
 	<</if>>
 	<<if $dairyRestraintsSetting > 1>>
-		<<set $slaves[$i].collar = "none", $slaves[$i].choosesOwnClothes = 0, $slaves[$i].clothes = "no clothing", $slaves[$i].buttplug = "none", $slaves[$i].vaginalAccessory = "none", $slaves[$i].dickAccessory = "none", $slaves[$i].chastityAnus = 0, $slaves[$i].chastityPenis = 0, $slaves[$i].chastityVagina = 0>>
+		<<set $slaves[$i].collar = "none", $slaves[$i].choosesOwnClothes = 0, $slaves[$i].clothes = "no clothing", $slaves[$i].vaginalAccessory = "none", $slaves[$i].vaginalAttachment = "none", $slaves[$i].dickAccessory = "none", $slaves[$i].buttplug = "none", $slaves[$i].chastityAnus = 0, $slaves[$i].chastityPenis = 0, $slaves[$i].chastityVagina = 0>>
 	<</if>>
 	<<switch $dairyDecoration>>
 	<<case "Roman Revivalist" "Aztec Revivalist" "Chinese Revivalist" "Chattel Religionist" "Edo Revivalist" "Arabian Revivalist" "Egyptian Revivalist" "Supremacist" "Subjugationist" "Degradationist">>
diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw
index fc0dce0614f86abddcb02a958ff2fafe00285e00..80611fa2249dbf65650bda6dca9222aec07edf03 100644
--- a/src/uncategorized/personalAssistantOptions.tw
+++ b/src/uncategorized/personalAssistantOptions.tw
@@ -29,11 +29,19 @@ __Computer Core Upgrades__
 <br>
 
 <<if $assistantPower == 0>>
-	//The first upgrade needed is a switch to a holographic memory core to store the immense quantity of data $assistantName gathers. This upgrade will cost <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.// [[Install holographic memory core|Personal assistant options][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
+	The first upgrade needed is a switch to a holographic memory core to store the immense quantity of data $assistantName gathers. 
+	//Will cost <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>//
+	[[Install holographic memory core|Personal assistant options][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
 <<elseif $assistantPower == 1>>
-	//The final upgrade needed is a transition to optical RAM. This huge project will cost <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>.// [[Install optical RAM|Personal assistant options][cashX(forceNeg(Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
+	The next upgrade needed is a liquid nitrogen cooling system to allow for extensive overclocking. 
+	//Will cost <<print cashFormat(Math.trunc(35000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>> and will allow you to upgrade the smart piercings in $arcologies[0].name//
+	[[Install upgraded cooling system|Personal assistant options][cashX(forceNeg(Math.trunc(35000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
+<<elseif $assistantPower == 2>>
+	The final upgrade needed is a transition to optical RAM. 
+	//Will cost <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier))>>//
+	[[Install optical RAM|Personal assistant options][cashX(forceNeg(Math.trunc(50000*$upgradeMultiplierArcology*$HackingSkillMultiplier)), "capEx"), $assistantPower += 1, $PC.engineering += 1, $PC.hacking += 1]]
 <<else>>
-	//The arcology's computer core is fully upgraded.//
+	The arcology's computer core is fully upgraded.
 <</if>>
 <br>
 
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 276c4107103d8b56160866a2cf1410030da5e336..a7404b9b0374480761e3f22bc0836119b6cf8dda 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -487,6 +487,7 @@
 <<set $activeSlave.inflation = 0, $activeSlave.inflationType = "none", $activeSlave.inflationMethod = 0>>
 <<set $activeSlave.bodySwap = 0>>
 <<set $activeSlave.pregControl = "none">>
+<<set $activeSlave.vaginalAttachment = "none">>
 <<set $activeSlave.buttplugAttachment = "none">>
 <<run SetBellySize($activeSlave)>>
 <<if $activeSlave.physicalAge < 6>>
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index b062a258e9e2f9abf6895f7863e60eaa7fe5169c..f8aad90409a1aa075a24d8f5d86f807d0f207150 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -181,7 +181,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 		<<run cashX(forceNeg($contractCost/2), "slaveTransfer", $activeSlave)>>
 		<<replace "#result">>
 		You have _him2 ushered up to your office, and order _Inspectee.slaveName brought in. The inspector has a single moment to stiffen in shock at the sight before _he2 stiffens involuntarily due to the security drone tasing _him2 unconscious. It takes a few credits here and there to circumvent the Shelter's various legal and contractual defenses to prevent slaveowners from doing exactly what you're doing, but you finish the day richer by one more Fuckdoll. Odds are _he2 wants to be defiant, but the suit works perfectly and leaves _him2 no outlet to make _his2 thoughts known.
-		<<set $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels",$activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.dickAccessory="none", $activeSlave.buttplug="none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1>>
+		<<set $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels",$activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.vaginalAttachment="none", $activeSlave.dickAccessory="none", $activeSlave.buttplug="none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1>>
 		<<set $shelterAbuse += 10>>
 		<<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */
 		<<run newSlave($activeSlave)>> /* skip New Slave Intro */
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index cf1c8e9e69441054ce8e8e83c7bbee1517c82acc..4fdb66d998953489ff483d327c1a5addaf550239 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1149,11 +1149,11 @@ Work on $his sex:
 
 <<if ($activeSlave.vagina > -1) && ($activeSlave.dick > 0)>>
 	<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
-		| [[Remove pussy|Surgery Degradation][$activeSlave.vagina = -1,$activeSlave.ovaries = 0,$activeSlave.preg = -2,$activeSlave.pregSource = 0,$activeSlave.vaginalSkill = 0,$activeSlave.vaginalAccessory = "none",$activeSlave.chastityVagina = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$activeSlave.health -= 20,$surgeryType = "vaginaRemoval"]] <<if $activeSlave.ovaries == 1>>//This will remove $his ovaries as well//<</if>>
+		| [[Remove pussy|Surgery Degradation][$activeSlave.vagina = -1,$activeSlave.ovaries = 0,$activeSlave.preg = -2,$activeSlave.pregSource = 0,$activeSlave.vaginalSkill = 0,$activeSlave.vaginalAccessory = "none",$activeSlave.vaginalAttachment = "none",$activeSlave.chastityVagina = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$activeSlave.health -= 20,$surgeryType = "vaginaRemoval"]] <<if $activeSlave.ovaries == 1>>//This will remove $his ovaries as well//<</if>>
 	<</if>>
 <<elseif $activeSlave.vagina > -1>>
 	<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
-		| [[Remove pussy|Surgery Degradation][$activeSlave.vagina = -1,$activeSlave.ovaries = 0,$activeSlave.preg = -2,$activeSlave.pregSource = 0,$activeSlave.vaginalSkill = 0,$activeSlave.vaginalAccessory = "none",$activeSlave.chastityVagina = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$activeSlave.health -= 20,$surgeryType = "vaginaRemoval"]] <<if $activeSlave.ovaries == 1>>//This will remove $his ovaries as well//<</if>>
+		| [[Remove pussy|Surgery Degradation][$activeSlave.vagina = -1,$activeSlave.ovaries = 0,$activeSlave.preg = -2,$activeSlave.pregSource = 0,$activeSlave.vaginalSkill = 0,$activeSlave.vaginalAccessory = "none",$activeSlave.vaginalAttachment = "none",$activeSlave.chastityVagina = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$activeSlave.health -= 20,$surgeryType = "vaginaRemoval"]] <<if $activeSlave.ovaries == 1>>//This will remove $his ovaries as well//<</if>>
 	<</if>>
 <</if>>
 
@@ -1875,7 +1875,7 @@ Work on $him structurally:
 	<<if $activeSlave.fuckdoll == 0>>
 		<br>$He is a normal sex slave, not a living sex toy.
 		<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
-			[[Encase in a Fuckdoll suit|Surgery Degradation][$activeSlave.subTarget=0, $activeSlave.sentence=0, $activeSlave.training=0, $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels",$activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.dickAccessory="none", $activeSlave.chastityAnus=0, $activeSlave.chastityPenis=0, $activeSlave.chastityVagina=0, $activeSlave.buttplug="none", $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1, $activeSlave.inflation=0, $activeSlave.inflationType="none", $activeSlave.inflationMethod=0, $activeSlave.milkSource=0, $activeSlave.cumSource=0, $surgeryType = "fuckdoll"]] //This will greatly restrict $him//
+			[[Encase in a Fuckdoll suit|Surgery Degradation][$activeSlave.subTarget=0, $activeSlave.sentence=0, $activeSlave.training=0, $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels",$activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.vaginalAttachment="none", $activeSlave.dickAccessory="none", $activeSlave.chastityAnus=0, $activeSlave.chastityPenis=0, $activeSlave.chastityVagina=0, $activeSlave.buttplug="none", $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1, $activeSlave.inflation=0, $activeSlave.inflationType="none", $activeSlave.inflationMethod=0, $activeSlave.milkSource=0, $activeSlave.cumSource=0, $surgeryType = "fuckdoll"]] //This will greatly restrict $him//
 		<</if>>
 	<<else>>
 		<br>$He is encased in a Fuckdoll suit. [[Extract " + $him + "|Surgery Degradation][$activeSlave.fuckdoll=0, $activeSlave.clothes="no clothing", $activeSlave.shoes="none", $surgeryType = "fuckdollExtraction"]]
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 26f7d2ab0cd36884910258b7c9d90cb4d1d7bcde..04d7daff0c1d4c6ad91efc45ee18973a7cd53254 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -1604,175 +1604,523 @@
 	<<else>>
 		<<switch $slaves[$i].clitSetting>>
 		<<case "none">>
-			$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing disrupts arousal, @@.red;reducing $his sex drive@@ and @@.mediumorchid;infuriating $him.@@
-			<<set $slaves[$i].devotion -= 2>>
-			<<if $slaves[$i].energy > 5>>
-				<<set $slaves[$i].energy -= 10>>
-			<<elseif $slaves[$i].energy > 0>>
-				<<set $slaves[$i].energy = 0>>
+			$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+			<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+				and the bullet vibrator $he is wearing disrupt arousal, @@.red;reducing $his sex drive@@ and @@.mediumorchid;infuriating $him.@@
+				<<set $slaves[$i].devotion -= 3>>
+				<<if $slaves[$i].energy > 5>>
+					<<set $slaves[$i].energy -= 13>>
+				<<elseif $slaves[$i].energy > 0>>
+					<<set $slaves[$i].energy = 0>>
+				<</if>>
+			<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+				and the vibrating dildo in $his pussy disrupt arousal, @@.red;reducing $his sex drive@@ and @@.mediumorchid;infuriating $him.@@
+				<<set $slaves[$i].devotion -= 3>>
+				<<if $slaves[$i].energy > 5>>
+					<<set $slaves[$i].energy -= 13>>
+				<<elseif $slaves[$i].energy > 0>>
+					<<set $slaves[$i].energy = 0>>
+				<</if>>
+			<<else>>
+				disrupts arousal, @@.red;reducing $his sex drive@@ and @@.mediumorchid;infuriating $him.@@
+				<<set $slaves[$i].devotion -= 2>>
+				<<if $slaves[$i].energy > 5>>
+					<<set $slaves[$i].energy -= 10>>
+				<<elseif $slaves[$i].energy > 0>>
+					<<set $slaves[$i].energy = 0>>
+				<</if>>
 			<</if>>
 		<<case "all">>
 			<<if $slaves[$i].energy <= 95>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages sex of all kinds, @@.green;increasing $his sex drive.@@
-				<<set $slaves[$i].energy += 3>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing encourage sex of all kinds, @@.green;increasing $his sex drive.@@
+					<<set $slaves[$i].energy += 5>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy encourage sex of all kinds, @@.green;increasing $his sex drive.@@
+					<<set $slaves[$i].energy += 5>>
+				<<else>>
+					encourages sex of all kinds, @@.green;increasing $his sex drive.@@
+					<<set $slaves[$i].energy += 3>>
+				<</if>>
 			<</if>>
 		<<case "women">>
 			<<if $slaves[$i].attrXX < 95>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing successfully @@.green;increases $his attraction to girls@@ by pleasuring $him when $he's around them.
-				<<set $slaves[$i].attrXX += 4+$assistant+$assistant>>
-				<<if $slaves[$i].energy < 80>>
-					This has the secondary effect of slightly @@.green;enhancing $his libido.@@
-					<<set $slaves[$i].energy++>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing successfully @@.green;increase $his attraction to girls@@ by pleasuring $him when $he's around them.
+					<<set $slaves[$i].attrXX += 6+$assistant+$assistant>>
+					<<if $slaves[$i].energy < 80>>
+						This has the secondary effect of slightly @@.green;enhancing $his libido.@@
+						<<set $slaves[$i].energy += 2>>
+					<</if>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy successfully @@.green;increase $his attraction to girls@@ by pleasuring $him when $he's around them.
+					<<set $slaves[$i].attrXX += 6+$assistant+$assistant>>
+					<<if $slaves[$i].energy < 80>>
+						This has the secondary effect of slightly @@.green;enhancing $his libido.@@
+						<<set $slaves[$i].energy += 2>>
+					<</if>>
+				<<else>>
+					successfully @@.green;increases $his attraction to girls@@ by pleasuring $him when $he's around them.
+					<<set $slaves[$i].attrXX += 7+$assistant+$assistant>>
+					<<if $slaves[$i].energy < 80>>
+						This has the secondary effect of slightly @@.green;enhancing $his libido.@@
+						<<set $slaves[$i].energy++>>
+					<</if>>
 				<</if>>
 			<</if>>
 		<<case "anti-women">>
 			<<if $slaves[$i].attrXX > 0>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing successfully @@.green;suppresses $his attraction to girls@@ by making $his private parts very uncomfortable when $he's around them.
-				<<set $slaves[$i].attrXX -= Math.clamp($slaves[$i].attrXX-(4+$assistant+$assistant),0,100)>>
-				<<if $slaves[$i].energy > 0>>
-					This has the secondary effect of slightly @@.red;reducing $his libido.@@
-					<<set $slaves[$i].energy-->>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing successfully @@.green;suppress $his attraction to girls@@ by making $his private parts very uncomfortable when $he's around them.
+					<<set $slaves[$i].attrXX -= Math.clamp($slaves[$i].attrXX-(6+$assistant+$assistant),0,100)>>
+					<<if $slaves[$i].energy > 0>>
+						This has the secondary effect of slightly @@.red;reducing $his libido.@@
+						<<set $slaves[$i].energy -= 2>>
+					<</if>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy successfully @@.green;suppress $his attraction to girls@@ by making $his private parts very uncomfortable when $he's around them.
+					<<set $slaves[$i].attrXX -= Math.clamp($slaves[$i].attrXX-(6+$assistant+$assistant),0,100)>>
+					<<if $slaves[$i].energy > 0>>
+						This has the secondary effect of slightly @@.red;reducing $his libido.@@
+						<<set $slaves[$i].energy -= 2>>
+					<</if>>
+				<<else>>
+					successfully @@.green;suppresses $his attraction to girls@@ by making $his private parts very uncomfortable when $he's around them.
+					<<set $slaves[$i].attrXX -= Math.clamp($slaves[$i].attrXX-(4+$assistant+$assistant),0,100)>>
+					<<if $slaves[$i].energy > 0>>
+						This has the secondary effect of slightly @@.red;reducing $his libido.@@
+						<<set $slaves[$i].energy-->>
+					<</if>>
 				<</if>>
 			<</if>>
 		<<case "men">>
 			<<if $slaves[$i].attrXY < 95>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing successfully @@.green;increases $his attraction to guys@@ by pleasuring $him when $he's around cocks.
-				<<set $slaves[$i].attrXY += 4+$assistant+$assistant>>
-				<<if $slaves[$i].energy < 80>>
-					This has the secondary effect of slightly @@.green;enhancing $his libido.@@
-					<<set $slaves[$i].energy++>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing successfully @@.green;increase $his attraction to guys@@ by pleasuring $him when $he's around cocks.
+					<<set $slaves[$i].attrXY += 6+$assistant+$assistant>>
+					<<if $slaves[$i].energy < 80>>
+						This has the secondary effect of slightly @@.green;enhancing $his libido.@@
+						<<set $slaves[$i].energy += 2>>
+					<</if>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy successfully @@.green;increase $his attraction to guys@@ by pleasuring $him when $he's around cocks.
+					<<set $slaves[$i].attrXY += 6+$assistant+$assistant>>
+					<<if $slaves[$i].energy < 80>>
+						This has the secondary effect of slightly @@.green;enhancing $his libido.@@
+						<<set $slaves[$i].energy += 2>>
+					<</if>>
+				<<else>>
+					successfully @@.green;increases $his attraction to guys@@ by pleasuring $him when $he's around cocks.
+					<<set $slaves[$i].attrXY += 4+$assistant+$assistant>>
+					<<if $slaves[$i].energy < 80>>
+						This has the secondary effect of slightly @@.green;enhancing $his libido.@@
+						<<set $slaves[$i].energy++>>
+					<</if>>
 				<</if>>
 			<</if>>
 		<<case "anti-men">>
 			<<if $slaves[$i].attrXY > 0>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing successfully @@.green;suppresses $his attraction to guys@@ by making $his private parts very uncomfortable when $he's around them.
-				<<set $slaves[$i].attrXY -= Math.clamp($slaves[$i].attrXY-(4+$assistant+$assistant),0,100)>>
-				<<if $slaves[$i].energy > 0>>
-					This has the secondary effect of slightly @@.red;reducing $his libido.@@
-					<<set $slaves[$i].energy-->>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing successfully @@.green;suppress $his attraction to guys@@ by making $his private parts very uncomfortable when $he's around them.
+					<<set $slaves[$i].attrXY -= Math.clamp($slaves[$i].attrXY-(6+$assistant+$assistant),0,100)>>
+					<<if $slaves[$i].energy > 0>>
+						This has the secondary effect of slightly @@.red;reducing $his libido.@@
+						<<set $slaves[$i].energy -= 2>>
+					<</if>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy successfully @@.green;suppress $his attraction to guys@@ by making $his private parts very uncomfortable when $he's around them.
+					<<set $slaves[$i].attrXY -= Math.clamp($slaves[$i].attrXY-(6+$assistant+$assistant),0,100)>>
+					<<if $slaves[$i].energy > 0>>
+						This has the secondary effect of slightly @@.red;reducing $his libido.@@
+						<<set $slaves[$i].energy -= 2>>
+					<</if>>
+				<<else>>
+					successfully @@.green;suppresses $his attraction to guys@@ by making $his private parts very uncomfortable when $he's around them.
+					<<set $slaves[$i].attrXY -= Math.clamp($slaves[$i].attrXY-(4+$assistant+$assistant),0,100)>>
+					<<if $slaves[$i].energy > 0>>
+						This has the secondary effect of slightly @@.red;reducing $his libido.@@
+						<<set $slaves[$i].energy-->>
+					<</if>>
 				<</if>>
 			<</if>>
 		<<case "vanilla">>
 			<<if ($slaves[$i].fetish != "none") && (_fetishChangeChance > random(0,100)-20*$assistant)>>
-				After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms during straightforward sex, @@.coral;$his sexuality returns to normal.@@
-				<<set $slaves[$i].fetish = "none", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+				After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing encourage many orgasms during straightforward sex, @@.coral;$his sexuality returns to normal.@@
+					<<set $slaves[$i].fetish = "none", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy encourage many orgasms during straightforward sex, @@.coral;$his sexuality returns to normal.@@
+					<<set $slaves[$i].fetish = "none", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+				<<else>>
+					encourages many orgasms during straightforward sex, @@.coral;$his sexuality returns to normal.@@
+					<<set $slaves[$i].fetish = "none", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+				<</if>>
 			<</if>>
 		<<case "oral">>
 			<<if ($slaves[$i].fetish != "cumslut")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's using $his mouth.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's using $his mouth.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's using $his mouth.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's using $his mouth.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms as $he performs oral sex, @@.lightcoral;$he develops a fetish for cum.@@
-					<<set $slaves[$i].fetish = "cumslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms as $he performs oral sex, @@.lightcoral;$he develops a fetish for cum.@@
+						<<set $slaves[$i].fetish = "cumslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms as $he performs oral sex, @@.lightcoral;$he develops a fetish for cum.@@
+						<<set $slaves[$i].fetish = "cumslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms as $he performs oral sex, @@.lightcoral;$he develops a fetish for cum.@@
+						<<set $slaves[$i].fetish = "cumslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his oral fetish.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his oral fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his oral fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advances $his oral fetish.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "anal">>
 			<<if ($slaves[$i].fetish != "buttslut")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his rear hole is being fucked.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his rear hole is being fucked.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his rear hole is being fucked.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his rear hole is being fucked.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms when $his ass is being stimulated, @@.lightcoral;$he develops a fetish for being an anal bottom.@@
-					<<set $slaves[$i].fetish = "buttslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms when $his ass is being stimulated, @@.lightcoral;$he develops a fetish for being an anal bottom.@@
+						<<set $slaves[$i].fetish = "buttslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms when $his ass is being stimulated, @@.lightcoral;$he develops a fetish for being an anal bottom.@@
+						<<set $slaves[$i].fetish = "buttslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms when $his ass is being stimulated, @@.lightcoral;$he develops a fetish for being an anal bottom.@@
+						<<set $slaves[$i].fetish = "buttslut", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his anal fetish.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his anal fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his anal fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advances $his anal fetish.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "boobs">>
 			<<if ($slaves[$i].fetish != "boobs")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his tits are being touched.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> 
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his tits are being touched.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his tits are being touched.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $his tits are being touched.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms when $his nipples are being stimulated, @@.lightcoral;$he develops a fetish for $his tits.@@
-					<<set $slaves[$i].fetish = "boobs", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms when $his nipples are being stimulated, @@.lightcoral;$he develops a fetish for $his tits.@@
+						<<set $slaves[$i].fetish = "boobs", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms when $his nipples are being stimulated, @@.lightcoral;$he develops a fetish for $his tits.@@
+						<<set $slaves[$i].fetish = "boobs", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms when $his nipples are being stimulated, @@.lightcoral;$he develops a fetish for $his tits.@@
+						<<set $slaves[$i].fetish = "boobs", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his boob fetish.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his boob fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his boob fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advance $his boob fetish.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "submissive">>
 			<<if ($slaves[$i].fetish != "submissive")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being held down and used.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being held down and used.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being held down and used.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being held down and used.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms when $he is restrained, @@.lightcoral;$he develops a fetish for submission.@@
-					<<set $slaves[$i].fetish = "submissive", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms when $he is restrained, @@.lightcoral;$he develops a fetish for submission.@@
+						<<set $slaves[$i].fetish = "submissive", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms when $he is restrained, @@.lightcoral;$he develops a fetish for submission.@@
+						<<set $slaves[$i].fetish = "submissive", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms when $he is restrained, @@.lightcoral;$he develops a fetish for submission.@@
+						<<set $slaves[$i].fetish = "submissive", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his submission.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his submission.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his submission.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advances $his submission.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "humiliation">>
 			<<if ($slaves[$i].fetish != "humiliation")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's got an audience.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's got an audience.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's got an audience.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's got an audience.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms when $he is being humiliated, @@.lightcoral;$he develops a fetish for humiliation.@@
-					<<set $slaves[$i].fetish = "humiliation", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms when $he is being humiliated, @@.lightcoral;$he develops a fetish for humiliation.@@
+						<<set $slaves[$i].fetish = "humiliation", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms when $he is being humiliated, @@.lightcoral;$he develops a fetish for humiliation.@@
+						<<set $slaves[$i].fetish = "humiliation", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms when $he is being humiliated, @@.lightcoral;$he develops a fetish for humiliation.@@
+						<<set $slaves[$i].fetish = "humiliation", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his humiliation fetish.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his humiliation fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his humiliation fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advance $his humiliation fetish.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "pregnancy">>
 			<<if ($slaves[$i].fetish != "pregnancy")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he feels like $he's being bred.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he feels like $he's being bred.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he feels like $he's being bred.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he feels like $he's being bred.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms during <<if $PC.dick == 1>>unprotected sex<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>loving contact with the female anatomy<</if>>, @@.lightcoral;$he begins to fantasize about pregnancy.@@
-					<<set $slaves[$i].fetish = "pregnancy", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms during <<if $PC.dick == 1>>unprotected sex<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>loving contact with the female anatomy<</if>>, @@.lightcoral;$he begins to fantasize about pregnancy.@@
+						<<set $slaves[$i].fetish = "pregnancy", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms during <<if $PC.dick == 1>>unprotected sex<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>loving contact with the female anatomy<</if>>, @@.lightcoral;$he begins to fantasize about pregnancy.@@
+						<<set $slaves[$i].fetish = "pregnancy", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms during <<if $PC.dick == 1>>unprotected sex<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>loving contact with the female anatomy<</if>>, @@.lightcoral;$he begins to fantasize about pregnancy.@@
+						<<set $slaves[$i].fetish = "pregnancy", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his pregnancy fetish.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his pregnancy fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his pregnancy fetish.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advances $his pregnancy fetish.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "dom">>
 			<<if ($slaves[$i].fetish != "dom")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when another slave is servicing $him.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when another slave is servicing $him.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when another slave is servicing $him.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when another slave is servicing $him.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms while $he's taking an active, dominant sexual role, @@.lightcoral;$he begins to enjoy dominance.@@
-					<<set $slaves[$i].fetish = "dom", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms while $he's taking an active, dominant sexual role, @@.lightcoral;$he begins to enjoy dominance.@@
+						<<set $slaves[$i].fetish = "dom", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms while $he's taking an active, dominant sexual role, @@.lightcoral;$he begins to enjoy dominance.@@
+						<<set $slaves[$i].fetish = "dom", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms while $he's taking an active, dominant sexual role, @@.lightcoral;$he begins to enjoy dominance.@@
+						<<set $slaves[$i].fetish = "dom", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his dominance.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his dominance.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his dominance.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advances $his dominance.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "masochist">>
 			<<if ($slaves[$i].fetish != "masochist")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being hurt.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being hurt.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being hurt.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he's being hurt.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms while $he's being beaten, @@.lightcoral;$he begins to enjoy pain.@@
-					<<set $slaves[$i].fetish = "masochist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms while $he's being beaten, @@.lightcoral;$he begins to enjoy pain.@@
+						<<set $slaves[$i].fetish = "masochist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms while $he's being beaten, @@.lightcoral;$he begins to enjoy pain.@@
+						<<set $slaves[$i].fetish = "masochist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms while $he's being beaten, @@.lightcoral;$he begins to enjoy pain.@@
+						<<set $slaves[$i].fetish = "masochist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his masochism.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his masochism.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his masochism.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advances $his masochism.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<<case "sadist">>
 			<<if ($slaves[$i].fetish != "sadist")>>
 				<<if $slaves[$i].fetishStrength >= 10>>
-					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he witnesses or even takes part in another slave's pain.
-					<<set $slaves[$i].fetishStrength -= 20>>
+					$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>>
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he witnesses or even takes part in another slave's pain.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy act to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he witnesses or even takes part in another slave's pain.
+						<<set $slaves[$i].fetishStrength -= 30>>
+					<<else>>
+						acts to @@.coral;suppress $his current fetish,@@ encouraging $him to orgasm when $he witnesses or even takes part in another slave's pain.
+						<<set $slaves[$i].fetishStrength -= 20>>
+					<</if>>
 				<<elseif (_fetishChangeChance > random(0,100)-20*$assistant)>>
-					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing encourages many orgasms while $he's involved in the abuse of other slaves, @@.lightcoral;$he begins to develop a sadistic streak.@@
-					<<set $slaves[$i].fetish = "sadist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					After $his smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+					<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+						and the bullet vibrator $he is wearing encourage many orgasms while $he's involved in the abuse of other slaves, @@.lightcoral;$he begins to develop a sadistic streak.@@
+						<<set $slaves[$i].fetish = "sadist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+						and the vibrating dildo in $his pussy encourage many orgasms while $he's involved in the abuse of other slaves, @@.lightcoral;$he begins to develop a sadistic streak.@@
+						<<set $slaves[$i].fetish = "sadist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 15>>
+					<<else>>
+						encourages many orgasms while $he's involved in the abuse of other slaves, @@.lightcoral;$he begins to develop a sadistic streak.@@
+						<<set $slaves[$i].fetish = "sadist", $slaves[$i].fetishKnown = 1, $slaves[$i].fetishStrength = 10>>
+					<</if>>
 				<</if>>
 			<<elseif ($slaves[$i].fetishStrength <= 95)>>
-				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing @@.lightcoral;advances $his sadism.@@
-				<<set $slaves[$i].fetishStrength += 4>>
+				$His smart <<if $slaves[$i].vagina > -1>>clit<<else>>frenulum<</if>> piercing
+				<<if $slaves[$i].vaginalAccessory == "bullet vibrator">>
+					and the bullet vibrator $he is wearing @@.lightcoral;advance $his sadism.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<elseif $slaves[$i].vaginalAttachment == "vibrator">>
+					and the vibrating dildo in $his pussy @@.lightcoral;advance $his sadism.@@
+					<<set $slaves[$i].fetishStrength += 6>>
+				<<else>>
+					@@.lightcoral;advances $his sadism.@@
+					<<set $slaves[$i].fetishStrength += 4>>
+				<</if>>
 			<</if>>
 		<</switch>>
 	<</if>>
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 1f0cf11768e22c39dededd481bfe9c0080cfad0d..d905cf89f02197e1d6d496dd5920b02113509f2d 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -173,7 +173,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -481,7 +481,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -666,7 +666,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -946,7 +946,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing, often on stage during a dance,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -1124,7 +1124,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<else>>
 						a quick climax from a vibrator,
@@ -1363,7 +1363,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -1487,7 +1487,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -1784,7 +1784,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -2108,7 +2108,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -2281,7 +2281,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -2610,7 +2610,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -2799,7 +2799,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -3110,7 +3110,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -3288,7 +3288,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -3601,7 +3601,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -3774,7 +3774,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -4150,7 +4150,7 @@
 						<<set $slaves[$i].devotion += _rewards*2>>
 					<<case "orgasm">>
 						$He's @@.hotpink;rewarded@@ with
-						<<if $slaves[$i].clitPiercing >= 3>>
+						<<if $slaves[$i].clitPiercing == 3>>
 							sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 						<<elseif $slaves[$i].releaseRules == "sapphic">>
 							immediate sex with any nearby slave,
@@ -4324,7 +4324,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -4682,7 +4682,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -4773,7 +4773,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<else>>
 						immediate sex with you,
@@ -4902,7 +4902,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<else>>
 						immediate sex with you,
@@ -5049,7 +5049,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $activeSlave.releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
@@ -5431,7 +5431,7 @@
 					<<set $slaves[$i].devotion += _rewards*2>>
 				<<case "orgasm">>
 					$He's @@.hotpink;rewarded@@ with
-					<<if $slaves[$i].clitPiercing >= 3>>
+					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
 					<<elseif $slaves[$i].releaseRules == "sapphic">>
 						immediate sex with any nearby slave,
diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw
index 9971ea05ca7a95c44915499319d536294b6f0409..de9dab8a4202e71ec78f1a2216d5c946808e74a7 100644
--- a/src/uncategorized/saServeThePublic.tw
+++ b/src/uncategorized/saServeThePublic.tw
@@ -830,9 +830,9 @@ $His appearance attracted $beauty members of the public (<<print Math.trunc($bea
 	A few of $his fans recognize $him and eagerly make use of $him.
 <</if>>
 
-<<if ($slaves[$i].clitPiercing > 2) && ($slaves[$i].devotion >= -20)>>
+<<if ($slaves[$i].clitPiercing == 3) && ($slaves[$i].devotion >= -20)>>
 	Almost everyone loves $his orgasms encouraged by $his smart piercing.
-<<elseif ($slaves[$i].clitPiercing > 2)>>
+<<elseif ($slaves[$i].clitPiercing == 3)>>
 	Almost everyone appreciates $his reduced reluctance caused by $his smart piercing.
 <</if>>
 
diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw
index 75cc0e9771affd85c1521cf2cedf5ec325e000d8..19ad644826b6c9b4e6221abb8fbe96bae72cc7e9 100644
--- a/src/uncategorized/saWhore.tw
+++ b/src/uncategorized/saWhore.tw
@@ -745,9 +745,9 @@ $His appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a d
 	<</if>>
 <</if>>
 
-<<if ($slaves[$i].clitPiercing > 2) && ($slaves[$i].devotion >= -20)>>
+<<if ($slaves[$i].clitPiercing == 3) && ($slaves[$i].devotion >= -20)>>
 	Almost everyone loves $his enthusiasm for sex encouraged by $his smart piercing.
-<<elseif ($slaves[$i].clitPiercing > 2)>>
+<<elseif ($slaves[$i].clitPiercing == 3)>>
 	Almost everyone appreciates $his reduced reluctance towards sex encouraged by $his smart piercing.
 <</if>>
 
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 16b1e2f094bed6c7ae128ce576efee17dc025a05..bf03e30befdaf82c7394279560eae99e0ce2c57e 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1042,6 +1042,7 @@
 		<</if>>
 	<</if>>
 	<<if isItemAccessible("tail") && $activeSlave.buttplug != "none">>
+		<br>
 		&nbsp;&nbsp;&nbsp;&nbsp;Anal accessory attachment: ''<span id="buttplugAttach">$activeSlave.buttplugAttachment</span>.''
 		<<link "None">><<set $activeSlave.buttplugAttachment = "none">><<replace "#buttplugAttach">>$activeSlave.buttplugAttachment<</replace>><</link>>
 		<<if $toysBoughtButtPlugTails == 1>>
@@ -1054,6 +1055,7 @@
 	<<if $activeSlave.vagina > -1>>
 		<br>Vaginal accessory: ''<span id="vaginalAccessory">$activeSlave.vaginalAccessory</span>.''
 		<<link "None">><<set $activeSlave.vaginalAccessory = "none">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><<SlaveInteractSexOption>><<SlaveInteractAnalSexOption>><<SlaveInteractGropeOption>><<SlaveInteractDickGropeOption>><<SlaveInteractAnalGropeOption>><</link>>
+		| <<link "Bullet vibrator">><<set $activeSlave.vaginalAccessory = "bullet vibrator">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>>
 		| <<link "Dildo">><<set $activeSlave.vaginalAccessory = "dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>>
 		<<if isItemAccessible("long dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>>
 			| <<link "Long dildo">><<set $activeSlave.vaginalAccessory = "long dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>>
@@ -1068,6 +1070,19 @@
 				| <<link "Huge and long dildo">><<set $activeSlave.vaginalAccessory = "long, huge dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>>
 			<</if>>
 		<</if>>
+		<<if isItemAccessible("vibrator")>>
+			<br>
+			<<if $activeSlave.vaginalAccessory != "none">>
+				&nbsp;&nbsp;&nbsp;&nbsp;Vaginal accessory attachment:
+			<<else>>
+				&nbsp;&nbsp;&nbsp;&nbsp;Vaginal attachment:
+			<</if>>
+			''<span id="vaginalAttachment">$activeSlave.vaginalAttachment</span>.''
+			<<link "None">><<set $activeSlave.vaginalAttachment = "none">><<replace "#vaginalAttachment">>$activeSlave.vaginalAttachment<</replace>><</link>>
+			<<if $toysBoughtVaginalAttachments == 1>>
+				| <<link "Vibrating dildo">><<set $activeSlave.vaginalAttachment = "vibrator">><<replace "#vaginalAttachment">>$activeSlave.vaginalAttachment<</replace>><</link>>
+			<</if>>
+		<</if>>
 	<</if>>
 
 	<<if $activeSlave.dick > 0>>
diff --git a/src/uncategorized/slaveStats.tw b/src/uncategorized/slaveStats.tw
index 85e00ee250b9940225ccbb515e6ea6be924a1f81..70ea971fc5a2c9974dae73783208934f0590a7bc 100644
--- a/src/uncategorized/slaveStats.tw
+++ b/src/uncategorized/slaveStats.tw
@@ -250,6 +250,7 @@ slaveName: $activeSlave.slaveName	   /* TODO: figure out why this is being inden
 <br>collar: $activeSlave.collar
 <br>shoes: $activeSlave.shoes
 <br>vaginalAccessory: $activeSlave.vaginalAccessory
+<br>vaginalAttachment: $activeSlave.vaginalAttachment
 <br>dickAccessory: $activeSlave.dickAccessory
 <br>legAccessory: $activeSlave.legAccessory
 <br>buttplug: $activeSlave.buttplug
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index e7aeb004af56e34ca7e3f2469805cb0434070bd0..3f89746d099b6c779932d8008291d5ec32baaf68 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -1565,7 +1565,7 @@ As the remote surgery's long recovery cycle completes,
 	<</if>>
 	Naturally, @@.red;$his health has been greatly affected@@ by such serious surgery.
 	<<set $activeSlave.chastityVagina = 0>>
-	<<set $activeSlave.vaginalAccessory = "none">>
+	<<set $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none">>
 	<<if $activeSlave.cervixImplant == 1>>
 		<<set $activeSlave.cervixImplant = 0>>
 	<<elseif $activeSlave.cervixImplant == 3>>
diff --git a/src/uncategorized/walkPast.tw b/src/uncategorized/walkPast.tw
index 5c8f4312b09ef455edee2d65a802a1576f202730..3e153476a6e670abc89f1d25f81a911d34713e8a 100644
--- a/src/uncategorized/walkPast.tw
+++ b/src/uncategorized/walkPast.tw
@@ -1512,12 +1512,12 @@
 			<</if>>
 		<</switch>>
 		<<if ($activeSlave.vaginalAccessory == "long dildo") || ($activeSlave.vaginalAccessory == "long, large dildo") || ($activeSlave.vaginalAccessory == "long, huge dildo")>>
-			With every motion $he makes; $his dildo shifts, bulging out $his stomach.
+			With every motion $he makes, $his dildo shifts, bulging out $his stomach.
 			<<if ($activeSlave.buttPlug == "long plug") || ($activeSlave.buttPlug == "long, large plug") || ($activeSlave.buttPlug == "long, huge plug")>>
 				Beside it, a second bulge caused by $his extra long buttplug.
 			<</if>>
 		<<elseif ($activeSlave.buttPlug == "long plug") || ($activeSlave.buttPlug == "long, large plug") || ($activeSlave.buttPlug == "long, huge plug")>>
-			With every motion $he makes; $his buttplug shifts, bulging out $his stomach.
+			With every motion $he makes, $his buttplug shifts, bulging out $his stomach.
 		<</if>>
 	<</if>>
 	<<else>> /* implant descs */
diff --git a/src/uncategorized/wardrobe.tw b/src/uncategorized/wardrobe.tw
index 3fa1244f011f541ab4920bcc561755c6be3c0a15..71f666c603b1092a0187e650d936867d766ae003 100644
--- a/src/uncategorized/wardrobe.tw
+++ b/src/uncategorized/wardrobe.tw
@@ -14,7 +14,7 @@ The room containing all the clothes and accessories you have available to dress
 <</if>>
 <<if $toysBoughtDildos == 1 && $toysBoughtGags == 1 && $toysBoughtButtPlugs == 1>>
 	Sex toys of all kinds and shapes line the shelves.
-<<elseif $toysBoughtDildos == 1 || $toysBoughtGags == 1 || $toysBoughtButtPlugs == 1 || $toysBoughtButtPlugTails == 1>>
+<<elseif $toysBoughtDildos == 1 || $toysBoughtGags == 1 || $toysBoughtButtPlugs == 1 || $toysBoughtButtPlugTails == 1 || $toysBoughtVaginalAttachments == 1>>
 	Some sex toys line the shelves.
 <</if>>
 <<if $buckets == 1>>
@@ -275,6 +275,14 @@ The room containing all the clothes and accessories you have available to dress
 	You are well stocked with extra long dildos in a variety of sizes.
 <</if>>
 
+<br>
+<<if $toysBoughtVaginalAccessories == 0>>
+	[[Order a shipment of bullet vibes and vibrating dildos|Wardrobe][cashX(-10000, "capEx"), $toysBoughtVaginalAccessories = 1]]
+	//Costs <<print cashFormat(10000)>>//
+<<else>>
+	You are well stocked with bullet vibrators and vibrating dildos.
+<</if>>
+
 <br>
 <<if $toysBoughtButtPlugs == 0>>
 	[[Order a shipment of extra long buttplugs|Wardrobe][cashX(-10000, "capEx"), $toysBoughtButtPlugs = 1]]
diff --git a/src/uncategorized/wardrobeUse.tw b/src/uncategorized/wardrobeUse.tw
index 0bdca4851262cc9424927a1ae3692c635d37538e..5ebd2fe8eda8e94d2c1d6e21a95c22211e1134ec 100644
--- a/src/uncategorized/wardrobeUse.tw
+++ b/src/uncategorized/wardrobeUse.tw
@@ -1103,6 +1103,12 @@ Clothes: ''<span id="clothes">$activeSlave.clothes</span>.''
 		<<replace "#vaginalAccessoryDescription">>//<<vaginalAccessoryDescription>>//<</replace>>
 		<<replace "#buttplugDescription">>//<<buttplugDescription>>//<</replace>>
 	<</link>>
+	| <<link "Bullet vibrator">>
+		<<set $activeSlave.vaginalAccessory = "bullet vibrator">>
+		<<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>>
+		<<replace "#vaginalAccessoryDescription">>//<<vaginalAccessoryDescription>>//<</replace>>
+		<<replace "#buttplugDescription">>//<<buttplugDescription>>//<</replace>>
+	<</link>>
 	| <<link "Dildo">>
 		<<set $activeSlave.vaginalAccessory = "dildo">>
 		<<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>>
@@ -1147,6 +1153,29 @@ Clothes: ''<span id="clothes">$activeSlave.clothes</span>.''
 			<</link>>
 		<</if>>
 	<</if>>
+	<<if isItemAccessible("vibrator")>>
+		<br><br>
+		<<if $activeSlave.vaginalAccessory != "none">>
+			Vaginal accessory attachment:
+		<<else>>
+			Vaginal attachment:
+		<</if>>
+		''<span id="vaginalAttachment">$activeSlave.vaginalAttachment</span>.''
+		<span id="vaginalAttachmentDescription"><<if ($activeSlave.vaginalAttachment != "none")>><br><</if>>//<<vaginalAttachmentDescription>>//</span>
+		<br>
+		<<link "None">>
+			<<set $activeSlave.vaginalAttachment = "none">>
+			<<replace "#vaginalAttachment">>$activeSlave.vaginalAttachment<</replace>>
+			<<replace "#vaginalAttachmentDescription">>//<<vaginalAccessoryDescription>>//<</replace>>
+			<<replace "#buttplugDescription">>//<<buttplugDescription>>//<</replace>>	/* TODO: don't actually know if I need this - what is this for? */
+		<</link>>
+		| <<link "Vibrating dildo">>
+			<<set $activeSlave.vaginalAttachment = "vibrator">>
+			<<replace "#vaginalAttachment">>$activeSlave.vaginalAttachment<</replace>>
+			<<replace "#vaginalAttachmentDescription">>//<<vaginalAccessoryDescription>>//<</replace>>
+			<<replace "#buttplugDescription">>//<<buttplugDescription>>//<</replace>>
+		<</link>>
+	<</if>>
 <</if>>
 
 <<if $activeSlave.dick > 0>>
diff --git a/src/utility/descriptionWidgetsPiercings.tw b/src/utility/descriptionWidgetsPiercings.tw
index e8ce37f9618135373e0d30a7215618e2dfa6aec5..4b578189aaa8f2d617c7fe20ab01fb6328cf4976 100644
--- a/src/utility/descriptionWidgetsPiercings.tw
+++ b/src/utility/descriptionWidgetsPiercings.tw
@@ -287,7 +287,7 @@
 		<<if ($activeSlave.clothes == "slutty jewelry")>>
 			Since $he's wearing slutty bangles $he has a short length of light chain dangling from $his clit ring; it constantly stimulates $his pussylips.
 		<</if>>
-	<<elseif ($activeSlave.clitPiercing > 2) && ($activeSlave.vagina != -1) && ($activeSlave.dick == 0)>>
+	<<elseif ($activeSlave.clitPiercing == 3) && ($activeSlave.vagina != -1) && ($activeSlave.dick == 0)>>
 		$He has a smart piercing in $his clit.
 	<<elseif ($activeSlave.clitPiercing == 1)>>
 		$He has a simple dickhead stud.
@@ -296,7 +296,7 @@
 		<<if ($activeSlave.clothes == "slutty jewelry")>>
 			Since $he's wearing slutty bangles $he has a short length of light chain dangling from $his dickhead piercing; as $he moves it tugs lightly at $his cock.
 		<</if>>
-	<<elseif ($activeSlave.clitPiercing > 2)>>
+	<<elseif ($activeSlave.clitPiercing == 3)>>
 		$He has a smart frenulum piercing.
 	<</if>>
 	<<if $activeSlave.fuckdoll > 0>>It anchors the suit's material.<</if>>
diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw
index 2b0b582edda330f37207b01447bd35e48c6a45e8..3e1ba30373806b64e9bad71a994fd6c76e7c572c 100644
--- a/src/utility/descriptionWidgetsStyle.tw
+++ b/src/utility/descriptionWidgetsStyle.tw
@@ -5881,7 +5881,10 @@ $His
 	<</if>>
 <</if>>
 <<switch $activeSlave.vaginalAccessory>>
+<<case "bullet vibrator">>
+	/* TODO: write a description */
 <<case "dildo">>
+	/* TODO: these may need to be updated for slaves with gaping+ vaginas */
 	$His pussy is filled by a dildo held in place by a strap, which $he can remove for vaginal intercourse.
 <<case "long dildo">>
 	$His pussy is filled by a very long dildo held in place by a strap, which $he can remove for vaginal intercourse. It noticeably bulges $his stomach.
@@ -5914,6 +5917,15 @@ $His
 <</switch>>
 <</widget>>
 
+<<widget "vaginalAttachmentDescription">>
+<<switch $activeSlave.vaginalAttachment>>
+	/* TODO: not sure about this description */
+	$His pussy is filled with a vibrating dildo held in place by a strap, which $he can remove for for vaginal intercourse. $He looks distinctly uncomfortable as it buzzes every so often.
+	/* TODO: add descriptions for slaves with gaping+ vaginas */
+<<case "vibrator">>
+<</switch>>
+<</widget>>
+
 <<widget "dickAccessoryDescription">>
 	<<if ($activeSlave.chastityPenis == 1)>>
 		$His cock is encased in a tight chastity cage, which is designed to be comfortable as long as $he remains soft.