diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index d5ad7ec97c20f017e78e8d43254a474cc0f3fae1..5458c4f6bd99d4a8e1f742ac707dbbc259cd75f1 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -207,7 +207,7 @@ You should have received a copy of the GNU General Public License along with thi
 <</if>>
 
 <<set $organs = []>>
-<<set $ArcadeiIDs = [], $BrothiIDs = [], $CellBiIDs = [], $CliniciIDs = [], $ClubiIDs = [], $DairyiIDs = [], $FarmyardiIDs = [], $HGSuiteiIDs = [], $MastSiIDs = [], $SchlRiIDs = [], $ServQiIDs = [], $SpaiIDs = [], $NurseryiIDs = []>>
+<<set $ArcadeiIDs = [], $BrothiIDs = [], $CellBiIDs = [], $CliniciIDs = [], $ClubiIDs = [], $DairyiIDs = [], $FarmyardiIDs = [], $HGSuiteiIDs = [], $MastSiIDs = [], $SchlRiIDs = [], $ServQiIDs = [], $SpaiIDs = [], $NurseryiIDs = [], $gloryiIDs = []>>
 
 <<setupLastWeeksCash>>
 
@@ -1129,6 +1129,8 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 <<set $ASlaves = 900>>
 <<set $AProsperityCap = 120>>
 
+<<set $arcadeDemand = 21840>>
+
 <<set $food = 50000>>
 <<set $foodLastWeek = 0>>
 <<set $foodProduced = 0>>
@@ -1189,6 +1191,7 @@ DairyRestraintsSetting($dairyRestraintsSetting)
 
 <<set $menials = 0>>
 <<set $fuckdolls = 0>>
