diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw
index b5cf0d49fd5734f562fa7b83468cf7c667106e83..9527ec3b1c02df6632c2be3eb048fab019def24f 100644
--- a/src/init/setupVars.tw
+++ b/src/init/setupVars.tw
@@ -328,7 +328,7 @@ equine: {type: "equine", normalOvaMin:1, normalOvaMax: 1, normalBirth: 48, minLi
 <<set setup.sluttyClothes = ["a bimbo outfit", "a chattel habit", "a cheerleader outfit", "a fallen nuns habit", "a schoolgirl outfit", "a skimpy loincloth", "a slutty klan robe", "a slutty maid outfit", "a slutty nurse outfit", "a slutty outfit", "a slutty pony outfit", "a slutty qipao", "a slutty schutzstaffel uniform", "a string bikini", "a succubus outfit", "a t-shirt and panties", "a t-shirt and thong", "a tank-top and panties", "a tube top and thong", "attractive lingerie", "attractive lingerie for a pregnant woman", "clubslut netting", "kitty lingerie", "leather pants and a tube top", "leather pants and pasties", "panties and pasties", "pasties", "slutty business attire", "slutty jewelry", "sport shorts and a sports bra", "striped underwear"]>>
 
 /* stuff that reveals genitals */
-<<set setup.humiliatingClothes = ["a bra", "a button-up shirt", "a button-up shirt and panties", "a chattel habit", "a fallen nuns habit", "a skimpy loincloth", "a sports bra", "a string bikini", "a striped bra", "a succubus outfit", "a sweater", "a t-shirt", "a tank-top", "a thong", "a tube top", "clubslut netting", "pasties", "restrictive latex", "shibari ropes", "slutty jewelry", "uncomfortable straps"]>>
+<<set setup.humiliatingClothes = ["a bra", "a button-up shirt", "a chattel habit", "a fallen nuns habit", "a skimpy loincloth", "a sports bra", "a string bikini", "a striped bra", "a succubus outfit", "a sweater", "a t-shirt", "a tank-top", "a thong", "a tube top", "clubslut netting", "pasties", "restrictive latex", "shibari ropes", "slutty jewelry", "uncomfortable straps"]>>
 
 <<set setup.highHeels = ["boots", "extreme heels", "extreme platform heels", "heels", "platform heels"]>>
 
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index f23ff8f23fa59697e9a7f83839f69a17c7df547c..dc2a097d59a25fc7fa1df398bdff0e8fea12bff7 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -569,15 +569,27 @@ window.Enunciate = function Enunciate(slave) {
  */
 window.fetishChangeChance = function fetishChangeChance(slave) {
 	let chance = 0,
+		fetish = (slave.fetishStrength / 4),
 		sex = 0;
 
 	if (slave.clitSetting !== slave.fetish) {
+		// fetish should be more uncertain leading towards puberty and then steadily become more set in stone afterwards
 		if (slave.balls) {
-			sex = V.potencyAge - slave.actualAge;
+			if (V.potencyAge >= slave.actualAge) {
+				sex = (50 - ((V.potencyAge - slave.actualAge) * 10));
+				fetish = (slave.fetishStrength / 2);
+			} else {
+				sex = ((slave.actualAge - V.potencyAge) / 4);
+			}
 		} else if (slave.ovaries || slave.mpreg) {
-			sex = V.fertilityAge - slave.actualAge;
+			if (V.fertilityAge >= slave.actualAge) {
+				sex = (50 - ((V.fertilityAge - slave.actualAge) * 10));
+				fetish = (slave.fetishStrength / 2);
+			} else {
+				sex = ((slave.actualAge - V.fertilityAge) / 4);
+			}
 		}
-		chance = Math.trunc(Math.clamp((slave.devotion / 4) - (slave.fetishStrength / 4) - (Math.max(sex, 0) * 10), 0, 100));
+		chance = Math.trunc(Math.clamp((slave.devotion / 4) - (fetish) - (sex), 0, 100));
 	}
 
 	return chance;