diff --git a/src/js/utilsMisc.js b/src/js/utilsMisc.js
index 44f25d926327af791496ea566b1f5bbe0e1708b5..5fc36bc66be823e4daa59c019ce2cebf5d57b8a4 100644
--- a/src/js/utilsMisc.js
+++ b/src/js/utilsMisc.js
@@ -400,7 +400,7 @@ globalThis.weightedRandom = function(values) {
  * @returns {number}
  */
 globalThis.penetrativeSocialUse = function(slave = null) {
-	let total = 0;
+	let total = 10;
 	if (V.policies.sexualOpenness) {
 		total += 40 + 20 * (Math.clamp(V.rep - 5000, 0, 12000) / 12000); // penetrative campaign, related to reputation, (40 to 60)
 	}
@@ -408,6 +408,8 @@ globalThis.penetrativeSocialUse = function(slave = null) {
 	total += FutureSocieties.isActive("FSGenderRadicalist") ? 25 : 0;
 	total += [0, 15, 20, 0, 5][V.arcologies[0].FSGenderRadicalistLawFuta]; // 15 futas, 20 big dicks & balls, 5 small dicks
 	total += FutureSocieties.isActive("FSNull") ? 15 : 0;
+	total += FutureSocieties.isActive("FSHedonisticDecadence") ? 15 : 0;
+	total += FutureSocieties.isActive("FSRepopulationFocus") ? 5 : 0;
 	total += V.arcologies[0].FSRepopulationFocusLaw * 10;
 
 	total -= FutureSocieties.isActive("FSGenderFundamentalist") ? 25 : 0;
@@ -415,7 +417,6 @@ globalThis.penetrativeSocialUse = function(slave = null) {
 	total -= FutureSocieties.isActive("FSEdoRevivalist") ? 10 : 0;
 	total -= FutureSocieties.isActive("FSArabianRevivalist") ? 10 : 0;
 	total -= FutureSocieties.isActive("FSChineseRevivalist") ? 10 : 0;
-	total -= FutureSocieties.isActive("FSRestart") ? 25 : 0;
 	total -= V.arcologies[0].FSRestartSMR ? 30 : 0;
 	total -= FutureSocieties.isActive("FSAztecRevivalist") ? 10 : 0;
 	total -= FutureSocieties.isActive("FSNeoImperialist") ? 10 : 0;
@@ -432,26 +433,35 @@ globalThis.penetrativeSocialUse = function(slave = null) {
 		if (FutureSocieties.isActive("FSSubjugationist")) {
 			total += V.arcologies[0].FSSubjugationistRace === slave.race ? 20 : 0;
 		}
+		if (FutureSocieties.isActive("FSRestart")) {
+			total -= isVirile(slave) ? 40 : 0;
+		}
+		total += slave.prestige * 5;
+		total += Math.pow(slave.porn.prestige, 3);
+		// in the future, consider some sort of penetrative pornstar bonus here
 	}
 
-	let haveDick =V.slaves.filter(s => s.dick > 0).length;
-	if (haveDick) {
-		let withDick = (haveDick / V.slaves.length); // percentage of slaves with dicks
-		total += withDick > .2 ? 15 * withDick : 0;
-		let toyHole = V.slaves.filter(s => s.toyHole === "dick").length;
-		total += 10 * (toyHole / haveDick);
-		/* let penetrativeAverage = 0;
-		V.slaves.filter(s => s.dick > 0).forEach(s1 => {
-			penetrativeAverage += s1.skill.penetrative;
-		});
-		total += (penetrativeAverage / haveDick) * .1; */
-	}
 	if (V.seeDicks === 0 && total > 0) {
 		total *= .6;
 	} else if (V.seeDicks > 25) {
 		total += V.seeDicks < 75 ? V.seeDicks * .10 : V.seeDicks * .08;
 	}
 
+	if (total >= 40) { // Once dicks are trendy, availability starts to increase interest
+		let haveDick =V.slaves.filter(s => s.dick > 0).length;
+		if (haveDick) {
+			let withDick = (haveDick / V.slaves.length); // percentage of slaves with dicks
+			total += withDick > .2 ? 15 * withDick : 0;
+			let toyHole = V.slaves.filter(s => s.toyHole === "dick").length;
+			total += 10 * (toyHole / haveDick);
+			/* let penetrativeAverage = 0;
+			V.slaves.filter(s => s.dick > 0).forEach(s1 => {
+				penetrativeAverage += s1.skill.penetrative;
+			});
+			total += (penetrativeAverage / haveDick) * .1; */
+		}
+	}
+
 	total = Math.clamp(Math.floor(total), 0, 100);
 	return total;
 }