+<<set $fuckdollsArcade = 0>>
 <<set $menialBioreactors = 0>>
 <<set $prestigeAuctioned = 0>>
 <<set $slaveMarketLimit = 20>>
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 233cd43cce8a562a3540048a125450434b780e27..d96243b27ddcafdd596061bfc1a56a593dab4b4c 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -1282,6 +1282,10 @@ window.EconomyDatatypeCleanup = function EconomyDatatypeCleanup() {
 	if (V.TCRent !== 0) {
 		V.TCRent =  Math.max(+V.TCRent, 0) || 650;
 	}
+
+	if (V.arcadeDemand !== 0) {
+		V.arcadeDemand = Math.max(+V.arcadeDemand, 0) || V.lowerClass * 7;
+	}
 };
 
 window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() {
@@ -1294,6 +1298,7 @@ window.ArcologyDatatypeCleanup = function ArcologyDatatypeCleanup() {
 
 	V.menials = Math.max(+V.menials, 0) || 0;
 	V.fuckdolls = Math.max(+V.fuckdolls, 0) || 0;
+	V.fuckdollsArcade = Math.max(+V.fuckdollsArcade, 0) || 0;
 	V.menialBioreactors = Math.max(+V.menialBioreactors, 0) || 0;
 
 	V.ACitizens = Math.max(+V.ACitizens, 0) || 0;
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index f2f935af3f7ae704238ad35e8949aa2525d846cc..ee7e884a7481d8477c64c2fd5250aacbed3ff04b 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -2641,6 +2641,10 @@ Setting missing global variables:
 	<</for>>
 <</if>>
 
+<<if ndef $gloryiIDs>>
+	<<set $gloryiIDs = []>>
+<</if>>
+
 <<if ndef $food>>
 	<<set $food = 50000>>
 <</if>>
diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw
index a4a97162e58d87436405ca979eca488bc230844e..61f94cc466c30bfa986f65c6cb87254c035ecc43 100644
--- a/src/uncategorized/arcmgmt.tw
+++ b/src/uncategorized/arcmgmt.tw
@@ -1143,11 +1143,11 @@ You own
 
 <<if $fuckdolls > 0 || $fuckdollsArcade > 0>> 
 	<<if $arcadeDemand > 0>>
-		<<set _fuckdollPrice = 0.5 + Math.min(Math.exp(($arcadeDemand * 10) / (($fuckdolls - $fuckdollsArcade) * 140 + $fuckdollsArcade * (175 + 35 * $arcadeUpgradeInjectors)), 2), 0.5)>>
+		<<set _fuckdollPrice = 0.5 + Math.min(Math.pow(($arcadeDemand * 10) / (($fuckdolls - $fuckdollsArcade) * 140 + $fuckdollsArcade * (175 + 35 * $arcadeUpgradeInjectors)), 2), 0.5)>>
 	<<elseif $arcadeDemand < 0>>
-		<<set _fuckdollPrice = 0.5 + Math.max(Math.exp($arcadeDemand / (($fuckdolls - $fuckdollsArcade) * 140 + $fuckdollsArcade * (175 + 35 * $arcadeUpgradeInjectors)), 2), -0.4)>>
+		<<set _fuckdollPrice = 0.5 + Math.max(Math.pow($arcadeDemand / (($fuckdolls - $fuckdollsArcade) * 140 + $fuckdollsArcade * (175 + 35 * $arcadeUpgradeInjectors)), 2), -0.4)>>
 	<</if>>
-	<<set _fuckdollsEarnings = Math.trunc((1 + random(-50,50) / 1000) * (($fuckdolls - $fuckdollsArcade) * _fuckdollPrice * 140 + $fuckdollsArcade * _fuckdollPrice (175 + 35 * $arcadeUpgradeInjectors)) / 10)>> /*The "/ 10" at the end is just there to keep the price in line with other current prices, hopefully prices will get to a spot where this can be dropped*/
+	<<set _fuckdollsEarnings = Math.trunc((1 + random(-50,50) / 1000) * (($fuckdolls - $fuckdollsArcade) * _fuckdollPrice * 140 + $fuckdollsArcade * _fuckdollPrice * (175 + 35 * $arcadeUpgradeInjectors)) / 10)>> /*The "/ 10" at the end is just there to keep the price in line with other current prices, hopefully prices will get to a spot where this can be dropped*/
 	<<if $fuckdolls > 1>> <<print commaNum($fuckdolls)>> standard fuckdolls,<<elseif $fuckdolls == 1>>one fuckdoll,<</if>><<if $fuckdollsArcade > 1>> <<print commaNum($fuckdollsArcade)>> arcade fuckdolls,<<elseif $fuckdollsArcade == 1>>one arcade fuckdoll,<</if>>
 	<<run cashX(_fuckdollsEarnings, "fuckdolls")>>
 <</if>>
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index 4ca2f28d4744f924a369b2d2bff45a40421cee69..065b3f4999dc154cf725bd88bf33feac079ff755 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -381,7 +381,7 @@
 <<set $averageProsperity = 0, $beauty = 0, $beautyMultiplier = 0, $boobsID = -1, $boobsInterestTargetID = -1, $brideSlave = -1, $buttslutID = -1, $buttslutInterestTargetID = -1, $cumslutID = -1, $FResult = 0, $groomSlave = -1, $humiliationID = -1, $humiliationInterestTargetID = -1, $i = 0, $influenceBonus = 0, $j = 0, $masochistID = -1, $masochistInterestTargetID = -1, $opinion = 0, $r = 0, $subID = -1, $submissiveInterestTargetID = -1, $weddingSlaveID = -1, $x = 0, $mother = -1, $daughter = -1, $devMother = -1, $devDaughter = -1, $alphaTwin = -1, $betaTwin = -1, $youngerSister = -1, $olderSister = -1, $recruiterSlave = -1>>
 
 /% Other arrays %/
-<<set $events = [], $RESSevent = [], $RESSTRevent = [], $RETSevent = [], $RECIevent = [], $RecETSevent = [], $REFIevent = [], $REFSevent = [], $PESSevent = [], $PETSevent = [], $FSAcquisitionEvents = [], $FSNonconformistEvents = [], $qualifiedNicknames = [], $REAnalCowgirlSubIDs = [], $REButtholeCheckinIDs = [], $recruit = [], $RETasteTestSubIDs = [], $devotedSlaves = [], $rebelSlaves = [], $REBoobCollisionSubIDs = [], $REIfYouEnjoyItSubIDs = [], $RESadisticDescriptionSubIDs = [], $REShowerForceSubIDs = [], $RESimpleAssaultIDs = [], $RECockmilkInterceptionIDs = [], $REInterslaveBeggingIDs = [], $bedSlaves = [], $qualifiedFS = [], $eligibleSlaves = [], $slavesInLine = []>>
+<<set $events = [], $RESSevent = [], $RESSTRevent = [], $RETSevent = [], $RECIevent = [], $RecETSevent = [], $REFIevent = [], $REFSevent = [], $PESSevent = [], $PETSevent = [], $FSAcquisitionEvents = [], $FSNonconformistEvents = [], $qualifiedNicknames = [], $REAnalCowgirlSubIDs = [], $REButtholeCheckinIDs = [], $recruit = [], $RETasteTestSubIDs = [], $devotedSlaves = [], $rebelSlaves = [], $REBoobCollisionSubIDs = [], $REIfYouEnjoyItSubIDs = [], $RESadisticDescriptionSubIDs = [], $REShowerForceSubIDs = [], $RESimpleAssaultIDs = [], $RECockmilkInterceptionIDs = [], $REInterslaveBeggingIDs = [], $bedSlaves = [], $qualifiedFS = [], $eligibleSlaves = [], $slavesInLine = [], $gloryiIDs = []>>
 
 /% Slave Objects using 0 instead of null. Second most memory eaten up. %/
 <<set $activeSlave = 0, $eventSlave = 0, $slaveWithoutBonuses = 0, $subSlave = 0, $milkTap = 0, $relation = 0, $relative = 0, $relative2 = 0>>
diff --git a/src/uncategorized/saWorkAGloryHole.tw b/src/uncategorized/saWorkAGloryHole.tw
index 88482558085ee99a944151d9a2f3db80b03f7f98..74893952346fcbbb46658282a40b1ce7b16341e6 100644
--- a/src/uncategorized/saWorkAGloryHole.tw
+++ b/src/uncategorized/saWorkAGloryHole.tw
@@ -13,13 +13,13 @@
 	<<set $beauty = Math.trunc(random(170,210)+(20*(4-$slaves[$i].anus))+(10*(4-$slaves[$i].vagina)) * 0.8)>> /*Amount of sexual acts per week with a gloryhole*/
 <</if>>
 <<if $arcadeDemand > 0>>
-	<<set _averageArcadeDemand = $arcadeDemand / ($arcadeiIDs.length + "Some measure of slaves set to glory holes")>> /*IMPORTANT NEEDS FIX*/
-	<<set $FResult = Math.clamp(Math.exp(_averageArcadeDemand / $beauty, 0.25), 0.5, 2)>> /*This calculates the price charged per fuck*/
+	<<set _averageArcadeDemand = Math.trunc($arcadeDemand / ($ArcadeiIDs.length + $gloryiIDs.length))>>
+	<<set $FResult = Math.clamp(Math.pow((_averageArcadeDemand / $beauty), 1/2), 0.5, 2)>> /*This calculates the price charged per fuck*/
 <<else>>
 	<<set $FResult = 0.5>> /*minimum price no matter what*/
 <</if>>
 
-is <<if $slaves[$i].fuckdoll == 0>>restrained in a glory hole<<else>>set out for use<</if>>. $beauty customers (<<print Math.trunc($beauty/7)>> a day) paid <<print cashFormat($FResult)>> to use $his holes.
+is <<if $slaves[$i].fuckdoll == 0>>restrained in a glory hole<<else>>set out for use<</if>>. $beauty customers (<<print Math.trunc($beauty/7)>> a day) paid <<if $FResult == 2>><<print cashFormat(2)>><<elseif $FResult >= 1.5>>a little under <<print cashFormat(2)>><<elseif $FResult >= 1>>a little over <<print cashFormat(1)>><<else>>less than <<print cashFormat(1)>><</if>> to use $his holes.
 <<set _incomeStats.customers = $beauty>>
 
 <<if ($arcologies[0].FSDegradationist > 0)>>
@@ -115,7 +115,7 @@ is <<if $slaves[$i].fuckdoll == 0>>restrained in a glory hole<<else>>set out for
 	<</if>>
 <</if>>
 
-$His feelings, skills, and appearance do not matter. $He is condemned to a world that consists of a tiny cell, featureless except for the never-ending dicks $he is required to service. You were paid @@.yellowgreen;<<print cashFormat(($beauty*$FResult))>>@@ for the use of $slaves[$i].slaveName's holes this week.
+$His feelings, skills, and appearance do not matter. $He is condemned to a world that consists of a tiny cell, featureless except for the never-ending dicks $he is required to service. You were paid @@.yellowgreen;<<print cashFormat((Math.trunc($beauty*$FResult)))>>@@ for the use of $slaves[$i].slaveName's holes this week.
 
 /* FACILITY DECORATION IMPACTS */
 
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index e351f3a33be2969349d4eb03437e6a43c379cb9c..fecbdffc8a033cf664952ccb324a10c7edc99a71 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -4,6 +4,12 @@
 
 <h1> $arcologies[0].name Weekly Slave Report - Week $week</h1>
 
+<<for $i = 0; $i < _SL; $i++>>
+	<<if $slaves[$i].assignment == "work a glory hole">>
+		<<set $gloryiIDs.push($slaves[$i].ID)>>
+	<</if>>
+<</for>>
+
 <<for $i = 0; $i < _SL; $i++>>
 
 <<if ndef $slaves[$i].whoreSkill>>