diff --git a/src/endWeek/saClothes.js b/src/endWeek/saClothes.js
index 30075c19d6384c3c14d08d3fd865829da542269d..5c8076cc91c0d99c6bb14a9d114b3da6e9368f3c 100644
--- a/src/endWeek/saClothes.js
+++ b/src/endWeek/saClothes.js
@@ -920,9 +920,10 @@ App.SlaveAssignment.clothes = (function() {
 	 *
 	 */
 	function vaginaAccessories(slave) {
+		const dildo = App.Data.vaginalAccessories.get(slave.vaginalAccessory) || V.customItem.vaginalAccessories.get(slave.vaginalAccessory);
 		if (slave.vaginalAccessory !== "none") {
-			if (slave.vaginalAccessory === "bullet vibrator" || slave.vaginalAccessory === "smart bullet vibrator") {
-				r.push(`Constantly wearing a bullet vibrator`);
+			if (dildo.width === 0) {
+				r.push(`Constantly wearing a ${slave.vaginalAccessory}`);
 				if (slave.devotion < 20) {
 					r.push(`habituates ${him} to sexual slavery and <span class="hotpink">increases ${his} submissiveness.</span>`);
 					slave.devotion += 2;
@@ -930,7 +931,7 @@ App.SlaveAssignment.clothes = (function() {
 					r.push(`reminds ${him} of ${his} place and <span class="hotpink">increases ${his} devotion to you.</span>`);
 					slave.devotion++;
 				}
-			} else if (slave.vaginalAccessory === "dildo") {
+			} else if (dildo.width === 1) {
 				if (slave.vagina < 1 && jsRandom(1, 100) > 50) {
 					r.push(`Constantly wearing a dildo in ${his} virgin pussy <span class="lime">gets it used to penetration.</span>`);
 					slave.vagina += 1;
@@ -943,29 +944,16 @@ App.SlaveAssignment.clothes = (function() {
 						slave.sexualFlaw = "none";
 					}
 				}
-			} else if (slave.vaginalAccessory === "long dildo") {
-				if (slave.vagina < 1 && jsRandom(1, 100) > 50) {
-					r.push(`Constantly wearing a dildo in ${his} virgin pussy <span class="lime">gets it used to penetration.</span>`);
-					slave.vagina += 1;
-				} else {
-					r.push(`${His} pussy easily accommodates the dildo ${he}'s required to wear.`);
-				}
-				if (slave.fuckdoll === 0) {
-					if (slave.fetish !== "mindbroken") {
-						if (slave.sexualFlaw === "hates penetration" && jsRandom(1, 100) > 50) {
-							r.push(`The habit <span class="green">reduces ${his} dislike of having ${his} pussy filled.</span>`);
-							slave.sexualFlaw = "none";
-						}
-						if (slave.sexualQuirk === "size queen") {
-							r.push(`Being able to hold such a long dildo is a <span class="hotpink">point of pride</span> for the ostentatious size queen.`);
-							slave.devotion += 2;
-						} else {
-							r.push(`It penetrates ${his} cervix causing ${him} tremendous discomfort, making ${him} a little <span class="gold">less trusting</span> of you.`);
-							slave.trust -= 1;
-						}
+				if (dildo.length > 1) {
+					if (slave.sexualQuirk === "size queen") {
+						r.push(`Being able to hold such a long dildo is a <span class="hotpink">point of pride</span> for the ostentatious size queen.`);
+						slave.devotion += 2;
+					} else {
+						r.push(`It penetrates ${his} cervix causing ${him} tremendous discomfort, making ${him} a little <span class="gold">less trusting</span> of you.`);
+						slave.trust -= 1;
 					}
 				}
-			} else if (slave.vaginalAccessory === "large dildo") {
+			} else if (dildo.width === 2) {
 				if (slave.vagina < 3) {
 					if (jsRandom(1, 4) === 1) {
 						r.push(`Constantly wearing a large dildo in ${his} pussy <span class="lime">stretches it out.</span>`);
@@ -979,105 +967,93 @@ App.SlaveAssignment.clothes = (function() {
 				if (slave.fuckdoll === 0) {
 					if (slave.fetish !== "mindbroken") {
 						if (slave.vagina < 2) {
-							r.push(`The big dildo in ${his} tight cunt`);
-							if (slave.sexualQuirk === "size queen") {
-								r.push(`is a <span class="hotpink">point of pride</span> for the ostentatious size queen.`);
-								slave.devotion += 2;
-							} else {
-								r.push(`<span class="hotpink">breaks ${him} to sexual slavery</span> slightly.`);
-								slave.devotion += 1;
-							}
-							if (slave.vagina === 1) {
-								r.push(`It stretches ${his} tight cunt to soreness by the end of every day, so it also makes ${him} a little <span class="gold">less trusting</span> of you.`);
-								slave.trust -= 1;
-							}
-						}
-					}
-				}
-			} else if (slave.vaginalAccessory === "long, large dildo") {
-				if (slave.vagina < 3) {
-					if (jsRandom(1, 4) === 1) {
-						r.push(`Constantly wearing a large dildo in ${his} pussy <span class="lime">stretches it out.</span>`);
-						slave.vagina += 1;
-					} else {
-						r.push(`The large dildo ${he}'s required to wear is a stretch for ${his} cunt, but pussies are resilient and ${he}rs isn't seriously affected.`);
-					}
-				} else {
-					r.push(`${His} pussy accommodates the large dildo ${he}'s required to wear.`);
-				}
-				if (slave.vagina < 2) {
-					if (slave.fuckdoll === 0) {
-						if (slave.fetish !== "mindbroken") {
-							r.push(`The big, long dildo in ${his} tight cunt`);
-							if (slave.sexualQuirk === "size queen") {
-								r.push(`is a <span class="hotpink">point of pride</span> for the ostentatious size queen.`);
-								slave.devotion += 2;
+							if (dildo.length === 1) {
+								r.push(`The big dildo in ${his} tight cunt`);
+								if (slave.sexualQuirk === "size queen") {
+									r.push(`is a <span class="hotpink">point of pride</span> for the ostentatious size queen.`);
+									slave.devotion += 2;
+								} else {
+									r.push(`<span class="hotpink">breaks ${him} to sexual slavery</span> slightly.`);
+									slave.devotion += 1;
+								}
+								if (slave.vagina === 1) {
+									r.push(`It stretches ${his} tight cunt to soreness by the end of every day, so it also makes ${him} a little <span class="gold">less trusting</span> of you.`);
+									slave.trust -= 1;
+								}
 							} else {
-								r.push(`<span class="hotpink">breaks ${him} to sexual slavery</span> slightly. It also penetrates ${his} cervix, causing ${him} tremendous discomfort, and making ${him} a little <span class="gold">less trusting</span> of you.`);
-								slave.devotion += 1;
-								slave.trust -= 1;
-							}
-							if (slave.vagina === 1) {
-								r.push(`It stretches ${his} tight cunt to soreness by the end of every day, so it also makes ${him} a little <span class="gold">less trusting</span> of you.`);
-								slave.trust -= 1;
+								r.push(`The big, long dildo in ${his} tight cunt`);
+								if (slave.sexualQuirk === "size queen") {
+									r.push(`is a <span class="hotpink">point of pride</span> for the ostentatious size queen.`);
+									slave.devotion += 2;
+								} else {
+									r.push(`<span class="hotpink">breaks ${him} to sexual slavery</span> slightly. It also penetrates ${his} cervix, causing ${him} tremendous discomfort, and making ${him} a little <span class="gold">less trusting</span> of you.`);
+									slave.devotion += 1;
+									slave.trust -= 1;
+								}
+								if (slave.vagina === 1) {
+									r.push(`It stretches ${his} tight cunt to soreness by the end of every day, so it also makes ${him} a little <span class="gold">less trusting</span> of you.`);
+									slave.trust -= 1;
+								}
 							}
 						}
 					}
 				}
-			} else if (slave.vaginalAccessory === "huge dildo") {
-				if (slave.vagina < 4) {
-					if (slave.fuckdoll === 0) {
-						if (slave.fetish !== "mindbroken") {
-							if (slave.sexualQuirk === "size queen") {
-								r.push(`${He} thinks of the massive dildo stretching out ${his} womanhood as <span class="lime">preparation for the biggest cocks,</span> and <span class="hotpink">looks forward</span> to take anything — dicks, hands, truly anything — inside ${his} newly capacious cunt.`);
-								slave.devotion += 4;
-							} else if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
-								r.push(`${He} gets off on the agony of having ${his} cunt <span class="lime">permanently stretched</span> by a huge dildo. The terrible combination of pain and pleasure <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
-								slave.devotion += 5;
-								slave.trust -= 5;
-							} else if (slave.fetish === "submissive" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
-								r.push(`${He} submits to the agony of having ${his} cunt <span class="lime">permanently stretched</span> by a huge dildo. Having ${his} hole ruined at your whim <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
-								slave.devotion += 5;
-								slave.trust -= 5;
-							} else {
-								r.push(`The agony of having ${his} cunt <span class="lime">permanently stretched</span> by a huge dildo fills ${him} with <span class="mediumorchid">resentment</span> and <span class="gold">fear.</span>`);
-								slave.devotion -= 5;
-								slave.trust -= 5;
+			} else if (dildo.width === 3) {
+				if (dildo.length === 1) {
+					if (slave.vagina < 4) {
+						if (slave.fuckdoll === 0) {
+							if (slave.fetish !== "mindbroken") {
+								if (slave.sexualQuirk === "size queen") {
+									r.push(`${He} thinks of the massive dildo stretching out ${his} womanhood as <span class="lime">preparation for the biggest cocks,</span> and <span class="hotpink">looks forward</span> to take anything — dicks, hands, truly anything — inside ${his} newly capacious cunt.`);
+									slave.devotion += 4;
+								} else if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
+									r.push(`${He} gets off on the agony of having ${his} cunt <span class="lime">permanently stretched</span> by a huge dildo. The terrible combination of pain and pleasure <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
+									slave.devotion += 5;
+									slave.trust -= 5;
+								} else if (slave.fetish === "submissive" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
+									r.push(`${He} submits to the agony of having ${his} cunt <span class="lime">permanently stretched</span> by a huge dildo. Having ${his} hole ruined at your whim <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
+									slave.devotion += 5;
+									slave.trust -= 5;
+								} else {
+									r.push(`The agony of having ${his} cunt <span class="lime">permanently stretched</span> by a huge dildo fills ${him} with <span class="mediumorchid">resentment</span> and <span class="gold">fear.</span>`);
+									slave.devotion -= 5;
+									slave.trust -= 5;
+								}
 							}
 						}
+						slave.vagina += 1;
+					} else {
+						r.push(`${His} cavernous pussy accommodates the huge dildo ${he}'s required to wear.`);
 					}
-					slave.vagina += 1;
-				} else {
-					r.push(`${His} cavernous pussy accommodates the huge dildo ${he}'s required to wear.`);
-				}
-			} else if (slave.vaginalAccessory === "long, huge dildo") {
-				if (slave.vagina < 4) {
-					if (slave.fuckdoll === 0) {
-						if (slave.fetish !== "mindbroken") {
-							if (slave.sexualQuirk === "size queen") {
-								r.push(`${He} thinks of the massive dildo stretching out ${his} womanhood and stomach as <span class="lime">preparation for the biggest cocks,</span> and <span class="hotpink">looks forward</span> to take anything — dicks, hands, arms, truly anything — inside ${his} newly capacious cunt.`);
-								slave.devotion += 4;
-							} else if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
-								r.push(`${He} gets off on the agony of having ${his} cunt <span class="lime">permanently stretched</span> and ${his} cervix penetrated by a huge dildo. The terrible combination of pain and pleasure <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
-								slave.devotion += 5;
-								slave.trust -= 5;
-							} else if (slave.fetish === "submissive" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
-								r.push(`${He} submits to the agony of having ${his} cunt <span class="lime">permanently stretched</span> and ${his} cervix penetrated by a huge dildo. Having ${his} hole and cervix ruined at your whim <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
-								slave.devotion += 5;
-								slave.trust -= 5;
-							} else {
-								r.push(`The agony of having ${his} cunt <span class="lime">permanently stretched</span> and ${his} cervix penetrated by a huge dildo fills ${him} with <span class="mediumorchid">resentment</span> and <span class="gold">fear.</span>`);
-								slave.devotion -= 5;
-								slave.trust -= 5;
+				} else  {
+					if (slave.vagina < 4) {
+						if (slave.fuckdoll === 0) {
+							if (slave.fetish !== "mindbroken") {
+								if (slave.sexualQuirk === "size queen") {
+									r.push(`${He} thinks of the massive dildo stretching out ${his} womanhood and stomach as <span class="lime">preparation for the biggest cocks,</span> and <span class="hotpink">looks forward</span> to take anything — dicks, hands, arms, truly anything — inside ${his} newly capacious cunt.`);
+									slave.devotion += 4;
+								} else if (slave.fetish === "masochist" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
+									r.push(`${He} gets off on the agony of having ${his} cunt <span class="lime">permanently stretched</span> and ${his} cervix penetrated by a huge dildo. The terrible combination of pain and pleasure <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
+									slave.devotion += 5;
+									slave.trust -= 5;
+								} else if (slave.fetish === "submissive" && slave.fetishKnown === 1 && slave.fetishStrength > 60) {
+									r.push(`${He} submits to the agony of having ${his} cunt <span class="lime">permanently stretched</span> and ${his} cervix penetrated by a huge dildo. Having ${his} hole and cervix ruined at your whim <span class="hotpink">breaks ${his} will</span> but fills ${him} with <span class="gold">fear.</span>`);
+									slave.devotion += 5;
+									slave.trust -= 5;
+								} else {
+									r.push(`The agony of having ${his} cunt <span class="lime">permanently stretched</span> and ${his} cervix penetrated by a huge dildo fills ${him} with <span class="mediumorchid">resentment</span> and <span class="gold">fear.</span>`);
+									slave.devotion -= 5;
+									slave.trust -= 5;
+								}
 							}
 						}
+						slave.vagina += 1;
+					} else {
+						r.push(`${His} cavernous pussy accommodates the huge dildo ${he}'s required to wear.`);
 					}
-					slave.vagina += 1;
-				} else {
-					r.push(`${His} cavernous pussy accommodates the huge dildo ${he}'s required to wear.`);
 				}
 			}
-			if (slave.vaginalAccessory === "long, huge dildo" || slave.vaginalAccessory === "long, large dildo" || slave.vaginalAccessory === "long dildo") {
+			if (dildo.length > 1) {
 				if ((slave.preg > slave.pregData.normalBirth / 10) && slave.pregKnown === 1) {
 					if (jsRandom(1, 100) > 50) {
 						r.push(`The dildo penetrating ${his} womb <span class="orange">caused ${him} to miscarry,</span> which <span class="health dec">damages ${his} health.</span>`);
diff --git a/src/endWeek/saLongTermPhysicalEffects.js b/src/endWeek/saLongTermPhysicalEffects.js
index b900d14cad38a796c175906622d970b80024d41e..c5238e801b77a78108b47354d897f669db6b1a41 100644
--- a/src/endWeek/saLongTermPhysicalEffects.js
+++ b/src/endWeek/saLongTermPhysicalEffects.js
@@ -233,7 +233,7 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			if (slave.assignment !== "serve in the master suite" || V.masterSuiteUpgradeLuxury < 2) {
 				if (slave.assignment !== "work in the dairy" || V.dairyStimulatorsSetting === 0) {
 					if (slave.geneMods.rapidCellGrowth !== 1) {
-						if (slave.vagina >= 3 && !["huge dildo", "large dildo", "long, huge dildo", "long, large dildo"].includes(slave.vaginalAccessory)) {
+						if (slave.vagina >= 3 && dildoWidth(slave) < 2) {
 							r.push(`With a rest from strenuous use, <span class="improvement">${his} loose vagina recovers a little.</span>`);
 							slave.vagina -= 1;
 						} else if (slave.anus >= 3 && plugWidth(slave) < 2) {
diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js
index 516e06e3e8e2d7ac1e6af9de0ef477bf78c4d90e..4e7e2a8267e464aa028447e84de82fe004130a71 100644
--- a/src/interaction/main/walkPast.js
+++ b/src/interaction/main/walkPast.js
@@ -8374,7 +8374,7 @@ globalThis.walkPast = (function() {
 					t += `You get a good view of ${his} pussy.`;
 				}
 		}
-		if ((slave.vaginalAccessory === "long dildo") || (slave.vaginalAccessory === "long, large dildo") || (slave.vaginalAccessory === "long, huge dildo")) {
+		if (dildoLength(slave) > 1) {
 			t += `With every motion ${he} makes, ${his} dildo shifts, bulging out ${his} stomach.`;
 			if (plugLength(slave) > 1) {
 				t += `Beside it, a second bulge caused by ${his} extra long buttplug.`;
@@ -8964,7 +8964,7 @@ globalThis.walkPast = (function() {
 					t += `You get a good view of ${his} pussy.`;
 				}
 		}
-		if ((slave.vaginalAccessory === "long dildo") || (slave.vaginalAccessory === "long, large dildo") || (slave.vaginalAccessory === "long, huge dildo")) {
+		if (dildoLength(slave) > 1) {
 			t += `With every motion ${he} makes, ${his} dildo shifts, bulging out ${his} stomach.`;
 			if (plugLength(slave) > 1) {
 				t += `Beside it, a second bulge caused by ${his} extra long buttplug.`;
diff --git a/src/js/utilsAssessSlave.js b/src/js/utilsAssessSlave.js
index 5dfda9f45376541bcf3a49cdc56a67136472f72a..9ee50e6d472a287ffc0febce0ee77540e6fc35b8 100644
--- a/src/js/utilsAssessSlave.js
+++ b/src/js/utilsAssessSlave.js
@@ -285,5 +285,23 @@ globalThis.plugLength = function(slave) {
 	return App.Data.buttplugs.get(slave.buttplug) ? App.Data.buttplugs.get(slave.buttplug).length : 0;
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {0|1|2|3}
+ */
+globalThis.dildoWidth = function(slave) {
+	const dildo = App.Data.vaginalAccessories.get(slave.vaginalAccessory) || V.customItem.vaginalAccessories.get(slave.vaginalAccessory);
+	return dildo.width || 0;
+};
+
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {0|1|2|3}
+ */
+globalThis.dildoLength = function(slave) {
+	const dildo = App.Data.vaginalAccessories.get(slave.vaginalAccessory) || V.customItem.vaginalAccessories.get(slave.vaginalAccessory);
+	return dildo.length || 0;
+};
+