diff --git a/devTools/types/FC/RA.d.ts b/devTools/types/FC/RA.d.ts
index a7dbfbbdaf7ea25173b7eec3cf496466a3aaa078..c68f19732dd74ff2a61b640979e08fa4babd569b 100644
--- a/devTools/types/FC/RA.d.ts
+++ b/devTools/types/FC/RA.d.ts
@@ -92,7 +92,6 @@ declare namespace FC {
 			dickAccessory: string;
 			bellyAccessory: string;
 			aVirginButtplug: string;
-			buttplug: string;
 			vaginalAttachment: string;
 			buttplugAttachment: string;
 			iris: string;
diff --git a/src/endWeek/saClothes.js b/src/endWeek/saClothes.js
index 0abf5f1e2b96472cc80935c0cbb4f286ccb32cd6..30075c19d6384c3c14d08d3fd865829da542269d 100644
--- a/src/endWeek/saClothes.js
+++ b/src/endWeek/saClothes.js
@@ -1127,7 +1127,8 @@ App.SlaveAssignment.clothes = (function() {
 	 *
 	 */
 	function analAccessories(slave) {
-		if (slave.buttplug === "plug" || slave.buttplug === "long plug") {
+		const plugDiameter = plugWidth(slave);
+		if (plugDiameter === 1) {
 			if (["cat tail", "cow tail", "fox tail", "tail"].includes(slave.buttplugAttachment)) {
 				if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
 					if (slave.anus < 1) {
@@ -1142,7 +1143,7 @@ App.SlaveAssignment.clothes = (function() {
 						r.push(`It <span class="green">gets ${him} habituated to having ${his} asshole filled.</span>`);
 						slave.sexualFlaw = "none";
 					}
-					if (slave.sexualQuirk === "size queen" && slave.buttplug === "long plug") {
+					if (slave.sexualQuirk === "size queen" && plugLength(slave) > 1) {
 						r.push(`The overly long plug delving the depths of ${his} rear <span class="hotpink">gets ${him} off,</span> since ${he}'s a size queen.`);
 						slave.devotion += 2;
 					}
@@ -1159,13 +1160,13 @@ App.SlaveAssignment.clothes = (function() {
 						r.push(`It <span class="green">gets ${him} habituated to having ${his} asshole filled.</span>`);
 						slave.sexualFlaw = "none";
 					}
-					if (slave.sexualQuirk === "size queen" && slave.buttplug === "long plug") {
+					if (slave.sexualQuirk === "size queen" && plugLength(slave) > 1) {
 						r.push(`The overly long plug delving the depths of ${his} rear <span class="hotpink">gets ${him} off,</span> since ${he}'s a size queen.`);
 						slave.devotion += 2;
 					}
 				}
 			}
-		} else if (slave.buttplug === "large plug" || slave.buttplug === "long, large plug") {
+		} else if (plugDiameter === 2) {
 			if (["cat tail", "cow tail", "fox tail", "tail"].includes(slave.buttplugAttachment)) {
 				if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
 					if (slave.anus < 2) {
@@ -1233,7 +1234,7 @@ App.SlaveAssignment.clothes = (function() {
 					}
 				}
 			}
-		} else if (slave.buttplug === "huge plug" || slave.buttplug === "long, huge plug") {
+		} else if (plugDiameter === 3) {
 			if (["cat tail", "cow tail", "fox tail", "tail"].includes(slave.buttplugAttachment)) {
 				if (slave.anus < 4) {
 					if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
@@ -1308,7 +1309,7 @@ App.SlaveAssignment.clothes = (function() {
 						slave.fetishStrength = 10;
 					}
 				}
-			} else if (slave.buttplug === "plug" || slave.buttplug === "large plug" || slave.buttplug === "long, large plug" || slave.buttplug === "long plug") {
+			} else if (plugWidth(slave) > 0) {
 				if (slave.fetish === "buttslut" && slave.fetishKnown === 0) {
 					r.push(`${He} shows a surprising lack of resistance to the routine of getting the plug up ${his} butt in the morning; ${he} seems to <span class="lightcoral">naturally enjoy anal stimulation.</span>`);
 					slave.fetishKnown = 1;
diff --git a/src/endWeek/saLongTermMentalEffects.js b/src/endWeek/saLongTermMentalEffects.js
index ef0b21b94079e76f3a3a5bde86457534c72fa49a..cc3ceb57302550bd13e9e83ef9d0b3226734c6bc 100644
--- a/src/endWeek/saLongTermMentalEffects.js
+++ b/src/endWeek/saLongTermMentalEffects.js
@@ -1337,7 +1337,7 @@ App.SlaveAssignment.longTermMentalEffects = (function() {
 				} else if (V.suppository !== 0) {
 					r.push(`${His} paraphilia is satisfied by the way ${he} gets to take medication.`);
 					App.EndWeek.saVars.paraphiliaSatisfied = 1;
-				} else if (slave.buttplug === "huge plug" || slave.buttplug === "long, huge plug") {
+				} else if (plugWidth(slave) > 2) {
 					r.push(`${His} paraphilia is satisfied by the enormous plug ${he} wears in ${his} ass.`);
 					App.EndWeek.saVars.paraphiliaSatisfied = 1;
 				} else if (slave.assignment === "work in the dairy" && V.dairyStimulatorsSetting > 0) {
diff --git a/src/endWeek/saLongTermPhysicalEffects.js b/src/endWeek/saLongTermPhysicalEffects.js
index 65fbc8197b8a59efaa794ceebb7afed0630a30a6..b900d14cad38a796c175906622d970b80024d41e 100644
--- a/src/endWeek/saLongTermPhysicalEffects.js
+++ b/src/endWeek/saLongTermPhysicalEffects.js
@@ -236,7 +236,7 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 						if (slave.vagina >= 3 && !["huge dildo", "large dildo", "long, huge dildo", "long, large dildo"].includes(slave.vaginalAccessory)) {
 							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 && !["huge plug", "large plug", "long, huge plug", "long, large plug"].includes(slave.buttplug)) {
+						} else if (slave.anus >= 3 && plugWidth(slave) < 2) {
 							r.push(`With a rest from continual sodomy, <span class="improvement">${his} gaping anus recovers a little.</span>`);
 							slave.anus -= 1;
 						}
diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js
index 512c0f0950ba6da3dfea24604f229c5314722932..516e06e3e8e2d7ac1e6af9de0ef477bf78c4d90e 100644
--- a/src/interaction/main/walkPast.js
+++ b/src/interaction/main/walkPast.js
@@ -8376,10 +8376,10 @@ globalThis.walkPast = (function() {
 		}
 		if ((slave.vaginalAccessory === "long dildo") || (slave.vaginalAccessory === "long, large dildo") || (slave.vaginalAccessory === "long, huge dildo")) {
 			t += `With every motion ${he} makes, ${his} dildo shifts, bulging out ${his} stomach.`;
-			if ((slave.buttplug === "long plug") || (slave.buttplug === "long, large plug") || (slave.buttplug === "long, huge plug")) {
+			if (plugLength(slave) > 1) {
 				t += `Beside it, a second bulge caused by ${his} extra long buttplug.`;
 			}
-		} else if ((slave.buttplug === "long plug") || (slave.buttplug === "long, large plug") || (slave.buttplug === "long, huge plug")) {
+		} else if (plugLength(slave) > 1) {
 			t += `With every motion ${he} makes, ${his} buttplug shifts, bulging out ${his} stomach.`;
 		}
 
@@ -8966,10 +8966,10 @@ globalThis.walkPast = (function() {
 		}
 		if ((slave.vaginalAccessory === "long dildo") || (slave.vaginalAccessory === "long, large dildo") || (slave.vaginalAccessory === "long, huge dildo")) {
 			t += `With every motion ${he} makes, ${his} dildo shifts, bulging out ${his} stomach.`;
-			if ((slave.buttplug === "long plug") || (slave.buttplug === "long, large plug") || (slave.buttplug === "long, huge plug")) {
+			if (plugLength(slave) > 1) {
 				t += `Beside it, a second bulge caused by ${his} extra long buttplug.`;
 			}
-		} else if ((slave.buttplug === "long plug") || (slave.buttplug === "long, large plug") || (slave.buttplug === "long, huge plug")) {
+		} else if (plugLength(slave) > 1) {
 			t += `With every motion ${he} makes, ${his} buttplug shifts, bulging out ${his} stomach.`;
 		}
 
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index 69d25cc39e3de80951bf931d8a0367b404dfd774..de1809507cc92c5ac159594ed6110b4d5fca8c19 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -991,7 +991,7 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (["huge plug", "large plug", "long, huge plug", "long, large plug"].includes(eventSlave.buttplug)) {
+			if (plugWidth(eventSlave) > 1) {
 				if (eventSlave.assignment !== Job.CONFINEMENT && isSlaveAvailable(eventSlave)) {
 					if (eventSlave.devotion <= 20) {
 						if (eventSlave.trust >= -50) {
@@ -2049,7 +2049,7 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (["huge plug", "large plug", "long, huge plug", "long, large plug"].includes(eventSlave.buttplug)) {
+			if (plugWidth(eventSlave) > 1) {
 				if (isSlaveAvailable(eventSlave)) {
 					if (eventSlave.devotion <= 20) {
 						if (eventSlave.trust >= -50) {
diff --git a/src/js/utilsAssessSlave.js b/src/js/utilsAssessSlave.js
index 7120c7da44d566ce1e591c7c552b8416b2a09ee5..5dfda9f45376541bcf3a49cdc56a67136472f72a 100644
--- a/src/js/utilsAssessSlave.js
+++ b/src/js/utilsAssessSlave.js
@@ -269,3 +269,21 @@ globalThis.shoeHeight = function(slave) {
 	return heelHeight + platformHeight;
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {0|1|2|3}
+ */
+globalThis.plugWidth = function(slave) {
+	return App.Data.buttplugs.get(slave.buttplug) ? App.Data.buttplugs.get(slave.buttplug).width : 0;
+};
+
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {0|1|2|3}
+ */
+globalThis.plugLength = function(slave) {
+	return App.Data.buttplugs.get(slave.buttplug) ? App.Data.buttplugs.get(slave.buttplug).length : 0;
+};
+
+
+
diff --git a/src/npc/interaction/fFeelings.tw b/src/npc/interaction/fFeelings.tw
index dafa73b59919e7683d3d7612d05beff52e6b412b..7aab4a8cbafc394567c3d42d5fae3986def5a249 100644
--- a/src/npc/interaction/fFeelings.tw
+++ b/src/npc/interaction/fFeelings.tw
@@ -569,11 +569,11 @@ My favorite part of my body i<<s>>
 					I'm <<s>>o horny, <<Master>>. I can't <<s>>top <<s>>taring at <<if $PC.dick != 0>>cock<<s>> and imagining them down my throat, cumming and cumming<<else>>pu<<ss>>ie<<s>> and imagining how their jui<<c>>e<<s>> <<if canTaste(getSlave($AS))>>ta<<s>>te<<else>>feel on my <<s>>kin<</if>><</if>>.
 				<<case "buttslut">>
 					I'm <<s>>o horny, <<Master>>.
-					<<if (["long plug", "plug"].includes(getSlave($AS).buttplug) && getSlave($AS).anus > 2) >>
+					<<if (plugWidth(getSlave($AS)) == 1) && getSlave($AS).anus > 2) >>
 						I wear the buttplug you gave me, but it i<<s>> <<s>>o <<s>>mall... It remind<<s>> me of being fucked in the a<<ss>>, but I can barely feel it. It drive<<s>> me crazy.
-					<<elseif (["long plug", "plug"].includes(getSlave($AS).buttplug) && getSlave($AS).anus < 3) || (["large plug", "long, large plug"].includes(getSlave($AS).buttplug) && getSlave($AS).anus == 3) || (["huge plug", "long, huge plug"].includes(getSlave($AS).buttplug) && getSlave($AS).anus >= 4) >>
+					<<elseif (plugWidth(getSlave($AS)) == 1 && getSlave($AS).anus < 3) || plugWidth(getSlave($AS)) == 2 && getSlave($AS).anus == 3) || plugWidth(getSlave($AS)) == 3 && getSlave($AS).anus >= 4) >>
 						Thank you for the buttplug. It i<<s>> really fun to have my a<<ss>> filled all day long.
-					<<elseif (["large plug", "long, large plug"].includes(getSlave($AS).buttplug) && getSlave($AS).anus < 3) || (["huge plug", "long, huge plug"].includes(getSlave($AS).buttplug) && getSlave($AS).anus < 4) >>
+					<<elseif (plugWidth(getSlave($AS)) == 2 && getSlave($AS).anus < 3) || plugWidth(getSlave($AS)) > 2 && getSlave($AS).anus < 4) >>
 						I like it up the a<<ss>>, but the plug you make me wear i<<s>> too big. It really hurt<<s>>. Not in the good way.
 					<<else>>
 						My anu<<s>> i<<s>> killing me, all I want to do i<<s>> touch it and ma<<ss>>age it and fill it.
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index 7fdff1f7b9884a92e64689854e17ca09cc5c7aec..95f4f03261840e4baecb41e7d509c16a664b9ee0 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -425,7 +425,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 			<br><br>
 			<<run Enunciate(_Inspectee)>>
 			<<if (_Inspectee.devotion < 10)>>
-				<<if (_Inspectee.buttplug == "large plug") || (_Inspectee.buttplug == "huge plug") || (_Inspectee.buttplug == "long, large plug") || (_Inspectee.buttplug == "long, huge plug")>>
+				<<if (plugWidth(_slave) > 1)>>
 					"W-well," $he says, "I wear a buttplug." The inspector frowns.
 					<<run Enunciate(_slave)>>
 					"A buttplug <<sh>>ouldn't do that!"
@@ -447,7 +447,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 					The slave looks worried and replies, "I-it'<<s>> a hole, right? I get fucked in all my hole<<s>>." The inspector is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
 				<</if>>
 			<<else>>
-				<<if (_Inspectee.buttplug == "large plug") || (_Inspectee.buttplug == "huge plug") || (_Inspectee.buttplug == "long, large plug") || (_Inspectee.buttplug == "long, huge plug")>>
+				<<if (plugWidth(_slave) > 1)>>
 					"I wear a buttplug!" $he says confidently. The inspector frowns.
 					<<run Enunciate(_slave)>>
 					"A buttplug <<sh>>ouldn't do that!"