diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 6aa943e91c024c7bc1bd547dfbd984d86ef2b133..da843f9e8d8bcf07e1b71edd67ebaedcfd134a8c 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -956,6 +956,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr
 ''Rodziel'' contributed the cybernetics mod.
 ''prndev'' wrote the Free Range Dairy Assignment scene.
 ''freecitiesbandit'' wrote a number of random events.
+''DrNoOne'' wrote the bulk slave purchase code.
 
 ''Many other anonymous contributors'' helped fix bugs via GitHub. They will be credited by name upon request.
 
diff --git a/src/pregmod/seHuskSlaveDelivery.tw b/src/pregmod/seHuskSlaveDelivery.tw
index 1bd040cbe6d1b46fd27dda6a1bc7decf1d7f1e1f..c08b08da352528ef33282cdf3835e1b35de85ae9 100644
--- a/src/pregmod/seHuskSlaveDelivery.tw
+++ b/src/pregmod/seHuskSlaveDelivery.tw
@@ -94,7 +94,7 @@ A slave came in matching fitting the description you provided.
 <br>
 //As expected, she is a complete vegetable, but that is what you ordered after all. You lack the facilities to care for her in this state, so you should do what you are planning quickly. Or you could return her to the Flesh Heap, though you won't get your credits back.//
 <br><br>
-<<set $saleDescription = 1>><<display "Long Slave Description">><<set $saleDescription = 0>>
+<<set $saleDescription = 1>><<include "Long Slave Description">><<set $saleDescription = 0>>
 <br><br>
 <span id="result">
 <<if $cash >= $slaveCost>>\
diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw
index a51d6fea017e319c4008ca752a99b6b177890d30..99edde47ecb6c7f061a229a30b155a7248fcdcf9 100644
--- a/src/pregmod/sePlayerBirth.tw
+++ b/src/pregmod/sePlayerBirth.tw
@@ -173,7 +173,7 @@ Now you are faced with a decision of what to do with your new child. You're far
 <<link "Slave Orphanage">><<replace "#choice">><<print "You have decided to send them to a slave orphanage to be raised to $minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><</link>>
 <<if $Cash4Babies == 1>> | <<link "Auction Them">><<replace "#choice">><<print "You send the child to be sold at auction amongst other prestigious slaves. The winning big for your offspring came in at @@.yellowgreen;¤<<print 1000*$seed>>.@@">><</replace>><<set $cash += 1000*$seed>><</link>><</if>>
 <<if ($incubator > $incubatorSlaves) && ($reservedChildren < ($incubator-$incubatorSlaves))>>
-	| <<link "Incubation">><<replace "#choice">><<print "You place the child into an incubation chamber to be aged until they can legally serve as your slave.">><</replace>><<display "Incubator Workaround">><</link>>
+	| <<link "Incubation">><<replace "#choice">><<print "You place the child into an incubation chamber to be aged until they can legally serve as your slave.">><</replace>><<include "Incubator Workaround">><</link>>
 <</if>>
 </span>
 
diff --git a/src/uncategorized/bulkSlaveGenerate.tw b/src/uncategorized/bulkSlaveGenerate.tw
new file mode 100644
index 0000000000000000000000000000000000000000..d91ce4384ffb00622b98b2ef83eaffa1ec2ae975
--- /dev/null
+++ b/src/uncategorized/bulkSlaveGenerate.tw
@@ -0,0 +1,122 @@
+:: Bulk Slave Generate [nobr]
+
+<<set $newSlaves = []>>
+<<set $returnTo = "Main">>
+<<if ndef $numSlaves>>
+    <<set $numSlaves = 5>>
+<</if>>
+<<if ndef $numArcology>>
+    <<set $numArcology = 1>>
+<</if>>
+<<set $newSlavesDone = 0>>
+<<set $spent = 0>>
+<<set $newSlaveIndex = 0>>
+
+/* Discount calculation.  Gives 5% on top of slave school discount */
+<<set $discount = 475>>
+<<switch $slaveMarket>>
+<<case "TSS">>
+    <<if $TSS.schoolUpgrade != 0>>
+        <<set $discount = 375>>
+    <</if>>
+
+<<case "GRI">>
+    <<if $GRI.schoolUpgrade != 0>>
+        <<set $discount = 375>>
+    <</if>>
+
+<<case "SCP">>
+    <<if $SCP.schoolUpgrade != 0>>
+        <<set $discount = 375>>
+    <</if>>
+
+<<case "LDE">>
+    <<if $LDE.schoolUpgrade != 0>>
+        <<set $discount = 375>>
+    <</if>>
+
+<<case "TGA">>
+    <<if $TGA.schoolUpgrade != 0>>
+        <<set $discount = 375>>
+    <</if>>
+
+<<case "TFS">>
+    <<if $TFS.schoolUpgrade != 0>>
+        <<set $discount = 300>>
+    <<else>>
+        <<set $discount = 380>>
+    <</if>>
+    
+<<case "corporate">>
+    <<if $publicShares <= $personalShares*0.2>>
+		<<set $discount = 350>>
+	<<elseif $publicShares <= $personalShares*0.5>>
+		<<set $discount = 400>>
+	<<else>>
+		<<set $discount = 450>>
+	<</if>>
+
+<<case "neighbor">>
+    <<set $activeArcology = $arcologies[0]>>
+    <<if $numArcology >= $arcologies.length>>
+        <<set $numArcology = 1>>
+    <</if>>
+    <<set $targetArcology = $arcologies[$numArcology]>>
+    <<include "Arcology Opinion">>
+	<<set $opinion = Math.trunc($opinion/20)>>
+	<<set $opinion = Math.clamp($opinion, -10, 10)>>
+    <<set $discount -= ($opinion * 25)>>
+
+<</switch>>
+
+<<for _i = 0; _i < $numSlaves; _i++>>
+    <<silently>>
+        <<GenerateMarketSlave $slaveMarket $numArcology>>
+    <</silently>>
+    <<set $slavesSeen += 1>>
+    <<slaveCost $activeSlave>>
+    
+    /* Adjust $slaveCost according to $slavesSeen */
+    <<if $slavesSeen > $slaveMarketLimit>>
+        <<set $slaveCost += $slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1)>>
+		<<if $introType == "inStock">>
+			<<break>>
+		<</if>>
+    <</if>>
+    
+    /* Apply discount modifier */
+    <<set $slaveCost = $discount*Math.trunc($slaveCost/500)>>
+    
+    /* Charge the Player for the slave, or break out if cannot afford */
+    <<if $cash < $slaveCost>>
+        <<set _i = $numSlaves>>
+	<<break>>
+    <<else>>
+        <<set $cash -= $slaveCost>>
+        <<set $newSlaves.push($activeSlave)>>
+        <<set $spent += $slaveCost>>
+    <</if>>
+<</for>>
+
+/* Max Buy clean-up */
+<<if $numSlaves == 9999>>
+	<<set $numSlaves = $newSlaves.length>>
+<</if>>
+
+/* increment Slave school purchase counts if needed */
+<<switch $slaveMarket>>
+<<case "TSS">>
+    <<set $TSS.studentsBought += $newSlaves.length>>
+<<case "GRI">>
+    <<set $GRI.studentsBought += $newSlaves.length>>
+<<case "SCP">>
+    <<set $SCP.studentsBought += $newSlaves.length>>
+<<case "LDE">>
+    <<set $LDE.studentsBought += $newSlaves.length>>
+<<case "TGA">>
+    <<set $TGA.studentsBought += $newSlaves.length>>
+<<case "TFS">>
+    <<set $TFS.studentsBought += $newSlaves.length>>
+<</switch>>
+
+<<goto "Bulk Slave Intro">>
diff --git a/src/uncategorized/bulkSlaveIntro.tw b/src/uncategorized/bulkSlaveIntro.tw
new file mode 100644
index 0000000000000000000000000000000000000000..ccfa44d73f400fa899f8ad42dac29da7ea49a098
--- /dev/null
+++ b/src/uncategorized/bulkSlaveIntro.tw
@@ -0,0 +1,110 @@
+:: Bulk Slave Intro [nobr]
+
+<<if ndef $introType>>
+	<<set $introType = "">>
+<</if>>
+<<if $newSlaves.length == 0>>
+	<<set $introType = "">>
+<</if>>
+
+<<switch $introType>>
+<<case "">>
+	/* No message to give */
+<<case "multi">>
+	<<if $newSlaves.length > 1>>
+		Your selection of $newSlaves.length slaves arrives from <<MarketNamePeriod $slaveMarket $numArcology>>
+	<<else>>
+		Your new slave from <<MarketName $slaveMarket $numArcology>> has arrived.
+	<</if>>
+
+<<case "bulk">>
+	Your delivery of $newSlaves.length slaves arrives from <<MarketNamePeriod $slaveMarket $numArcology>>  
+	<<if $newSlaves.length != $numSlaves>>
+		You were going to order $numSlaves, but $assistantName lowered it on financial grounds.
+	<</if>>
+	<<set _seed = Math.ceil($slavesSeen - $slaveMarketLimit)>>
+	<<if _seed > $newSlaves.length>>
+		You have cast such a wide net for slaves this week that all are more expensive than normal.
+	<<elseif _seed > 0>>
+		You have cast such a wide net for slaves this week that some (_seed) are more expensive than normal.
+	<</if>>
+	<<if $slaveMarket == "TFS">>
+		/* Put line about The Futanari Sisters discount & pricing */
+	<<elseif $discount == 475>>
+		Your bulk delivery came with a @@color:yellowgreen;5%@@ discount.
+	<<else>>
+		With all your discounts factored in you got a @@color:yellowgreen;<<print (500-$discount)/5>>%@@ discount;
+	<</if>>
+	You spent @@color:yellowgreen;¤$spent@@ on your new slaves.<br><br>
+
+<<case "inStock">>
+	You clear out <<MarketName $slaveMarket $numArcology>> of its stock of $newSlaves.length slaves. 
+	<<if $slaveMarket == "TFS">>
+		/* Put line about The Futanari Sisters discount & pricing */
+	<<elseif $discount == 475>>
+		Your bulk delivery came with a @@color:yellowgreen;5%@@ discount.
+	<<else>>
+		With all your discounts factored in you got a @@color:yellowgreen;<<print (500-$discount)/5>>%@@ discount;
+	<</if>>
+	You spent @@color:yellowgreen;¤$spent@@ on your new slaves.<br><br>
+	
+<<case "event">>
+	This is placeholder event info.
+	
+<</switch>>
+/* remove the below line to make the intro blurb show up for every slave, not just the first */
+<<set $introType = "">> 
+
+<<if ($newSlaveIndex >= $newSlaves.length) || ($newSlavesDone == 1)>>
+	<<if $newSlaves.length > 0>>
+		/* Push the induction changes for the final slave to the newSlave array */
+		<<AddSlave $activeSlave>>
+
+		/* Variable Clean-up */
+		<<set $newSlaves = []>>
+		<<set $newSlavesDone = 0>>
+		<<set $introType = "">>
+        <</if>>
+	<<goto $returnTo>>
+<<else>>
+	/* If looking at 2nd slave, push the induction changes for the prior slave to the newSlave array */
+	<<if $newSlaveIndex > 0>>
+		<<AddSlave $activeSlave>>
+	<</if>>
+	<<if $newSlaves.length > 1>>
+		Showing new slave <<print $newSlaveIndex+1>> of <<print $newSlaves.length>>.
+	<</if>>
+	<br><br>
+	
+	/* Set activeSlave to the desired newSlave so that existing code can be used */
+	<<set $activeSlave = $newSlaves[$newSlaveIndex]>>
+	
+	/* Use existing Long Slave Description */
+	<span id="description">
+		<<click "Show slave description">>
+			<<replace "#description">>
+				<<set $saleDescription = 1>>
+				<<display "Long Slave Description">>
+				<<set $saleDescription = 0>>
+			<</replace>>
+		<</click>>
+	</span><br>
+	
+	/* Use existing New Slave Intro */
+	<<display "New Slave Intro">>
+	
+	/* Override nextButton setting from New Slave Intro */
+	<<set $nextButton = "Continue">>
+	<<set $nextLink = "Bulk Slave Intro">>
+	
+	/* Add an option = goto the next slave below the New Slave Intro section */
+	<br><br>
+	<<if $newSlaveIndex < ($newSlaves.length - 1)>>
+		[[Next Slave|Bulk Slave Intro]]
+	<<else>>
+		[[Finish introducing slaves|Bulk Slave Intro][$newSlavesDone = 1]]
+	<</if>>	
+
+<</if>> /* Closes no new Slaves check */
+
+<<set $newSlaveIndex++>>
diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw
index ed4854d7c58f322853df17fa7ec69ef108761df1..50413aa5af1d7b30db69dd96adedbc8522780fbf 100644
--- a/src/uncategorized/buySlaves.tw
+++ b/src/uncategorized/buySlaves.tw
@@ -2,6 +2,7 @@
 
 <<set $nextButton = "Back">>
 <<set $nextLink = "Main">>
+<<set _minimumFive = $minimumSlaveCost * 5>>
 
 <<set $activeArcology = 0>>
 
@@ -24,61 +25,115 @@ __Sex Slave Purchase Options__
 
 <<if $corpMarket != 0>>
 	<br>[[Corporate Market][$slavesSeen += 1]] | //Slaves from your corporation purchased at a discounted rate.//
+	<<if $cash > _minimumFive>>
+		[[(x5)|Bulk Slave Generate][$slaveMarket = "corporate", $introType = "bulk", $numSlaves = 5]] |
+	<</if>>
 <</if>>
 
-<br>[[The Flesh Heap|Slave Markets][$slaveMarket = "heap", $slavesSeen += 1]] | //Broken and discarded slaves. Near useless, but cheap.//
+<br>[[The Flesh Heap|Slave Markets][$slaveMarket = "heap", $slavesSeen += 1]] | //Broken and discarded slaves. Near useless, but cheap. No longer does bulk orders after complaints.//
 
 <<if $bodyswapAnnounced == 1>>
 <br>[[Order a custom husk slave from the Flesh Heap|Husk Slave]] | //Will need to be used on arrival.//
 <</if>>
 
 <<if ($rep > 500)>>
-<br>[[Kidnappers' Market|Slave Markets][$slaveMarket = "kidnappers", $slavesSeen += 1]] | //Slaves will tend to be low quality and resistant.//
+<br>[[Kidnappers' Market|Slave Markets][$slaveMarket = "kidnappers", $slavesSeen += 1]] | 
+<<if $cash > _minimumFive>>
+	[[(x5)|Bulk Slave Generate][$slaveMarket = "kidnappers", $introType = "bulk", $numSlaves = 5]] |
+<</if>>
+//Slaves will tend to be low quality and resistant.//
 <</if>>
 
-<<set _culture = 0>>
-<<for $i = 0; $i < $arcologies.length; $i++>>
-	<<if $arcologies[$i].direction != 0>>
-	<br><<print "[[Slaves from|Slave Markets][$activeArcology = $arcologies[" + $i + "]]]">>
-	''$arcologies[$i].name''
-	<<if _culture == 0>>
-		| //The arcology's prosperity and culture will affect slaves who have lived there.//
-		<<set _culture = 1>>
-	<</if>>
+<br>''Neighboring Arcologies:'' //The arcology's prosperity and culture will affect slaves who have lived there.//
+<<for _i = 0; _i < $arcologies.length; _i++>>
+	<<if $arcologies[_i].direction != 0>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;<<print '[[Slaves from|Slave Markets][$slaveMarket = "neighbor", $numArcology = ' + _i + ']]'>>
+		''$arcologies[_i].name'' 
+		<<if $cash > _minimumFive>>
+			| <<print '[[(x5)|Bulk Slave Generate][$slaveMarket = "neighbor", $introType = "bulk", $numSlaves = 5, $numArcology = '+_i+']]'>>
+		<</if>>
 	<</if>>
 <</for>>
 
 <<if ($rep > 1000)>>
-	<br>[[Runaway Hunters' Market|Slave Markets][$slaveMarket = "hunters", $slavesSeen += 1]] | //Slaves will tend to be skilled but rebellious.//
+	<br>[[Runaway Hunters' Market|Slave Markets][$slaveMarket = "hunters", $slavesSeen += 1]] | 
+	<<if $cash > _minimumFive>>
+		[[(x5)|Bulk Slave Generate][$slaveMarket = "hunters", $introType = "bulk", $numSlaves = 5]] |
+	<</if>>
+	//Slaves will tend to be skilled but rebellious.//
 <</if>>
 
 <<if ($rep > 2000)>>
-	<br>[[Indentures Market|Slave Markets][$slaveMarket = "indentures", $slavesSeen += 1]] | //Temporary enslavement and restrictions on treatment.//
+	<br>[[Indentures Market|Slave Markets][$slaveMarket = "indentures", $slavesSeen += 1]] | 
+	<<if $cash > _minimumFive>>
+		[[(x5)|Bulk Slave Generate][$slaveMarket = "indentures", $introType = "bulk", $numSlaves = 5]] |
+	<</if>>
+	//Temporary enslavement and restrictions on treatment.//
 <</if>>
 
 <<if ($rep > 3000)>>
-	<br>[[Raiders' Market|Slave Markets][$slaveMarket = "raiders", $slavesSeen += 1]] | //Slaves will always be sold immediately upon reaching majority.//
+	<br>[[Raiders' Market|Slave Markets][$slaveMarket = "raiders", $slavesSeen += 1]] | 
+	<<if $cash > _minimumFive>>
+		[[(x5)|Bulk Slave Generate][$slaveMarket = "raiders", $introType = "bulk", $numSlaves = 5]] |
+	<</if>>
+	//Slaves will always be sold immediately upon reaching majority.//
 <</if>>
 
 <<if ($pedo_mode == 1 || ($minimumSlaveAge <= 13 && $minimumSlaveAge <= $fertilityAge)) && ($rep > 3500)>>
-	<br>[[Raiders' Black Market|Slave Markets][$slaveMarket = "underage raiders", $slavesSeen += 1]] | //Very young slaves.//
+	<br>[[Raiders' Black Market|Slave Markets][$slaveMarket = "underage raiders", $slavesSeen += 1]] | 
+	<<if $cash > _minimumFive>>
+		[[(x5)|Bulk Slave Generate][$slaveMarket = "underage raiders", $introType = "bulk", $numSlaves = 5]] |
+	<</if>>
+	//Very young slaves.//
 <</if>>
 
 <<if ($rep > 4000)>>
-	<br>[[Trainers' Market|Slave Markets][$slaveMarket = "trainers", $slavesSeen += 1]] | //Slaves will tend to be good quality and obedient.//
+	<br>[[Trainers' Market|Slave Markets][$slaveMarket = "trainers", $slavesSeen += 1]] | 
+	<<if $cash > _minimumFive>>
+		[[(x5)|Bulk Slave Generate][$slaveMarket = "trainers", $introType = "bulk", $numSlaves = 5]] |
+	<</if>>
+	//Slaves will tend to be good quality and obedient.//
 <</if>>
 
 <<if ($rep > 5500)>>
 	<br>''Slave Schools:'' //High prices; will be young and healthy.//
 	<<if ($seeDicks != 2)>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[The Slavegirl School][$slavesSeen += 1]] | //Straightforward slaves with good training.//<<if $TSS.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[Growth Research Institute][$slavesSeen += 1]] | //Poorly trained slaves with huge assets.//<<if $GRI.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[St. Claver Preparatory][$slavesSeen += 1]] | //Slaves with basic training and solid implants.//<<if $SCP.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[The Slavegirl School][$slavesSeen += 1]] | 
+		<<if $cash > _minimumFive>>
+			[[(x5)|Bulk Slave Generate][$slaveMarket = "TSS", $introType = "bulk", $numSlaves = 5]] |
+		<</if>>
+		//Straightforward slaves with good training.//<<if $TSS.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
+		
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[Growth Research Institute][$slavesSeen += 1]] | 
+		<<if $cash > _minimumFive>>
+			[[(x5)|Bulk Slave Generate][$slaveMarket = "GRI", $introType = "bulk", $numSlaves = 5]] |
+		<</if>>
+		//Poorly trained slaves with huge assets.//<<if $GRI.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
+		
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[St. Claver Preparatory][$slavesSeen += 1]] | 
+		<<if $cash > _minimumFive>>
+			[[(x5)|Bulk Slave Generate][$slaveMarket = "SCP", $introType = "bulk", $numSlaves = 5]] |
+		<</if>>
+		//Slaves with basic training and solid implants.//<<if $SCP.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
 	<</if>>
 	<<if ($seeDicks != 0)>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[L'école des Enculées][$slavesSeen += 1]] | //Slaves optimized and trained for anal.//<<if $LDE.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[The Gymnasium-Academy][$slavesSeen += 1]] | //Well trained slaves with dicks.//<<if $TGA.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[The Futanari Sisters][$slavesSeen += 1]] | //Highly skilled, highly feminine hermaphrodites.//<<if $TFS.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[L'école des Enculées][$slavesSeen += 1]] | 
+		<<if $cash > _minimumFive>>
+			[[(x5)|Bulk Slave Generate][$slaveMarket = "LDE", $introType = "bulk", $numSlaves = 5]] |
+		<</if>>
+		//Slaves optimized and trained for anal.//<<if $LDE.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
+		
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[The Gymnasium-Academy][$slavesSeen += 1]] | 
+		<<if $cash > _minimumFive>>
+			[[(x5)|Bulk Slave Generate][$slaveMarket = "TGA", $introType = "bulk", $numSlaves = 5]] |
+		<</if>>
+		//Well trained slaves with dicks.//<<if $TGA.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
+		
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;[[The Futanari Sisters][$slavesSeen += 1]] | 
+		<<if $cash > _minimumFive>>
+			[[(x5)|Bulk Slave Generate][$slaveMarket = "TFS", $introType = "bulk", $numSlaves = 5]] |
+		<</if>>
+		//Highly skilled, highly feminine hermaphrodites.//<<if $TFS.schoolSale == 1>> //@@.yellow;Offering your first purchase at half price this week.@@//<</if>>
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/corporateMarket.tw b/src/uncategorized/corporateMarket.tw
index e4a9859abffb1034611e89eeac4d7c5a3fc44511..6276c0c3b110effaef35329b0397bd54ded2c41c 100644
--- a/src/uncategorized/corporateMarket.tw
+++ b/src/uncategorized/corporateMarket.tw
@@ -40,368 +40,8 @@ Of course, you know all about the corporation, but sales<<if $captureUpgradeAge
 <br><br>
 
 She explains that corporation captures many people, so it only retains and trains those that fit its product lines.
-<<if $captureUpgradeAge == "young">>
-	<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
-	<<set $activeSlaveOneTimeMaxAge = 19>>
-<<elseif $captureUpgradeAge == "old">>
-	<<if $pedo_mode == 1>>
-		<<set $activeSlaveOneTimeMinAge = 24>>
-		<<set $activeSlaveOneTimeMaxAge = $retirementAge>>
-	<<else>>
-		<<set $activeSlaveOneTimeMinAge = 36>>
-		<<set $activeSlaveOneTimeMaxAge = $retirementAge>>
-	<</if>>
-<</if>>
-<<set $one_time_age_overrides_pedo_mode = 1>>
-<<if $captureUpgradeGender == "XX">>
-	Slaves without pussies are not trained.
-	<<include "Generate XX Slave">>
-<<elseif $captureUpgradeGender == "XY">>
-	Slaves without dicks are not trained.
-	<<include "Generate XY Slave">>
-<<else>>
-	Slaves are passed to training regardless of whether they have dicks or pussies.
-	<<include "Generate New Slave">>
-<</if>>
-<<set $activeSlave.origin = "She was enslaved and trained by your corporation.">>
-<<set $activeSlave.devotion = random(-15,15)>>
-<<set $activeSlave.trust = random(-45,-25)>>
-<<set $activeSlave.health = random(25,50)>>
-
-<<if $surgicalUpgradeGenitalia != "fucknugget">>
-
-<<if $entrapmentUpgradeDevotionTwo == "devotion">>
-	It focuses on selecting trainees predisposed towards devotion to their new owners.
-	<<set $activeSlave.devotion = random(55,75)>>
-<<elseif $entrapmentUpgradeDevotionOne == "obedience">>
-	It focuses on selecting trainees predisposed towards obedience.
-	<<set $activeSlave.devotion = random(25,45)>>
-<<else>>
-	It does not select trainees based on their initial feelings about slavery.
-<</if>>
-<<if $entrapmentUpgradeIntelligence == "intelligent">>
-	Intelligent slaves have a high priority for training.
-	<<set $activeSlave.intelligence = either(1,2,2,3)>>
-<<elseif $entrapmentUpgradeIntelligence == "stupid">>
-	Stupid slaves have a high priority for training.
-	<<set $activeSlave.intelligence = either(-1,-2,-2,-3)>>
-<<else>>
-	Slaves' intelligence is not given special consideration.
-<</if>>
-<<if $captureUpgradeAge == "young">>
-	Teenaged slaves are strongly favored for training.
-	/*<<set $activeSlave.age = random(18,19)>>*/
-<<elseif $captureUpgradeAge == "old">>
-	Newly enslaved MILFs are strongly favored for training.
-	/*<<set $activeSlave.age = random(36,$retirementAge)>>*/
-<<else>>
-	Promising slaves are trained without special sorting based on age.
-<</if>>
-<<if ($captureUpgradeRace == "unselected") || ($captureUpgradeRace == "none")>>
-	There is no racial element to trainee selection.
-<<else>>
-	The corporation prefers to train <<print $captureUpgradeRace>>s.
-<</if>>
-<<if $generalUpgradeBreaking == "brutality">>
-	The corporation applies brutal slave breaking techniques, with new captures assigned rape quotas.
-	<<set $activeSlave.trust = random(-75,-55)>>
-<<elseif $generalUpgradeBreaking == "care">>
-	The corporation applies surprisingly caring slave breaking techniques that sometimes convince refugees and similar downtrodden people that slavery is a step up for them.
-	<<set $activeSlave.trust = random(-15,15)>>
-<<else>>
-	The corporation applies standard slave breaking techniques.
-<</if>>
-<<if $generalUpgradeWeight == "attractive">>
-	Thin trainees are fattened up; fat trainees are slimmed down.
-	<<set $activeSlave.weight = Math.clamp($activeSlave.weight, -25, 25)>>
-<<else>>
-	Only the unhealthiest trainees are fed special diets.
-<</if>>
-<<if $generalUpgradeMuscle == "toned">>
-	Trainees are brought up to a good state of physical fitness.
-	<<set $activeSlave.weight = Math.clamp($activeSlave.weight, -25, 25)>>
-	<<set $activeSlave.muscles = 20>>
-<<elseif $generalUpgradeMuscle == "ripped">>
-	Trainees are subjected to punishing workout routines and only sold when ripped.
-	<<set $activeSlave.weight = Math.clamp($activeSlave.weight, -25, 5)>>
-	<<set $activeSlave.muscles = 50>>
-<<else>>
-	Trainees are not subjected to any special workout routine.
-<</if>>
-<<if $trainingUpgradeAccent == "accents">>
-	The corporation teaches its trainees the lingua franca but allows them to retain distinctive accents.
-	<<set $activeSlave.accent = Math.clamp($activeSlave.accent, 0, 1)>>
-<<elseif $trainingUpgradeAccent == "eliminate">>
-	The corporation teaches its trainees to speak the lingua franca without accent.
-	<<set $activeSlave.accent = 0>>
-<<else>>
-	The corporation does not expend any special effort teaching language.
-<</if>>
-<<if $trainingUpgradeEducation == "basic">>
-	Its slave students receive basic slave educations.
-	<<set $activeSlave.intelligence = Math.clamp($activeSlave.intelligence+1, -3, 3)>>
-	<<set $activeSlave.intelligenceImplant = 1>>
-	<<set $activeSlave.whoreSkill = Math.clamp($activeSlave.whoreSkill, 15, 100)>>
-	<<set $activeSlave.entertainSkill = Math.clamp($activeSlave.entertainSkill, 15, 100)>>
-<<else>>
-	Its slaves are not given special educational attention.
-<</if>>
-<<if $trainingUpgradeSexEd == "competence">>
-	Trainees spend weeks learning sexual competence.
-	<<set $activeSlave.oralSkill = Math.clamp($activeSlave.oralSkill, 15, 100)>>
-	<<if $activeSlave.vagina >= 0>>
-	<<set $activeSlave.vaginalSkill = Math.clamp($activeSlave.vaginalSkill, 15, 100)>>
-	<</if>>
-	<<set $activeSlave.analSkill = Math.clamp($activeSlave.analSkill, 15, 100)>>
-<<elseif $trainingUpgradeSexEd == "highly skilled">>
-	Trainees spend months learning sexual skills.
-	<<set $activeSlave.oralSkill = Math.clamp($activeSlave.oralSkill, 35, 100)>>
-	<<if $activeSlave.vagina > 0>>
-		<<set $activeSlave.vaginalSkill = Math.clamp($activeSlave.vaginalSkill, 35, 100)>>
-	<<elseif $activeSlave.vagina == 0>>
-		<<set $activeSlave.vaginalSkill = Math.clamp($activeSlave.vaginalSkill, 15, 100)>>
-	<</if>>
-	<<if $activeSlave.anus > 0>>
-		<<set $activeSlave.analSkill = Math.clamp($activeSlave.analSkill, 35, 100)>>
-	<<else>>
-		<<set $activeSlave.analSkill = Math.clamp($activeSlave.analSkill, 15, 100)>>
-	<</if>>
-<<else>>
-	No special sexual training is applied.
-<</if>>
-
-<</if>> /* CLOSES FUCKNUGGET EXEMPTION */
-
-<<if $surgicalUpgradeCosmetics == "applied">>
-	The corporation uses subtle cosmetic surgery to improve its slaves for sale.
-	<<if ($activeSlave.anus > 3)>>
-		<<set $activeSlave.anus = 3>>
-		<<if $activeSlave.analSkill > 10>><<set $activeSlave.analSkill -= 10>><</if>>
-	<</if>>
-	<<if ($activeSlave.vagina > 3)>>
-		<<set $activeSlave.vagina = 3>>
-		<<if $activeSlave.vaginalSkill > 10>><<set $activeSlave.vaginalSkill -= 10>><</if>>
-	<</if>>
-	<<if ($activeSlave.faceImplant == 0) && ($activeSlave.face <= 95)>>
-		<<if $activeSlave.faceShape is "masculine">><<set $activeSlave.faceShape to "androgynous">><</if>>
-		<<set $activeSlave.faceImplant to 1>>
-		<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
-	<</if>>
-	<<if ($activeSlave.ageImplant != 1) && ($activeSlave.age >= 25)>>
-		<<set $activeSlave.ageImplant = 1>>
-		<<AgeImplantAdjustment>>
-	<</if>>
-	<<if ($activeSlave.voice == 1) && ($activeSlave.voiceImplant == 0)>>
-		<<set $activeSlave.voice += 1>>
-		<<set $activeSlave.voiceImplant += 1>>
-	<</if>>
-	<<set $activeSlave.waist = Math.trunc($activeSlave.waist,-100,-15)>>
-	<<if (($activeSlave.boobShape == "saggy") || ($activeSlave.boobShape == "downward-facing"))>>
-		<<set $activeSlave.boobShape = "normal">>
-	<</if>>
-	<<if (($activeSlave.boobShape == "normal") || ($activeSlave.boobShape == "wide-set"))>>
-		<<if $activeSlave.boobs > 800>><<set $activeSlave.boobShape = "torpedo-shaped">><<else>><<set $activeSlave.boobShape = "perky">><</if>>
-	<</if>>
-<<else>>
-	The corporation does not use cosmetic surgery to improve its slaves for sale.
-<</if>>
-<<if $surgicalUpgradeImplants == "applied">>
-	Slaves are given tasteful breast, butt, and lip implants.
-	<<set $activeSlave.buttImplant = 1>>
-	<<set $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant, 0, 10)>>
-	<<set $activeSlave.boobsImplant = 600>>
-	<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+$activeSlave.boobsImplant, 0, 10000)>>
-	<<set $activeSlave.lipsImplant = 20>>
-	<<set $activeSlave.lips = Math.clamp($activeSlave.lips+$activeSlave.lipsImplant, 0, 55)>>
-<<elseif $surgicalUpgradeImplants == "absurd">>
-	Slaves are given absurd breast, butt, and lip implants.
-	<<set $activeSlave.buttImplant = 4>>
-	<<set $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant, 0, 10, $activeSlave.butt+$activeSlave.buttImplant)>>
-	<<set $activeSlave.boobsImplant = 2400>>
-	<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+$activeSlave.boobsImplant, 0, 10000)>>
-	<<set $activeSlave.lipsImplant = 60>>
-	<<set $activeSlave.lips = Math.clamp($activeSlave.lipsImplant+$activeSlave.buttImplant, 0, 100)>>
-<<else>>
-	Slaves are not given breast, butt, or lip implants.
-<</if>>
-<<if $surgicalUpgradeGenitalia == "futanari">>
-	Advanced surgical techniques are applied to turn the corporation's slaves into futanari.
-	<<if ($activeSlave.dick == 0)>><<set $activeSlave.dick = 2>><</if>>
-	<<if ($activeSlave.balls == 0)>><<set $activeSlave.balls = 2>><</if>>
-	<<if ($activeSlave.vagina == 0)>><<set $activeSlave.vagina = 1>><</if>>
-	<<set $activeSlave.ovaries = 1>>
-<<elseif $surgicalUpgradeGenitalia == "gelded">>
-	Slaves with balls have them removed, rendering them feminine and obedient.
-	<<if ($activeSlave.balls != 0)>>
-		<<set $activeSlave.balls = 0>>
-		<<set $activeSlave.scrotum = 0>>
-		<<set $activeSlave.dick = Math.clamp($activeSlave.dick-1, 1, 6)>>
-		<<set $activeSlave.boobs += 100*random(2,4)>>
-		<<set $activeSlave.butt += random(1,2)>>
-		<<set $activeSlave.muscles = 0>>
-		<<if ($activeSlave.faceShape == "masculine")>>
-			<<set $activeSlave.faceShape = "androgynous">>
-		<<elseif ($activeSlave.faceShape == "androgynous")>>
-			<<set $activeSlave.faceShape = "normal">>
-		<</if>>
-		<<set $activeSlave.devotion += random(5,10)>>
-		<<set $activeSlave.trust += random(5,10)>>
-		<<set $activeSlave.attrXY = Math.clamp($activeSlave.attrXY+random(5,10), 0, 100)>>
-	<</if>>
-<<elseif $surgicalUpgradeGenitalia == "fucknugget">>
-	It removes slaves' limbs and mental abilities, making any training pointless.
-<<else>>
-	No other surgery is applied.
-<</if>>
-<<if $drugUpgradeHormones == "XX">>
-	It applies almost universal female hormone therapy.
-	<<if ($activeSlave.dick > 0)>>
-		<<set $activeSlave.dick = Math.clamp($activeSlave.dick-1, 1, 6)>>
-	<</if>>
-	<<if ($activeSlave.balls > 0)>>
-		<<set $activeSlave.balls = Math.clamp($activeSlave.balls-1, 1, 6)>>
-	<</if>>
-	<<if ($activeSlave.clit > 0)>>
-		<<set $activeSlave.clit = Math.clamp($activeSlave.clit-1, 0, 3)>>
-	<</if>>
-	<<if ($activeSlave.voice < 3) && ($activeSlave.voice > 0)>>
-		<<set $activeSlave.voice = Math.clamp($activeSlave.voice+1, 1, 3)>>
-	<</if>>
-	<<if ($activeSlave.vagina > -1) && ($activeSlave.ovaries != 0) && ($activeSlave.vaginaLube < 2)>>
-		<<set $activeSlave.vaginaLube = Math.clamp($activeSlave.vaginaLube+1, 0, 2)>>
-	<</if>>
-	<<if (($activeSlave.butt-$activeSlave.buttImplant) < 2)>>
-		<<set $activeSlave.butt = Math.clamp($activeSlave.butt+1, 0, 10)>>
-	<</if>>
-	<<if (($activeSlave.boobs-$activeSlave.boobsImplant) < 500)>>
-		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+400, 0, 10000)>>
-	<</if>>
-	<<if (($activeSlave.face-$activeSlave.faceImplant) < 0) && ($activeSlave.face <= 95)>>
-		<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
-	<</if>>
-	<<if ($activeSlave.faceShape == "masculine")>>
-		<<set $activeSlave.faceShape = "androgynous">>
-	<<elseif ($activeSlave.faceShape == "androgynous")>>
-		<<set $activeSlave.faceShape = "normal">>
-	<</if>>
-	<<if ($activeSlave.physicalAge < 25)>>
-		<<set $activeSlave.shoulders = Math.clamp($activeSlave.shoulders-1, -2, 2)>>
-		<<set $activeSlave.hips = Math.clamp($activeSlave.hips+1, -2, 2)>>
-	<</if>>
-	<<if ($activeSlave.muscles > 30) && ($activeSlave.diet != "muscle building") && ($generalUpgradeMuscle != "toned") && ($generalUpgradeMuscle != "ripped")>>
-		<<set $activeSlave.muscles = Math.clamp($activeSlave.muscles-10, 0, 30)>>
-	<</if>>
-	<<if ($activeSlave.nipples == "tiny")>>
-		<<set $activeSlave.nipples = "cute">>
-	<</if>>
-	<<if ($activeSlave.height > 180)>>
-		<<set $activeSlave.height -= random(3,6)>>
-	<</if>>
-	<<set $activeSlave.devotion += random(5,10)>>
-	<<set $activeSlave.trust += random(5,10)>>
-	<<set $activeSlave.attrXY = Math.clamp($activeSlave.attrXY+random(5,10), 0, 100)>>
-<<elseif $drugUpgradeHormones == "XY">>
-	It applies almost universal male hormone therapy.
-	<<if ($activeSlave.dick > 0)>>
-		<<set $activeSlave.dick = Math.clamp($activeSlave.dick+1, 1, 6)>>
-	<</if>>
-	<<if ($activeSlave.balls > 0)>>
-		<<set $activeSlave.balls = Math.clamp($activeSlave.balls+1, 1, 6)>>
-	<</if>>
-	<<if ($activeSlave.clit > 0) && ($activeSlave.dick == 0)>>
-		<<set $activeSlave.clit = Math.clamp($activeSlave.clit+1, 0, 3)>>
-	<</if>>
-	<<if ($activeSlave.voice > 1)>>
-		<<set $activeSlave.voice = Math.clamp($activeSlave.voice-1, 1, 3)>>
-	<</if>>
-	<<if ($activeSlave.vagina > -1) && ($activeSlave.vaginaLube > 0)>>
-		<<set $activeSlave.vaginaLube = Math.clamp($activeSlave.vaginaLube-1, 0, 2)>>
-	<</if>>
-	<<set $activeSlave.butt = Math.clamp($activeSlave.butt-1, 0, 10)>>
-	<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs-400, 0, 10000)>>
-	<<if (($activeSlave.face-$activeSlave.faceImplant) < 0) && ($activeSlave.face > 10)>>
-		<<set $activeSlave.face = Math.clamp($activeSlave.face-20,-100,100)>>
-	<</if>>
-	<<if ($activeSlave.faceShape == "androgynous")>>
-		<<set $activeSlave.faceShape = "masculine">>
-	<<else>>
-		<<set $activeSlave.faceShape = "androgynous">>
-	<</if>>
-	<<if ($activeSlave.age < 25)>>
-		<<set $activeSlave.shoulders = Math.clamp($activeSlave.shoulders+1, -2, 2)>>
-		<<set $activeSlave.hips = Math.clamp($activeSlave.hips-1, -2, 2)>>
-	<</if>>
-	<<if ($activeSlave.muscles <= 95) && ($activeSlave.diet != "slimming")>>
-		<<set $activeSlave.muscles = Math.clamp($activeSlave.muscles+20, 0, 3)>>
-	<</if>>
-	<<if ($activeSlave.nipples == "huge")>>
-		<<set $activeSlave.nipples = "cute">>
-	<</if>>
-	<<if ($activeSlave.height < 155)>>
-		<<set $activeSlave.height += random(3,6)>>
-	<</if>>
-	<<set $activeSlave.devotion -= random(5,10)>>
-	<<set $activeSlave.trust -= random(5,10)>>
-	<<set $activeSlave.attrXX = Math.clamp($activeSlave.attrXX+random(5,10), 0, 100)>>
-<<else>>
-	It does not use hormones on a systematic level.
-<</if>>
-<<if $drugUpgradeInjectionTwo == "supermassive">>
-	Advanced growth hormones are applied on a grand scale.
-	<<set $activeSlave.lips = Math.clamp($activeSlave.lips+50, 0, 85)>>
-	<<set $activeSlave.butt = Math.clamp($activeSlave.butt+random(4,6), 0, 10)>>
-	<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+(100*random(40,60)), 0, 10000)>>
-	<<set $activeSlave.nipples = either("huge", "inverted")>>
-	<<if $activeSlave.dick > 0>>
-		<<set $activeSlave.dick = Math.clamp($activeSlave.dick+random(3,5), 0, 6)>>
-	<</if>>
-	<<if $activeSlave.balls > 0>>
-		<<set $activeSlave.balls = Math.clamp($activeSlave.balls+random(3,5), 0, 6)>>
-	<</if>>
-<<elseif $drugUpgradeInjectionTwo == "pastoral">>
-	Advanced growth hormones are applied with total focus on increasing slaves' productiveness.
-	<<set $activeSlave.lips = Math.clamp($activeSlave.lips+20, 0, 85)>>
-	<<set $activeSlave.butt = Math.clamp($activeSlave.butt+random(2,3), 0, 10)>>
-	<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+(100*random(60,80)), 0, 10000)>>
-	<<set $activeSlave.nipples = either("huge", "inverted")>>
-	<<set $activeSlave.lactation = 2>>
-	<<if $activeSlave.dick > 0>>
-		<<set $activeSlave.dick = Math.clamp($activeSlave.dick+random(6,8), 0, 10)>>
-	<</if>>
-	<<if $activeSlave.balls > 0>>
-		<<set $activeSlave.balls = Math.clamp($activeSlave.balls+random(4,6), 0, 6)>>
-	<</if>>
-<<elseif $drugUpgradeInjectionOne == "tasteful">>
-	Growth hormones are used to correct flat chests and butts.
-	<<set $activeSlave.lips = Math.clamp($activeSlave.lips+10, 15, 55)>>
-	<<if $activeSlave.butt < 3>>
-		<<set $activeSlave.butt = Math.clamp($activeSlave.butt+1, 3, 10)>>
-	<</if>>
-	<<if $activeSlave.boobs < 800>>
-		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+200, 800, 10000)>>
-	<</if>>
-<<elseif $drugUpgradeInjectionOne == "huge">>
-	Growth hormones are used throughout slave training to ensure expansion.
-	<<set $activeSlave.lips = Math.clamp($activeSlave.lips+20, 0, 55)>>
-	<<set $activeSlave.butt = Math.clamp($activeSlave.butt+random(2,3), 0, 10)>>
-	<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+(100*random(10,20)), 0, 10000)>>
-	<<set $activeSlave.nipples = either("cute", "partially inverted")>>
-	<<if $activeSlave.dick > 0>>
-		<<set $activeSlave.dick = Math.clamp($activeSlave.dick+random(2,3), 0, 5)>>
-	<</if>>
-	<<if $activeSlave.balls > 0>>
-		<<set $activeSlave.balls = Math.clamp($activeSlave.balls+random(2,3), 0, 5)>>
-	<</if>>
-<<else>>
-	Growth hormones are not applied.
-<</if>>
-
-<<if $surgicalUpgradeGenitalia == "fucknugget">>
-	<<set $activeSlave.fetish = "mindbroken">>
-	<<set $activeSlave.amp = 1>>
-	<<set $activeSlave.fetishStrength = 10, $activeSlave.attrXY = 50, $activeSlave.attrXX = 50, $activeSlave.attrKnown = 1, $activeSlave.devotion = 40, $activeSlave.trust = -40, $activeSlave.vaginalSkill = 0, $activeSlave.oralSkill = 0, $activeSlave.analSkill = 0, $activeSlave.combatSkill = 0, $activeSlave.whoreSkill = 0, $activeSlave.entertainSkill = 0, $activeSlave.intelligence = -2, $activeSlave.intelligenceImplant = 0, $activeSlave.sexualFlaw = "none", $activeSlave.sexualQuirk = "none", $activeSlave.behavioralFlaw = "none", $activeSlave.behavioralQuirk = "none">>
-<</if>>
 
+<<GenerateMarketSlave "corporate">>
 <br><br>
 
 Her presentation done, the
@@ -466,4 +106,4 @@ The offered price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit
 		<<if $sectors[_i].type == "CorporateMarket">><<set $sectors[_i].type = "Markets">><<break>><</if>>
 	<</for>>
 	<<goto "Main">>
-<</link>>
\ No newline at end of file
+<</link>>
diff --git a/src/uncategorized/growthResearchInstitute.tw b/src/uncategorized/growthResearchInstitute.tw
index 68fc7d49a16008e00577b971e292e7cf12533650..bfdabb044786e015001fd27de8281c0a5b096502 100644
--- a/src/uncategorized/growthResearchInstitute.tw
+++ b/src/uncategorized/growthResearchInstitute.tw
@@ -1,57 +1,17 @@
-:: Growth Research Institute
+:: Growth Research Institute [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Slave Schools">>
+/* Multi-Purchase Support */
+<<if ndef $newSlaves>><<set $newSlaves = []>><</if>>
+<<if $newSlaves.length > 0>>
+	<<set $nextButton = "Continue", $nextLink = "Bulk Slave Intro", $slaveMarket = "GRI", $returnTo = "Main", $newSlaveIndex = 0>>
+<</if>>
 
-<<set $nextButton = "Back">>\
-<<set $nextLink = "Buy Slaves">>\
-<<set $returnTo = "Buy Slaves">>\
-<<set $showEncyclopedia = 1>><<set $encyclopedia = "Slave Schools">>\
-\
 //The Growth Research Institute (GRI) is not primarily a slave school at all, but rather the world leader in female growth hormone development. It operates research centers in the Free Cities to avoid traditional medical research laws. GRI runs several slave schools to raise healthy, unmodified subjects for use in trials. After a year of experimental hormone treatment they are sold. <<if $GRI.schoolUpgrade != 0>><br><br>You have endowed <<if $GRI.schoolUpgrade == 1>>a research focus on advanced curatives, most subjects now leave the GRI at unnatural levels of vitality.<<else>>a research focus on milk production, subjects' breasts are bigger and milkier than ever.<</if>> As a major <<if $PC.title == 0>>benefactrix<<else>>benefactor<</if>> of the institution, you also receive a discount on them.<</if>>//
 
-GRI offers a fresh graduate for inspection via video call. The interview takes place in the graduate's bare-metal holding cell. Disturbingly, it is strongly reminiscent of an enclosure for a lab animal, only scaled up to contain a lab animal of human dimensions.
+<br><br>GRI offers a fresh graduate for inspection via video call. The interview takes place in the graduate's bare-metal holding cell. Disturbingly, it is strongly reminiscent of an enclosure for a lab animal, only scaled up to contain a lab animal of human dimensions.
 
-<<nobr>>
-<<set $activeSlaveOneTimeMinAge = 16>>
-<<set $activeSlaveOneTimeMaxAge = 19>>
-<<include "Generate XX Slave">>
-<<set $activeSlave.origin = "You bought her from the Growth Research Institute right after her use as a test subject ended.">>
-<<set $activeSlave.career = "a slave">>
-<<set $activeSlave.intelligenceImplant = 0>>
-<<set $activeSlave.devotion = random(-15,-5)>>
-<<set $activeSlave.trust = random(-25,-45)>>
-<<set $activeSlave.chem = 100>>
-<<if $GRI.schoolUpgrade == 1>>
-	<<set $activeSlave.health = 200>>
-<<else>>
-	<<set $activeSlave.health = random(-80,100)>>
-<</if>>
-<<set $activeSlave.height = random(160,210)>>
-<<set $activeSlave.butt = random(4,10)>>
-<<if $GRI.schoolUpgrade == 2>>
-	<<set $activeSlave.boobs = 200*random(15,30)>>
-	<<set $activeSlave.lactation = 2>>
-<<else>>
-	<<set $activeSlave.boobs = 200*random(4,20)>>
-<</if>>
-<<set $activeSlave.nipples = either("inverted", "huge")>>
-<<set $activeSlave.areolae = either(0, 1, 2, 3)>>
-<<set $activeSlave.clit = either(0, 1, 2, 3)>>
-<<set $activeSlave.lips = random(5,85)>>
-<<set $activeSlave.anus = 0>>
-<<set $activeSlave.vagina = 0>>
-<<set $activeSlave.preg = 0>>
-<<set $activeSlave.weight = 0>>
-<<set $activeSlave.vaginalSkill = 0>>
-<<set $activeSlave.oralSkill = 0>>
-<<set $activeSlave.analSkill = 0>>
-<<set $activeSlave.whoreSkill = 0>>
-<<set $activeSlave.entertainSkill = 0>>
-<<set $activeSlave.combatSkill = 0>>
-<<set $activeSlave.pubicHStyle = "waxed">>
-<<set $activeSlave.birthWeek = 0>>
-<<set $activeSlave.behavioralFlaw = either("odd")>>
-<<set $activeSlave.hStyle = "shaved">>
-<<set $activeSlave.hLength = 0>>
-<<set $activeSlave.customTat = "She has a barcode that identified her when she was a test subject at the Growth Research Institute tattooed on her left cheek.">>
+<<GenerateMarketSlave "GRI">>
 <<slaveCost $activeSlave>>
 <<if $GRI.schoolSale != 0>>
 	<<set $slaveCost = Math.trunc($slaveCost*0.5)>>
@@ -59,19 +19,25 @@ GRI offers a fresh graduate for inspection via video call. The interview takes p
 	<<set $slaveCost = Math.trunc($slaveCost*0.8)>>
 <</if>>
 <<if $slavesSeen > $slaveMarketLimit>><<set $slaveCost += Math.trunc($slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>>
-<</nobr>>\
-\
-The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
-\
-<<nobr>>
+
+<br><br>The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
+
 <<if $cash >= $slaveCost>>
-	[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$GRI.schoolSale = 0,$GRI.studentsBought += 1,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<br>[[Buy her and check out other slaves to order|Growth Research Institute][$cash -= $slaveCost, $GRI.schoolSale = 0, $GRI.studentsBought += 1, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
+	<<if $newSlaves.length == 0>>
+		<br>[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost, $GRI.schoolSale = 0, $GRI.studentsBought += 1, $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Main"]]
+	<<else>>
+		<br>[[Buy her and Finish your order of slaves|Bulk Slave Intro][$cash -= $slaveCost, $GRI.schoolSale = 0, $GRI.studentsBought += 1, $newSlaves.push($activeSlave)]]
+	<</if>>
 <<else>>
 	//You lack the necessary funds to buy this slave.//
 <</if>>
-<</nobr>>
-[[Request to see a different graduate of the same school|Growth Research Institute][$slavesSeen += 1]]
+<br>[[Decline to purchase her and check out another slave|Growth Research Institute][$slavesSeen += 1]]
+<<if $newSlaves.length > 0>>
+	<br>[[Finish your order of slaves|Bulk Slave Intro]]
+<</if>>
 
-<<set $saleDescription = 1>>\
-<<include "Long Slave Description">>\
-<<set $saleDescription = 0>>\
+<br><br>
+<<set $saleDescription = 1>>
+<<include "Long Slave Description">>
+<<set $saleDescription = 0>>
diff --git a/src/uncategorized/lecoleDesEnculees.tw b/src/uncategorized/lecoleDesEnculees.tw
index 4637e676f0a9cb95e77b1277bec868693a4b7cfe..8b39d9d9083e32c18b6f49e6655eae6ff517833e 100644
--- a/src/uncategorized/lecoleDesEnculees.tw
+++ b/src/uncategorized/lecoleDesEnculees.tw
@@ -1,70 +1,17 @@
-:: L'école des Enculées
+:: L'école des Enculées [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Slave Schools">>
+/* Multi-Purchase Support */
+<<if ndef $newSlaves>><<set $newSlaves = []>><</if>>
+<<if $newSlaves.length > 0>>
+	<<set $nextButton = "Continue", $nextLink = "Bulk Slave Intro", $slaveMarket = "LDE", $returnTo = "Main", $newSlaveIndex = 0>>
+<</if>>
 
-<<set $nextButton = "Back">>\
-<<set $nextLink = "Buy Slaves">>\
-<<set $returnTo = "Buy Slaves">>\
-<<set $showEncyclopedia = 1>><<set $encyclopedia = "Slave Schools">>\
-\
 //L'école des Enculées is one of the oldest networks of slave schools, but because its training must be started early, it is only now beginning to produce and show a return on its investors' stakes. It aims to produce graduates more feminine than the average naturally born female, in spite of their having been born male. The school is a global leader in hormonal feminization, which allows it to produce curvier slaves than many schools that focus on natural females. It also retains its graduates for a year after their majority and their enslavement, so as to be able to legally subject them to intensive sexual conditioning that focuses on their prostates as their main remaining locus of arousal. <<if $LDE.schoolUpgrade != 0>><br><br>Since you have endowed <<if $LDE.schoolUpgrade == 1>>the regular application of drugs to induce extreme infatuation in its graduates towards the first dominant person they encounter, any graduate purchased here will now promptly fall in love with you.<<else>>research into narrowly targeted hormonal treatments, its graduates are now available with generous members despite their femininity.<</if>> As a major <<if $PC.title  == 0>>benefactrix<<else>>benefactor<</if>> of the institution, you also receive a discount on them.<</if>>//
 
-L'école des Enculées offers a fresh graduate for inspection via video call. The interview takes place in the dormitory for the oldest class of girls. Absurdly sexual squeals repeatedly interrupt the call, making it very clear that someone close by the interviewee is experiencing a strong combination of anal pain and anal pleasure.
+<br><br>L'école des Enculées offers a fresh graduate for inspection via video call. The interview takes place in the dormitory for the oldest class of girls. Absurdly sexual squeals repeatedly interrupt the call, making it very clear that someone close by the interviewee is experiencing a strong combination of anal pain and anal pleasure.
 
-<<nobr>>
-<<set $activeSlaveOneTimeMinAge = 16>>
-<<set $activeSlaveOneTimeMaxAge = 19>>
-<<include "Generate XY Slave">>
-<<set $activeSlave.origin = "You bought her from the innovative École des Enculées right after her graduation.">>
-<<set $activeSlave.career = "a slave">>
-<<set $activeSlave.intelligenceImplant = 0>>
-<<set $activeSlave.chem = 100>>
-<<if $LDE.schoolUpgrade == 1>>
-	<<set $activeSlave.devotion = 100>>
-	<<set $activeSlave.trust = 100>>
-<<else>>
-	<<set $activeSlave.devotion = random(60,75)>>
-	<<set $activeSlave.trust = random(55,60)>>
-<</if>>
-<<set $activeSlave.health = random(60,80)>>
-<<set $activeSlave.muscles = 0>>
-<<set $activeSlave.butt to either(4,5)>>
-<<set $activeSlave.face to random(15,55)>>
-<<set $activeSlave.faceShape to "androgynous">>
-<<set $activeSlave.boobs to either(500,650,800)>>
-<<set $activeSlave.waist = -15>>
-<<set $activeSlave.lips to 35>>
-<<if $LDE.schoolUpgrade is 2>>
-	<<set $activeSlave.dick to either(3,4)>>
-	<<set $activeSlave.balls to either(3,4)>>
-	<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin to $activeSlave.dick>><</if>>
-<<if $activeSlave.balls > 0>><<set $activeSlave.scrotum to $activeSlave.balls>><</if>>
-<<else>>
-	<<set $activeSlave.dick = either(1,1,1,2)>>
-	<<set $activeSlave.balls = either(1,1,1,2)>>
-	<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-<<if $activeSlave.balls > 0>><<set $activeSlave.scrotum = $activeSlave.balls>><</if>>
-	<<set $activeSlave.pubertyXY = 0>>
-	<<set $activeSlave.pubertyAgeXY = random(24,50)>>
-<</if>>
-<<set $activeSlave.anus = 2>>
-<<set $activeSlave.vagina = -1>>
-<<set $activeSlave.preg = 0>>
-<<set $activeSlave.weight = random(0,20)>>
-<<set $activeSlave.vaginalSkill = 0>>
-<<set $activeSlave.oralSkill = 15>>
-<<set $activeSlave.analSkill = 100>>
-<<set $activeSlave.whoreSkill = 15>>
-<<set $activeSlave.entertainSkill = 15>>
-<<set $activeSlave.combatSkill = 0>>
-<<set $activeSlave.pubicHStyle = "waxed">>
-<<set $activeSlave.birthWeek = 0>>
-<<set $activeSlave.sexualFlaw = "none">>
-<<set $activeSlave.behavioralFlaw = either("none", "odd")>>
-<<set $activeSlave.fetishStrength = either(1, 2)>>
-<<set $activeSlave.fetish = "buttslut">>
-<<set $activeSlave.fetishKnown = 1>><<set $activeSlave.attrKnown = 1>>
-<<set $activeSlave.hStyle = "tails">>
-<<set $activeSlave.hLength = 100>>
-<<set $activeSlave.customTat = "She has the buttock-shaped symbol of the École des Enculées that created her tattooed on her left cheek.">>
+<<GenerateMarketSlave "LDE">>
 <<slaveCost $activeSlave>>
 <<if $LDE.schoolSale != 0>>
 	<<set $slaveCost = Math.trunc($slaveCost*0.5)>>
@@ -72,19 +19,25 @@ L'école des Enculées offers a fresh graduate for inspection via video call. Th
 	<<set $slaveCost = Math.trunc($slaveCost*0.8)>>
 <</if>>
 <<if $slavesSeen > $slaveMarketLimit>><<set $slaveCost += Math.trunc($slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>>
-<</nobr>>\
-\
-The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
-\
-<<nobr>>
+
+<br><br>The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
+
 <<if $cash >= $slaveCost>>
-	[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$LDE.schoolSale = 0,$LDE.studentsBought += 1,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<br>[[Buy her and check out other slaves to order|L'école des Enculées][$cash -= $slaveCost, $LDE.schoolSale = 0, $LDE.studentsBought += 1, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
+	<<if $newSlaves.length == 0>>
+		<br>[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost, $LDE.schoolSale = 0, $LDE.studentsBought += 1, $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Main"]]
+	<<else>>
+		<br>[[Buy her and Finish your order of slaves|Bulk Slave Intro][$cash -= $slaveCost, $LDE.schoolSale = 0, $LDE.studentsBought += 1, $newSlaves.push($activeSlave)]]
+	<</if>>
 <<else>>
 	//You lack the necessary funds to buy this slave.//
 <</if>>
-<</nobr>>
-[[Request to see a different graduate of the same school|L'école des Enculées][$slavesSeen += 1]]
+<br>[[Decline to purchase her and check out another slave|L'école des Enculées][$slavesSeen += 1]]
+<<if $newSlaves.length > 0>>
+	<br>[[Finish your order of slaves|Bulk Slave Intro]]
+<</if>>
 
-<<set $saleDescription = 1>>\
-<<include "Long Slave Description">>\
-<<set $saleDescription = 0>>\
+<br><br>
+<<set $saleDescription = 1>>
+<<include "Long Slave Description">>
+<<set $saleDescription = 0>>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index cd2bcd1db48081680e30016611d32588be2105b4..2b6497512178c1a974e9dca3462b0b6d49549817 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -352,6 +352,7 @@
 
 <<set _facListArr = [
     ["Penthouse Report", "The Penthouse", 1, $slavesVisible, -1, -1], /** must be first - may assign slaves to facilities **/
+    ["Master Suite Report", $masterSuiteNameCaps, $masterSuite, $masterSuiteSlaves, $Concubine, "Concubine"],
     ["Servants' Quarters Report", $servantsQuartersNameCaps, $servantsQuarters, $servantsQuartersSlaves, $Stewardess, "Stewardess"],
     ["Schoolroom Report", $schoolroomNameCaps, $schoolroom, $schoolroomSlaves, $Schoolteacher, "Schoolteacher"],
     ["Spa Report", $spaNameCaps, $spa, $spaSlaves, $Attendant, "Attendant"],
@@ -363,7 +364,6 @@
     ["Cellblock Report", $cellblockNameCaps, $cellblock, $cellblockSlaves, $Wardeness, "Wardeness"],
 /**    ["Lab Report"], "Research Lab", $researchLab.built, $researchLab.hired + $researchLab.menials, -1, -1], **/
     ["Incubator Report", $incubatorNameCaps, $incubator, $incubatorSlaves, -1, -1],
-    ["Master Suite Report", $masterSuiteNameCaps, $masterSuite, $masterSuiteSlaves, $Concubine, "Concubine"]
     ["Rules Assistant Report", "Rules Assistant", $rulesAssistantAuto, 1, -1, -1] /** should be last - may reassign slaves **/
 ]>>
 
diff --git a/src/uncategorized/slaveMarkets.tw b/src/uncategorized/slaveMarkets.tw
index 9f10bd1f73bc6cf54164423f5251ec0d3e1ef65b..2c5203d656ed66c63e4a7236eb44168b053d4314 100644
--- a/src/uncategorized/slaveMarkets.tw
+++ b/src/uncategorized/slaveMarkets.tw
@@ -1,17 +1,10 @@
-:: Slave Markets
+:: Slave Markets [nobr]
 
-<<nobr>>
-
-<<set $nextButton = "Back">>
-<<set $nextLink = "Buy Slaves">>
-<<set $returnTo = "Buy Slaves">>
-<<set $showEncyclopedia = 1>><<set $encyclopedia = "Kidnapped Slaves">>
-
-<<if $activeArcology != 0>>
-	<<set $slaveMarket = "neighbor">>
-	<<set $direction = $activeArcology.direction>>
-	<<set $slavesSeen += 1>>
-	<<set $activeArcology = 0>>
+<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Kidnapped Slaves">>
+/* Multi-Purchase Support */
+<<if ndef $newSlaves>><<set $newSlaves = []>><</if>>
+<<if $newSlaves.length > 0>>
+	<<set $nextButton = "Continue", $nextLink = "Bulk Slave Intro", $returnTo = "Main", $newSlaveIndex = 0>>
 <</if>>
 
 You visit the slave markets off the arcology plaza. It's always preferable to examine merchandise in person.
@@ -79,635 +72,135 @@ You're in the corner of the slave market occupied by "The Flesh Heap", a dumping
 <<set $activeSlave.fetishStrength = 0>>
 
 <<elseif $slaveMarket == "kidnappers">>
-
-You're in the area of the slave market populated by slave kidnappers, though of course they prefer more polite titles. The slaves here are cheap, and they look it. They're almost all recent catches from bad parts of the old world, and most of them have seen considerable abuse between the moment of their capture and entering your arcology.
-<<if $arcologies[0].FSPaternalistSMR == 1>>
-	Fortunately for them, such behavior is not permitted here. Though they remain frightened and angry, they are safe from rape, for now.
-<<else>>
-	<<set $seed = random(1,4)>>
-	There's more merchandise out of sight in the holding areas. To go by what you can hear,
-	<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
-	muffled insistence that the speaker is not a girl followed by struggling and then shrieks as a resistant dickgirl takes anal rape,
-	<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
-	muffled begging followed by struggling and then crying as a new slave learns how it feels to have a slave's cunt,
-	<<elseif ($seed == 3)>>
-	muffled gagging followed gasping and sobbing as a new slave tries to get her breath back after oral rape,
+	You're in the area of the slave market populated by slave kidnappers, though of course they prefer more polite titles. The slaves here are cheap, and they look it. They're almost all recent catches from bad parts of the old world, and most of them have seen considerable abuse between the moment of their capture and entering your arcology.
+	<<if $arcologies[0].FSPaternalistSMR == 1>>
+		Fortunately for them, such behavior is not permitted here. Though they remain frightened and angry, they are safe from rape, for now.
 	<<else>>
-	the unmistakable slap of flesh on flesh,
+		<<set $seed = random(1,4)>>
+		There's more merchandise out of sight in the holding areas. To go by what you can hear,
+		<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
+		muffled insistence that the speaker is not a girl followed by struggling and then shrieks as a resistant dickgirl takes anal rape,
+		<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
+		muffled begging followed by struggling and then crying as a new slave learns how it feels to have a slave's cunt,
+		<<elseif ($seed == 3)>>
+		muffled gagging followed gasping and sobbing as a new slave tries to get her breath back after oral rape,
+		<<else>>
+		the unmistakable slap of flesh on flesh,
+		<</if>>
+		at least one of the slavers is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
 	<</if>>
-	at least one of the slavers is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
-<</if>>
+	<<GenerateMarketSlave "kidnappers">>
 
-<<include "Generate New Slave">>
-<<set $activeSlave.origin = "You bought her from the kidnappers' slave market, and was probably forced into slavery.">>
-<<set $activeSlave.devotion -= 5>>
-<<set $activeSlave.trust = random(-45,-25)>>
-<<set $activeSlave.intelligence = either(-2, -1, -1, 0, 0, 0, 1)>>
-<<set $activeSlave.health = random(-80,20)>>
-<<if $activeSlave.vagina > 1 && isFertile($activeSlave)>><<set $activeSlave.preg = either(-2, -1, -1, -1, -1, -1, -1, -1, 1, 20)>><</if>>
 
 <<elseif $slaveMarket == "indentures">>
-
-You're in the area of the slave market that deals in indentured servants. The people sold here are slaves, but they are temporary slaves, and many of them have clauses in their indentures that prohibit some of the most severe practices. They exhibit a strange variety, with some looking more frightened than the most downtrodden slave and some looking almost cheerful.
-<<if $arcologies[0].FSPaternalistSMR == 1>>
-	The generous protections for slaves in your arcology lend this last group extra confidence.
-<<else>>
-	<<set $seed = random(1,4)>>
-	The area is crowded, and more indentured servants are packed together in the holding areas. To go by what you can hear,
-	<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
-	the unmistakable mixed shrieks, sobs, and slaps of anal rape,
-	<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
-	the characteristic crying and gasping of an unwilling girl giving up her cunt,
-	<<elseif ($seed == 3)>>
-	the gagging and expectoration of someone who has just gotten a mouthful of unwelcome cum,
+	You're in the area of the slave market that deals in indentured servants. The people sold here are slaves, but they are temporary slaves, and many of them have clauses in their indentures that prohibit some of the most severe practices. They exhibit a strange variety, with some looking more frightened than the most downtrodden slave and some looking almost cheerful.
+	<<if $arcologies[0].FSPaternalistSMR == 1>>
+		The generous protections for slaves in your arcology lend this last group extra confidence.
 	<<else>>
-	disconsolate sobbing interrupted by a gasp as something is stuffed inside someone's mouth, and followed by muffled screams,
+		<<set $seed = random(1,4)>>
+		The area is crowded, and more indentured servants are packed together in the holding areas. To go by what you can hear,
+		<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
+		the unmistakable mixed shrieks, sobs, and slaps of anal rape,
+		<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
+		the characteristic crying and gasping of an unwilling girl giving up her cunt,
+		<<elseif ($seed == 3)>>
+		the gagging and expectoration of someone who has just gotten a mouthful of unwelcome cum,
+		<<else>>
+		disconsolate sobbing interrupted by a gasp as something is stuffed inside someone's mouth, and followed by muffled screams,
+		<</if>>
+		one of them is learning exactly what her indenture allows.
 	<</if>>
-	one of them is learning exactly what her indenture allows.
-<</if>>
+	<<GenerateMarketSlave "indentures">>
 
-<<include "Generate New Slave">>
-<<set $activeSlave.origin = "You purchased her indenture contract, making her yours for as long as it lasts.">>
-<<set $activeSlave.indentureRestrictions = either(0,1,1,2,2,2,2)>>
-<<if $activeSlave.indentureRestrictions >= 2>>
-	<<set $activeSlave.devotion = random(25,45)>>
-	<<set $activeSlave.trust = random(-20,20)>>
-<<elseif $activeSlave.indentureRestrictions == 1>>
-	<<set $activeSlave.devotion = random(-20,20)>>
-	<<set $activeSlave.trust = random(-45,-25)>>
-<<else>>
-	<<set $activeSlave.devotion = random(-45,-25)>>
-	<<set $activeSlave.trust = random(-75,-60)>>
-<</if>>
-<<set $activeSlave.indenture = either(26, 52, 104, 156, 208)>>
 
 <<elseif $slaveMarket == "hunters">>
-
-You're in the area of the slave market populated by runaway slave catchers, a proud group. The slaves here know their way around Free Cities slavery already, and their eyes are watchful. Most of them probably harbor thoughts of another attempt at escape, though the slavers to their best to disabuse them of these notions.
-<<if $arcologies[0].FSPaternalistSMR == 1>>
-	Their methods are somewhat limited, as the rules in your arcology preclude the more effective methods of punishment.
-<<else>>
-	<<set $seed = random(1,4)>>
-	The slave catchers consider their catches fair game, though they usually confine their amusements to the holding areas out of sight. Not out of earshot, though; to go by what you can hear,
-	<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
-	vehement insistence that the speaker is not a girl followed by a beating and then shrieks as a rebellious dickgirl takes anal rape,
-	<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
-	vehement protestations followed by a beating and then crying as a slave's cunt takes her punishment for her,
-	<<elseif ($seed == 3)>>
-	struggling and gagging followed gasping and angry swearing as a rebellious slave tries to get her breath back after oral rape,
+	You're in the area of the slave market populated by runaway slave catchers, a proud group. The slaves here know their way around Free Cities slavery already, and their eyes are watchful. Most of them probably harbor thoughts of another attempt at escape, though the slavers to their best to disabuse them of these notions.
+	<<if $arcologies[0].FSPaternalistSMR == 1>>
+		Their methods are somewhat limited, as the rules in your arcology preclude the more effective methods of punishment.
 	<<else>>
-	struggling followed by the slap of flesh on flesh,
-	<</if>>
-	at least one of the runaway hunters is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
-<</if>>
-
-<<include "Generate New Slave">>
-<<set $activeSlave.origin = "You bought her from the runaway hunters' slave market after they recaptured her and her original owner did not pay their fee.">>
-<<set $activeSlave.devotion = -20>>
-<<set $activeSlave.trust = random(-15,15)>>
-<<set $activeSlave.intelligence = either(0, 1, 2)>>
-<<set $activeSlave.intelligenceImplant = 1>>
-<<set $activeSlave.teeth = "normal">>
-<<set $activeSlave.health = random(-10,70)>>
-<<if $activeSlave.vagina > -1>>
-	<<set $activeSlave.preg = either(-2, -1, -1, -1, -1, -1, -1, -1, 1, 1)>>
-	<<if $activeSlave.physicalAge < $activeSlave.pubertyAgeXX>><<set $activeSlave.preg = -1>><</if>>
-	<<set $activeSlave.vaginalSkill = random(15,100)>>
-	<<set $activeSlave.vagina = random(1,3)>>
-<</if>>
-<<if $activeSlave.balls > 0>>
-<<if random(1,3) == 1>>
-	<<set $activeSlave.balls = 0>>
-<</if>>
-<</if>>
-<<set $activeSlave.combatSkill = either(0, 0, 0, 0, 0, 1)>>
-<<set $activeSlave.entertainSkill = random(15,100)>>
-<<set $activeSlave.whoreSkill = random(15,100)>>
-<<set $activeSlave.oralSkill = random(15,100)>>
-<<set $activeSlave.analSkill = random(15,100)>>
-<<set $activeSlave.anus = random(1,3)>>
-<<set $activeSlave.weight = Math.clamp(-25, 25, $activeSlave.weight)>>
-<<set $activeSlave.behavioralFlaw = either("arrogant", "bitchy", "odd", "hates men", "hates women", "hates women", "anorexic", "gluttonous", "devout", "liberated")>>
-<<set $activeSlave.sexualFlaw = either("hates oral", "hates anal", "hates penetration", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental")>>
-<<if random(1,2) == 1>>
-	<<set $seed = random(2,8)*200>>
-	<<set $activeSlave.boobs += $seed>>
-	<<set $activeSlave.boobsImplant += $seed>>
-	<<set $seed = random(1,3)>>
-	<<set $activeSlave.butt += $seed>>
-	<<set $activeSlave.buttImplant += $seed>>
-	<<set $seed = either(10,20)>>
-	<<set $activeSlave.lips += $seed>>
-	<<set $activeSlave.lipsImplant += $seed>>
-	<<set $activeSlave.waist = Math.trunc($activeSlave.waist,-100,15)>>
-	<<if $activeSlave.face < 40>>
-	<<set $activeSlave.faceImplant = random(0,1)>>
-	<<set $activeSlave.face = Math.clamp($activeSlave.face+(20*$activeSlave.faceImplant),-100,100)>>
-	<</if>>
-	<<if $activeSlave.physicalAge >= 30>>
-	<<set $activeSlave.ageImplant += random(0,1)>>
-		<<if $activeSlave.ageImplant == 1>>
-			<<AgeImplantAdjustment>>
+		<<set $seed = random(1,4)>>
+		The slave catchers consider their catches fair game, though they usually confine their amusements to the holding areas out of sight. Not out of earshot, though; to go by what you can hear,
+		<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
+		vehement insistence that the speaker is not a girl followed by a beating and then shrieks as a rebellious dickgirl takes anal rape,
+		<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
+		vehement protestations followed by a beating and then crying as a slave's cunt takes her punishment for her,
+		<<elseif ($seed == 3)>>
+		struggling and gagging followed gasping and angry swearing as a rebellious slave tries to get her breath back after oral rape,
+		<<else>>
+		struggling followed by the slap of flesh on flesh,
 		<</if>>
+		at least one of the runaway hunters is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
 	<</if>>
-<</if>>
-<<if $arcologies[0].FSPaternalistSMR == 0>>
-	<<set $activeSlave.heels = 1>>
-<</if>>
+	<<GenerateMarketSlave "hunters">>
 
-<<elseif $slaveMarket == "underage raiders">>
 
-You're in the seediest area of the slave market populated by the cradle robbers, a despised group of slavers known for raiding elementary schools, orphanages and even preschools. They specifically target girls who have yet to experience their first period. The extreme risk of these raids makes the slavers here aggressive and confident,
-<<if $arcologies[0].FSPaternalistSMR == 1>>
-	though they do obey the rules of your arcology that restrain them from abusing the girls.
-<<else>>
-	<<set $seed = random(1,4)>>
-	though they restrain themselves from reducing the value of their captures by taking virginities. They do have their fun, though; to go by what you can hear from the holding area where they keep underage girls who can be sold,
-	<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
-	a muffled but obviously sadistic description of feminization, and the desperate sobbing in response,
-	<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
-	a muffled but obviously sadistic description of breeding, and the desperate sobbing in response,
-	<<elseif ($seed == 3)>>
-	faint struggling and crying that suggests that someone is being thoroughly groped and pinched,
+<<elseif $slaveMarket == "underage raiders">>
+	You're in the seediest area of the slave market populated by the cradle robbers, a despised group of slavers known for raiding elementary schools, orphanages and even preschools. They specifically target girls who have yet to experience their first period. The extreme risk of these raids makes the slavers here aggressive and confident,
+	<<if $arcologies[0].FSPaternalistSMR == 1>>
+		though they do obey the rules of your arcology that restrain them from abusing the girls.
 	<<else>>
-	the lewd, lubricated noise of someone giving a reluctant handjob,
+		<<set $seed = random(1,4)>>
+		though they restrain themselves from reducing the value of their captures by taking virginities. They do have their fun, though; to go by what you can hear from the holding area where they keep underage girls who can be sold,
+		<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
+		a muffled but obviously sadistic description of feminization, and the desperate sobbing in response,
+		<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
+		a muffled but obviously sadistic description of breeding, and the desperate sobbing in response,
+		<<elseif ($seed == 3)>>
+		faint struggling and crying that suggests that someone is being thoroughly groped and pinched,
+		<<else>>
+		the lewd, lubricated noise of someone giving a reluctant handjob,
+		<</if>>
+		at least one of the raiders is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
 	<</if>>
-	at least one of the raiders is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
-<</if>>
+	<<GenerateMarketSlave "underage raiders">>
 
-<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
-<<set $activeSlaveOneTimeMaxAge = $fertilityAge>>
-<<set $one_time_age_overrides_pedo_mode = 1>> /% Must not have had their first period. %/
-<<include "Generate New Slave">>
-<<set $activeSlave.origin = "You bought her from the underage raiders' slave market.">>
-<<set $activeSlave.trust -= 25>>
-<<set $activeSlave.health += 20>>
-<<set $activeSlave.career = $veryYoungCareers.random()>>
-<<set $activeSlave.birthWeek = 0>>
-<<if $activeSlave.vagina != -1>>
-	<<set $activeSlave.vaginalSkill = 0>>
-	<<set $activeSlave.vagina = 0>>
-	<<set $activeSlave.preg = 0>>
-<</if>>
-<<set $activeSlave.analSkill = 0>>
-<<set $activeSlave.anus = 0>>
-<<set $activeSlave.oralSkill = 0>>
-<<set $activeSlave.whoreSkill = 0>>
 
 <<elseif $slaveMarket == "raiders">>
-
-You're in the area of the slave market populated by girl raiders, that daredevil subset of slave kidnappers that specifically target old world schools, preparatory institutions, religious groups, and other sources of slaves that can soon be sold right after they reach their majorities. The extreme risk of these raids makes the slavers here aggressive and confident,
-<<if $arcologies[0].FSPaternalistSMR == 1>>
-	though they do obey the rules of your arcology that restrain them from abusing the girls.
-<<else>>
-	<<set $seed = random(1,4)>>
-	though they restrain themselves from reducing the value of their captures by taking virginities. They do have their fun, though; to go by what you can hear from the holding area where they keep slaves of age who can be sold,
-	<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
-	a muffled but obviously sadistic description of feminization, and the desperate sobbing in response,
-	<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
-	a muffled but obviously sadistic description of breeding, and the desperate sobbing in response,
-	<<elseif ($seed == 3)>>
-	faint struggling and crying that suggests that someone is being thoroughly groped and pinched,
-	<<else>>
-	the lewd, lubricated noise of someone giving a reluctant handjob,
-	<</if>>
-	at least one of the raiders is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
-<</if>>
-
-<<set $activeSlaveOneTimeMinAge = 18>>
-<<set $activeSlaveOneTimeMaxAge = 18>>
-<<set $one_time_age_overrides_pedo_mode = 1>> /% Supposed to have just reached the age of majority. %/
-<<include "Generate New Slave">>
-<<set $activeSlave.origin = "You bought her from the girl raiders' slave market the week she reached her majority.">>
-<<set $activeSlave.trust -= 25>>
-<<set $activeSlave.health += 20>>
-<<set $activeSlave.career = "a student">>
-<<set $activeSlave.birthWeek = 0>>
-<<if $activeSlave.vagina != -1>>
-	<<if random(1,2) == 1>>
-	<<set $activeSlave.vaginalSkill = 0>>
-	<<set $activeSlave.vagina = 0>>
-	<<set $activeSlave.preg = 0>>
-	<</if>>
-<</if>>
-<<if random(1,2) == 1>>
-	<<set $activeSlave.analSkill = 0>>
-	<<set $activeSlave.anus = 0>>
-<</if>>
-<<if random(1,2) == 1>>
-	<<set $activeSlave.oralSkill = 0>>
-<</if>>
-<<set $activeSlave.whoreSkill = 0>>
-
-<<elseif $slaveMarket == "neighbor">>
-
-<<for $i = 0; $i < $arcologies.length; $i++>>
-<<if $arcologies[$i].direction == $direction>>
-
-You're in the area of the slave market that specializes in slaves from within the Free City, viewing slaves from ''$arcologies[$i].name''. Some were trained there, specifically for sale, while others are simply being sold.
-
-<<include "Generate New Slave">>
-<<set $activeSlave.origin = "You bought her from ">>
-<<set $activeSlave.origin += $arcologies[$i].name>>
-<<set $activeSlave.origin += ".">>
-<<set $activeSlave.devotion = -20 + Math.trunc($arcologies[$i].prosperity/10) + random(0,10)>>
-<<set $activeSlave.trust = -20 + Math.trunc($arcologies[$i].prosperity/10) + random(0,10)>>
-<<set $activeSlave.health = -50 + Math.trunc($arcologies[$i].prosperity/25) + random(0,5)>>
-<<if $activeSlave.vagina > 0>>
-	<<set $activeSlave.vaginalSkill += Math.clamp($arcologies[$i].prosperity/2, 15, 100)>>
-<</if>>
-<<if $activeSlave.anus > 0>>
-	<<set $activeSlave.analSkill += Math.clamp($arcologies[$i].prosperity/2, 15, 100)>>
-<</if>>
-<<set $activeSlave.oralSkill += Math.clamp($arcologies[$i].prosperity/2, 15, 100)>>
-<<set $activeSlave.attrKnown = 1>>
-<<set $activeSlave.fetishKnown = 1>>
-<<if $activeSlave.accent >= 3>>
-	<<if $arcologies[$i].prosperity > random(0,200)>>
-	<<set $activeSlave.accent -= 1>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].prosperity > random(0,200)>>
-	<<set $activeSlave.sexualFlaw = "none">>
-<</if>>
-<<if $arcologies[$i].prosperity > random(0,200)>>
-	<<set $activeSlave.behavioralFlaw = "none">>
-<</if>>
-
-<<if $arcologies[$i].FSSubjugationist > 20>>
-	They're universally $arcologies[$i].FSSubjugationistRace.
-	<<set $fixedRace = $arcologies[$i].FSSubjugationistRace>><<NationalityToRace $activeSlave>><<NationalityToName $activeSlave>><<NationalityToAccent $activeSlave>><<set $fixedRace = 0>>
-<</if>>
-<<if $arcologies[$i].FSGenderRadicalist > 50>>
-	They all show signs of intensive hormone therapy.
-	<<set $activeSlave.chem += random(10,100)>>
-	<<if $activeSlave.dick > 0>>
-	<<set $activeSlave.boobs += 100*random(0,4)>>
-	<<set $activeSlave.butt += random(0,2)>>
-	<<if $activeSlave.hips < 2>>
-		<<set $activeSlave.hips += random(0,1)>>
-	<</if>>
-	<<if $activeSlave.shoulders > -2>>
-		<<set $activeSlave.shoulders -= random(0,1)>>
-	<</if>>
-	<<if $activeSlave.face < 80>>
-		<<set $activeSlave.face += random(0,20)>>
-	<</if>>
-	<<if $activeSlave.faceShape == "masculine">>
-	<<if random(0,1) == 0>>
-		<<set $activeSlave.faceShape = "androgynous">>
-	<</if>>
-	<</if>>
-	<<if $activeSlave.dick > 2>>
-		<<set $activeSlave.dick -= random(0,2)>>
-	<</if>>
-	<<if $activeSlave.balls > 2>>
-		<<set $activeSlave.balls -= random(0,2)>>
-	<</if>>
-	<<if $arcologies[$i].FSGenderRadicalistResearch == 1 && random(1,100) <= 20>>
-		This one is has a notably rounded belly for a slave with no vagina.
-		<<set $activeSlave.ovaries = 0>>
-		<<set $activeSlave.vagina = -1>>
-		<<set $activeSlave.mpreg = 1>>
-		<<set $activeSlave.preg = random(1,20)>>
-	<</if>>
+	You're in the area of the slave market populated by girl raiders, that daredevil subset of slave kidnappers that specifically target old world schools, preparatory institutions, religious groups, and other sources of slaves that can soon be sold right after they reach their majorities. The extreme risk of these raids makes the slavers here aggressive and confident,
+	<<if $arcologies[0].FSPaternalistSMR == 1>>
+		though they do obey the rules of your arcology that restrain them from abusing the girls.
 	<<else>>
-	<<set $activeSlave.boobs -= 100*random(0,2)>>
-	<<set $activeSlave.butt -= random(0,1)>>
-	<<if $activeSlave.hips > -2>>
-		<<set $activeSlave.hips -= random(0,1)>>
-	<</if>>
-	<<if $activeSlave.shoulders < 2>>
-		<<set $activeSlave.shoulders += random(0,1)>>
-	<</if>>
-	<<if $activeSlave.face >= -80>>
-		<<set $activeSlave.face -= random(0,20)>>
-	<</if>>
-	<<if $activeSlave.faceShape != "androgynous">>
-	<<if random(0,1) == 0>>
-		<<set $activeSlave.faceShape = "androgynous">>
-	<</if>>
-	<</if>>
-	<<set $activeSlave.clit += random(0,2)>>
-	<<set $activeSlave.labia += random(0,1)>>
-	<<if $activeSlave.muscles <= 95>>
-		<<set $activeSlave.muscles += random(0,20)>>
-	<</if>>
-	<</if>>
-<<elseif $arcologies[$i].FSGenderFundamentalist > 50>>
-	Fertile slaves from there almost never appear without swollen bellies and sensitive nipples.
-	<<set $activeSlave.preg = 0>> /*removing contraception of default slave generation so isFertile can work right*/
-	<<if isFertile($activeSlave)>>
-	<<set $activeSlave.preg = random(1,35)>>
-	<<set $activeSlave.lactation = random(0,1)>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSRepopulationFocus > 50>>
-	They are exclusively female and all extremely pregnant.
-	<<set $activeSlave.ovaries = 1>>
-	<<set $activeSlave.vagina = random(0,1,1,1,1,2,2,3,3,3,3)>>
-	<<set $activeSlave.dick = 0>>
-	<<set $activeSlave.balls = 0>>
-	<<set $activeSlave.scrotum = 0>>
-	<<set $activeSlave.preg = 0>> /*removing contraception of default slave generation so isFertile can work right*/
-	<<if isFertile($activeSlave)>>
-	<<set $activeSlave.vagina = random(1,4)>>
-	<<set $activeSlave.preg = random(21,35)>>
-	<<if random(1,2) == 1 && $seeHyperPreg == 1>>
-	<<set $activeSlave.pregType = random(10,29)>>
-	<<else>>
-	<<set $activeSlave.pregType = random(3,5)>>
-	<</if>>
-	<</if>>
-	<<set $activeSlave.lactation = random(0,1)>>
-<<elseif $arcologies[$i].FSRestart > 50>>
-	They have all been rendered unable to reproduce.
-	<<if $activeSlave.ovaries == 1>>
-		<<set $activeSlave.preg = -2>>
-	<</if>>
-	<<if $activeSlave.balls > 0>>
-		<<set $activeSlave.balls = 0>>
-	<</if>>
-	<<if $arcologies[$i].FSRestartResearch == 1>>
-		Smart and attractive slaves are beginning to be a rarity lately.
-		<<if $activeSlave.face >= 0>>
-			<<set $activeSlave.face -= 100>>
-		<</if>>
-		<<if $activeSlave.intelligence >= 0>>
-			<<set $activeSlave.intelligence -= 3>>
-		<</if>>
-		<<set $activeSlave.chem = random(40,100)>>
-		<<set $activeSlave.addict = either(0,0,0,0,0,0,0,0,5,20,20,50,100)>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSPaternalist > 20>>
-	They're often gratifyingly devoted and trusting.
-	<<if $activeSlave.devotion < 10>>
-	<<set $activeSlave.devotion += random(0,8)>>
-	<</if>>
-	<<if $activeSlave.trust < 50>>
-	<<set $activeSlave.trust += random(0,8)>>
-	<</if>>
-<<elseif $arcologies[$i].FSDegradationist > 20>>
-	They can be depended upon to be terrified into abject submission.
-	<<include "Degrading Name">>
-	<<if $activeSlave.trust > -10>>
-	<<set $activeSlave.trust -= random(0,10)>>
-	<</if>>
-	<<if random (1,100) > 90>>
-		<<set $activeSlave.eyes = -2>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSBodyPurist > 80>>
-	They're quite pristine, free of any genomic damage or addictions regardless of any transformations they've had.
-	<<set $activeSlave.chem = 0>>
-	<<set $activeSlave.addict = 0>>
-<<elseif $arcologies[$i].FSTransformationFetishist > 80>>
-	They vary in terms of what size their implants are, not whether they have them.
-	<<set $activeSlave.chem += random(10,100)>>
-	<<set $activeSlave.boobsImplant = 200*random(2,20)>>
-	<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-	<<set $activeSlave.buttImplant = random(2,5)>>
-	<<set $activeSlave.butt += $activeSlave.buttImplant>>
-	<<set $activeSlave.lipsImplant = either(10,20)>>
-	<<set $activeSlave.lips += $activeSlave.lipsImplant>>
-	<<if $arcologies[$i].FSTransformationFetishistResearch == 1 && random(1,100) <= 20>>
-		This one's implants are unusually large; a showcase of what her home arcology is capable of.
-		<<set $activeSlave.boobsImplant += 200*random(100,200)>>
-		<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-		<<set $activeSlave.buttImplant += (7,12)>>
-		<<set $activeSlave.butt += $activeSlave.buttImplant>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSYouthPreferentialist > 20>>
-	They're usually on the younger side.
-	<<if $activeSlave.actualAge > 30>>
-	<<if random(0,1) == 0>>
-	<<set $activeSlave.actualAge = random(18,25)>>
-	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-	<<if $activeSlave.boobs > 400>>
-		<<set $activeSlave.boobs -= 100*random(0,2)>>
-	<</if>>
-	<<if $activeSlave.butt > 3>>
-		<<set $activeSlave.butt -= random(0,2)>>
-	<</if>>
-	<<elseif $arcologies[$i].FSYouthPreferentialistResearch == 1>>
-		<<if $activeSlave.actualAge > 30>>
-			Well, all of them certainly look it. Always best to check their ages before buying.
-			<<set $activeSlave.visualAge = random(18,25)>>
-			<<set $activeSlave.chem += random(10,40)>>
-		<</if>>
-	<<else>>
-	And if they aren't, they sure don't look their age.
-		<<Set $activeSlave.ageImplant = 1>>
-		<<AgeImplantAdjustment>>
-	<</if>>
-	<</if>>
-<<elseif $arcologies[$i].FSMaturityPreferentialist > 20>>
-	They're usually on the more mature side.
-	<<if $activeSlave.actualAge < 30>>
-	<<if random(0,1) == 0>>
-	<<set $activeSlave.actualAge = random(36,$retirementAge)>>
-	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-	<<if $activeSlave.boobs < 400>>
-		<<set $activeSlave.boobs += 100*random(0,2)>>
-	<</if>>
-	<<if $activeSlave.butt < 3>>
-		<<set $activeSlave.butt += random(0,2)>>
-	<</if>>
-	<</if>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSSlimnessEnthusiast > 20>>
-	They're never overweight, and are often quite lithe.
-	<<if $activeSlave.boobs > 400>>
-	<<set $activeSlave.boobs -= 100*random(0,2)>>
-	<</if>>
-	<<if $activeSlave.butt > 3>>
-	<<set $activeSlave.butt -= random(0,2)>>
-	<</if>>
-	<<if $activeSlave.weight > 10>>
-	<<set $activeSlave.weight = random(-30,0)>>
-	<</if>>
-	<<if $arcologies[$i].FSSlimnessEnthusiast == 1 && random(1,100) <= 50>>
-		This one is perfectly flat; a perect showcase of her home arcology's tastes.
-		<<set $activeSlave.boobs = 100>>
-		<<set $activeSlave.butt = 0>>
-		<<set $activeSlave.weight = random(-30,0)>>
-	<</if>>
-<<elseif $arcologies[$i].FSAssetExpansionist > 20>>
-	Their butts are usually imposing, but their tits are what's often most impressive.
-	<<set $activeSlave.chem += random(10,100)>>
-	<<if $activeSlave.boobs < 5000>>
-	<<set $activeSlave.boobs += 100*random(5,50)>>
-	<</if>>
-	<<if $activeSlave.butt < 6>>
-	<<set $activeSlave.butt += random(2,4)>>
-	<</if>>
-	<<if $activeSlave.weight < -10>>
-	<<set $activeSlave.weight += random(0,20)>>
-	<</if>>
-	<<if $arcologies[$i].FSAssetExpansionistResearch == 1 && random(1,100) <= 20>>
-		This one is unusually large; a showcase of what her home arcology is capable of.
-		<<set $activeSlave.boobs = 200*random(100,200)>>
-		<<set $activeSlave.butt = random(10,20)>>
-		<<if $activeSlave.dick > 0 && $seeDicks != 0>>
-			<<set $activeSlave.dick = random(20,30)>>
-			<<set $activeSlave.balls = random(20,125)>>
+		<<set $seed = random(1,4)>>
+		though they restrain themselves from reducing the value of their captures by taking virginities. They do have their fun, though; to go by what you can hear from the holding area where they keep slaves of age who can be sold,
+		<<if ($seed == 1) && (random(0,99) < $seeDicks)>>
+		a muffled but obviously sadistic description of feminization, and the desperate sobbing in response,
+		<<elseif ($seed == 2) && (random(1,100) > $seeDicks)>>
+		a muffled but obviously sadistic description of breeding, and the desperate sobbing in response,
+		<<elseif ($seed == 3)>>
+		faint struggling and crying that suggests that someone is being thoroughly groped and pinched,
+		<<else>>
+		the lewd, lubricated noise of someone giving a reluctant handjob,
 		<</if>>
+		at least one of the raiders is amusing himself<<if $arcologies[0].FSGenderFundamentalist == "unset">> (or herself)<</if>> back there.
 	<</if>>
-<</if>>
-<<if $arcologies[$i].FSPastoralist > 20>>
-	Lactation is nearly universal among them, sometimes in ludicrous quantities. They tend to have huge udders, as well.
-	<<set $activeSlave.chem += random(10,100)>>
-	<<if $activeSlave.boobs < 5000>>
-	<<set $activeSlave.boobs += 100*random(5,50)>>
-	<</if>>
-	<<if $activeSlave.lactation == 0>>
-	<<set $activeSlave.lactation = either(0,1,1,1,1,2)>>
-	<</if>>
-	<<if $activeSlave.weight < -10>>
-	<<set $activeSlave.weight += random(0,20)>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSPhysicalIdealist > 20>>
-	They're usually quite muscular, some to a truly imposing degree, and they're almost never unhealthy.
-	<<set $activeSlave.muscles = random(10,100)>>
-	<<if $activeSlave.health < 20>>
-	<<set $activeSlave.health += random(0,8)>>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSChattelReligionist > 20>>
-	They're rarely anything but devoted, and sometimes present interesting peccadilloes.
-	<<set $activeSlave.slaveName = $chattelReligionistSlaveNames.random()>>
-	<<if $activeSlave.devotion < 10>>
-	<<set $activeSlave.devotion += random(0,10)>>
-	<</if>>
-	<<if $activeSlave.devotion < 10>>
-	<<set $activeSlave.devotion += random(0,10)>>
-	<</if>>
-	<<if random(0,1) == 0>>
-	<<set $activeSlave.behavioralQuirk = "sinful">>
-	<</if>>
-<</if>>
-<<if $arcologies[$i].FSRomanRevivalist > 20>>
-	They've often seen things that drive any squeamishness out of them.
-	<<set $activeSlave.slaveName = $romanSlaveNames.random()>>
-	<<if random(0,1) == 0>>
-	<<set $activeSlave.sexualQuirk = "unflinching">>
-	<</if>>
-<<elseif $arcologies[$i].FSEgyptianRevivalist > 20>>
-	They've often done things that give them a distinct appetite for perversion.
-	<<set $activeSlave.slaveName = $ancientEgyptianSlaveNames.random()>>
-	<<if random(0,1) == 0>>
-	<<set $activeSlave.sexualQuirk = "perverted">>
-	<</if>>
-<<elseif $arcologies[$i].FSEdoRevivalist > 20>>
-	They have frequently absorbed much culture there.
-	<<set $activeSlave.slaveName = $edoSlaveNames.random()>>
-	<<set $activeSlave.entertainSkill = Math.clamp($activeSlave.entertainSkill, 35, 100)>>
-<<elseif $arcologies[$i].FSArabianRevivalist > 20>>
-	They've often been part of large harems in which selflessness is prized.
-	<<if random(0,1) == 0>>
-	<<set $activeSlave.sexualQuirk = "caring">>
-	<</if>>
-<<elseif $arcologies[$i].FSChineseRevivalist > 20>>
-	They've all passed through a thorough and uncompromising educational system for slaves.
-	<<set $activeSlave.intelligenceImplant = 1>>
-	<<if $activeSlave.intelligence < 2>>
-	<<set $activeSlave.intelligence += random(0,2)>>
-	<</if>>
-<</if>>
-
-<<set $activeArcology = $arcologies[0]>>
-<<set $targetArcology = $arcologies[$i]>>
-<<include "Arcology Opinion">>
-<<set $opinion = Math.trunc($opinion/20)>>
-<<set $opinion = Math.clamp($opinion, -10, 10)>>
-
-<<if ($arcologies[0].FSDegradationist != "unset") && ($arcologies[$i].FSPaternalist != "unset")>>
-	<<set $activeSlave.devotion = random(-90,-60)>>
-	<<set $activeSlave.trust = -20>>
-	''$arcologies[$i].name'' is Paternalist, and your arcology is Degradationist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a literal Hell on Earth.
-<<elseif ($arcologies[0].FSDegradationist != "unset") && ($arcologies[$i].FSPaternalist != "unset")>>
-	<<set $activeSlave.devotion = random(60,90)>>
-	<<set $activeSlave.trust = 20>>
-	''$arcologies[$i].name'' is Degradationist, and your arcology is Paternalist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a promised land.
-<<elseif $opinion != 0>>
-	<<set $activeSlave.devotion += $opinion>>
-	<<set $activeSlave.trust += $opinion>>
-	<<set $activeSlave.devotion = Math.clamp($activeSlave.devotion, -100, 75)>>
-	<<set $activeSlave.trust = Math.clamp($activeSlave.trust, -100, 75)>>
-	<<if $opinion > 2>>
-		Your arcology's close social alignment with ''$arcologies[$i].name'' makes its slaves more accepting of the prospect of life in your arcology, and willing to trust that they'll know how to survive there.
-	<<elseif $opinion < -2>>
-		Your arcology's very different culture from ''$arcologies[$i].name'''s makes its slaves unhappy with the prospect of life in your arcology, and afraid of what will happen to them there.
-	<</if>>
-<</if>>
+	<<GenerateMarketSlave "raiders">>
 
-<</if>>
-<</for>>
-
-/*
-
-<<set $activeSlave.sexualQuirk = either("gagfuck queen", "painal queen", "strugglefuck queen", "tease", "romantic", "perverted", "caring", "unflinching", "size queen")>>
 
-<<set $activeSlave.behavioralQuirk = either("confident", "cutting", "funny", "adores women", "adores men", "fitness", "insecure", "sinful", "advocate")>>
+<<elseif $slaveMarket == "neighbor">>
+	You're in the area of the slave market that specializes in slaves from within the Free City, viewing slaves from ''<<print "$arcologies["+$numArcology+"].name">>''. Some were trained there, specifically for sale, while others are simply being sold.
+	<<GenerateMarketSlave "neighbor">>
 
-*/
 
 <<else>>
-
-You're in the area of the slave market populated by slave trainers, easily the wealthiest vendors. The slaves here have received obedience training and medical care, and many have had some basic sexual skills forced on them.
-<<if $arcologies[0].FSPaternalistSMR == 1>>
-	Though the rules of your arcology protected them from the worst excesses of the training profession, many of the slaves on sale have the haunted look of people still coming to terms with the idea that they no longer have any bodily autonomy.
-<<else>>
-	<<set $seed = random(1,4)>>
-	The trainers are a competitive bunch, and to go by what you can hear,
-	<<if ($seed == 1) && ($seeDicks != 0) && (random(0,100) > $seeDicks)>>
-	moaning interspersed with lewd, well-lubricated noises coming from both anal sex and vigorous masturbation,
-	<<elseif ($seed == 2) && ($seeDicks != 100) && (random(0,100) > $seeDicks)>>
-	moaning and the distinctive slap of feminine buttocks on thighs beneath them as a girl rides a dick,
-	<<elseif ($seed == 3)>>
-	the lush, lewd sounds of diligent oral sex,
+	You're in the area of the slave market populated by slave trainers, easily the wealthiest vendors. The slaves here have received obedience training and medical care, and many have had some basic sexual skills forced on them.
+	<<if $arcologies[0].FSPaternalistSMR == 1>>
+		Though the rules of your arcology protected them from the worst excesses of the training profession, many of the slaves on sale have the haunted look of people still coming to terms with the idea that they no longer have any bodily autonomy.
 	<<else>>
-	the call-and-response of a trainer and a slave running through a memorized obedience exercise,
+		<<set $seed = random(1,4)>>
+		The trainers are a competitive bunch, and to go by what you can hear,
+		<<if ($seed == 1) && ($seeDicks != 0) && (random(0,100) > $seeDicks)>>
+		moaning interspersed with lewd, well-lubricated noises coming from both anal sex and vigorous masturbation,
+		<<elseif ($seed == 2) && ($seeDicks != 100) && (random(0,100) > $seeDicks)>>
+		moaning and the distinctive slap of feminine buttocks on thighs beneath them as a girl rides a dick,
+		<<elseif ($seed == 3)>>
+		the lush, lewd sounds of diligent oral sex,
+		<<else>>
+		the call-and-response of a trainer and a slave running through a memorized obedience exercise,
+		<</if>>
+		at least one of them is applying some last-minute training to a slave in the holding pens nearby.
 	<</if>>
-	at least one of them is applying some last-minute training to a slave in the holding pens nearby.
-<</if>>
+	<<GenerateMarketSlave "trainers">>
 
-<<set $activeSlaveOneTimeMaxAge = 42>>
-<<include "Generate New Slave">>
-<<set $activeSlave.origin = "You bought her from the trainers' slave market after they put her through basic training.">>
-<<set $activeSlave.devotion += 40>>
-<<set $activeSlave.trust += 40>>
-<<set $activeSlave.health += 30>>
-<<if $activeSlave.vagina != -1>>
-	<<set $activeSlave.vaginalSkill += 15>>
-<<else>>
-	<<set $activeSlave.vaginalSkill = 0>>
-	<<set $activeSlave.clit = 0>>
-<</if>>
-<<if $activeSlave.vagina == 0>>
-	<<set $activeSlave.vagina += 1>>
-<</if>>
-<<if $activeSlave.anus == 0>>
-	<<set $activeSlave.anus += 1>>
-<</if>>
-<<set $activeSlave.oralSkill += 15>>
-<<set $activeSlave.analSkill += 15>>
-<<set $activeSlave.fetishKnown = 1>>
-<<if $activeSlave.accent >= 3>>
-	<<set $activeSlave.accent -= 1>>
-<</if>>
-<<if random(1,100) > 50>>
-	<<set $activeSlave.sexualFlaw = "none">>
-<</if>>
-<<if random(1,100) > 50>>
-	<<set $activeSlave.behavioralFlaw = "none">>
-<</if>>
 
 <</if>>
 
@@ -716,18 +209,7 @@ You're in the area of the slave market populated by slave trainers, easily the w
 <<slaveCost $activeSlave>>
 <<if $slavesSeen > $slaveMarketLimit>><<set $slaveCost += $slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1)>><</if>>
 
-<<if $slaveMarket == "corporate">>
-	<<if $publicShares <= $personalShares*0.2>>
-		Your commanding share of the corporation allows you to purchase its slaves at a very steep discount.
-		<<set $slaveCost *= 0.7>>
-	<<elseif $publicShares <= $personalShares*0.5>>
-		Your large share of the corporation permits you to purchase its slaves at a steep discount.
-		<<set $slaveCost *= 0.8>>
-	<<else>>
-		Your shares of the corporation come with a decent discount on its slaves.
-		<<set $slaveCost *= 0.9>>
-	<</if>>
-<<elseif $slaveMarket == "neighbor">>
+<<if $slaveMarket == "neighbor">>
 	<<for $i = 0; $i < $arcologies.length; $i++>>
 	<<if $arcologies[$i].direction == $direction>>
 	<<if $opinion != 0>>
@@ -744,19 +226,24 @@ You're in the area of the slave market populated by slave trainers, easily the w
 
 <<set $slaveCost = 500*Math.trunc($slaveCost/500)>>
 The offered price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
-<br>
+
 <<if $cash >= $slaveCost>>
-	[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<br>[[Buy her and check out other slaves to order|Slave Markets][$cash -= $slaveCost, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
+	<<if $newSlaves.length == 0>>
+		<br>[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<<else>>
+		<br>[[Buy her and Finish your order of slaves|Bulk Slave Intro][$cash -= $slaveCost, $newSlaves.push($activeSlave)]]
+	<</if>>
 <<else>>
 	//You lack the necessary funds to buy this slave.//
 <</if>>
-<br>
-[[Decline to purchase her and check out another slave|Slave Markets][$slavesSeen += 1]]
+<br>[[Decline to purchase her and check out another slave|Slave Markets][$slavesSeen += 1]]
+<<if $newSlaves.length > 0>>
+	<br>[[Finish your order of slaves|Bulk Slave Intro]]
+<</if>>
 
 <br><br>
 <<if $slaveMarket != "indentures" && $slaveMarket != "neighbor" && $slaveMarket != "heap">>
 	<<set $applyLaw = 1>>
 <</if>>
 <<set $saleDescription = 1>><<include "Long Slave Description">><<set $saleDescription = 0>>
-
-<</nobr>>
diff --git a/src/uncategorized/stClaverPreparatory.tw b/src/uncategorized/stClaverPreparatory.tw
index dd90a9d4c02c5f9f807c080a36f39699162e3748..c52c09db7d3b84f18285a35257497e844a1cd7ae 100644
--- a/src/uncategorized/stClaverPreparatory.tw
+++ b/src/uncategorized/stClaverPreparatory.tw
@@ -1,78 +1,17 @@
-:: St. Claver Preparatory
+:: St. Claver Preparatory [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Slave Schools">>
+/* Multi-Purchase Support */
+<<if ndef $newSlaves>><<set $newSlaves = []>><</if>>
+<<if $newSlaves.length > 0>>
+	<<set $nextButton = "Continue", $nextLink = "Bulk Slave Intro", $slaveMarket = "SCP", $returnTo = "Main", $newSlaveIndex = 0>>
+<</if>>
 
-<<set $nextButton = "Back">>\
-<<set $nextLink = "Buy Slaves">>\
-<<set $returnTo = "Buy Slaves">>\
-<<set $showEncyclopedia = 1>><<set $encyclopedia = "Slave Schools">>\
-\
 //St. Claver Preparatory is an old world preparatory school that was purchased by an old world medical school adapting to the demand for plastic surgeons from the Free Cities. It functions as a standard slave school until its students near graduation. At that point they are paired with a budding plastic surgeon. Intensive, flawless, and of course successful surgical modification of the student is required to complete certification as a Free Cities plastic surgeon of the top rank. All St. Claver's graduates are modified to a single exacting standard. Meanwhile, the slave school is free to train its students for obedience and sexual conformity. <<if $SCP.schoolUpgrade != 0>><br><br>You have endowed <<if $SCP.schoolUpgrade == 1>>thorough use of mental suppressants that reliably produce total devotion at the price of total stupidity.<<else>>diversification of the school's approach into general slave training that produces graduates with basic skills.<</if>> As a major <<if $PC.title == 0>>benefactrix<<else>>benefactor<</if>> of the institution, you also receive a discount on them.<</if>>//
 
-St. Claver Preparatory offers a fresh graduate for inspection via video call. The interview takes place in a very obviously medical office, with medical supply robots wheeling past its glass walls and nurses hurrying to and fro.
+<br><br>St. Claver Preparatory offers a fresh graduate for inspection via video call. The interview takes place in a very obviously medical office, with medical supply robots wheeling past its glass walls and nurses hurrying to and fro.
 
-<<nobr>>
-<<set $activeSlaveOneTimeMinAge = 16>>
-<<set $activeSlaveOneTimeMaxAge = 19>>
-<<include "Generate XX Slave">>
-<<set $activeSlave.origin = "You bought her from St. Claver Preparatory after she served as a plastic surgeon's passing final exam.">>
-<<set $activeSlave.chem = 20>>
-<<set $activeSlave.career = "a slave">>
-<<if $SCP.schoolUpgrade == 1>>
-	<<set $activeSlave.intelligenceImplant = 0>>
-	<<set $activeSlave.intelligence = -2>>
-	<<set $activeSlave.devotion = 100>>
-	<<set $activeSlave.trust = 100>>
-<<else>>
-	<<set $activeSlave.intelligenceImplant = 1>>
-	<<set $activeSlave.teeth = "normal">>
-	<<set $activeSlave.intelligence = either(-1, 0, 1, 2)>>
-	<<set $activeSlave.devotion = random(25,45)>>
-	<<set $activeSlave.trust = random(25,45)>>
-<</if>>
-<<set $activeSlave.health = 100>>
-<<set $activeSlave.heightImplant = 1>>
-<<set $activeSlave.height += 10>>
-<<set $activeSlave.buttImplant = (4-$activeSlave.butt)>>
-<<set $activeSlave.butt += $activeSlave.buttImplant>>
-<<set $activeSlave.boobsImplant = (2000-$activeSlave.boobs)>>
-<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-<<set $activeSlave.nipples = "tiny">>
-<<set $activeSlave.areolae = 0>>
-<<set $activeSlave.clit = 0>>
-<<set $activeSlave.lipsImplant = (20-$activeSlave.lips)>>
-<<set $activeSlave.lips += $activeSlave.lipsImplant>>
-<<set $activeSlave.faceImplant = 2>>
-<<set $activeSlave.face = Math.clamp($activeSlave.face+(20*$activeSlave.faceImplant),-100,100)>>
-<<set $activeSlave.faceShape to "normal">>
-<<set $activeSlave.anus to 0>>
-<<set $activeSlave.vagina to 0>>
-<<set $activeSlave.preg to 0>>
-<<set $activeSlave.weight = -20>>
-<<if $SCP.schoolUpgrade == 2>>
-	<<set $activeSlave.vaginalSkill = 15>>
-	<<set $activeSlave.oralSkill = 15>>
-	<<set $activeSlave.analSkill = 15>>
-	<<set $activeSlave.whoreSkill = 15>>
-	<<set $activeSlave.entertainSkill = 15>>
-<<else>>
-	<<set $activeSlave.vaginalSkill = 0>>
-	<<set $activeSlave.oralSkill = 0>>
-	<<set $activeSlave.analSkill = 0>>
-	<<set $activeSlave.whoreSkill = 0>>
-	<<set $activeSlave.entertainSkill = 0>>
-<</if>>
-<<set $activeSlave.combatSkill = 0>>
-<<set $activeSlave.pubicHStyle = "waxed">>
-<<set $activeSlave.underArmHStyle = "waxed">>
-<<set $activeSlave.birthWeek = 0>>
-<<set $activeSlave.sexualFlaw = either("none")>>
-<<set $activeSlave.behavioralFlaw = either("none")>>
-<<set $activeSlave.hStyle = "tails">>
-<<set $activeSlave.hColor = "blonde">>
-<<set $activeSlave.pubicHColor = "blonde">>
-<<set $activeSlave.underArmHColor = "blonde">>
-<<if $activeSlave.race != "white">><<set $activeSlave.race = "surgically altered to look white">><</if>>
-<<set $activeSlave.skin = "tanned">>
-<<set $activeSlave.customTat = "She has the coat of arms of St. Claver Preparatory tattooed on her left cheek.">>
+<<GenerateMarketSlave "SCP">>
 <<slaveCost $activeSlave>>
 <<if $SCP.schoolSale != 0>>
 	<<set $slaveCost = Math.trunc($slaveCost*0.5)>>
@@ -80,19 +19,25 @@ St. Claver Preparatory offers a fresh graduate for inspection via video call. Th
 	<<set $slaveCost = Math.trunc($slaveCost*0.8)>>
 <</if>>
 <<if $slavesSeen > $slaveMarketLimit>><<set $slaveCost += Math.trunc($slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>>
-<</nobr>>\
-\
-The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
-\
-<<nobr>>
+
+<br><br>The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
+
 <<if $cash >= $slaveCost>>
-	[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$SCP.schoolSale = 0,$SCP.studentsBought += 1,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<br>[[Buy her and check out other slaves to order|St. Claver Preparatory][$cash -= $slaveCost, $SCP.schoolSale = 0, $SCP.studentsBought += 1, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
+	<<if $newSlaves.length == 0>>
+		<br>[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost, $SCP.schoolSale = 0, $SCP.studentsBought += 1, $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Main"]]
+	<<else>>
+		<br>[[Buy her and Finish your order of slaves|Bulk Slave Intro][$cash -= $slaveCost, $SCP.schoolSale = 0, $SCP.studentsBought += 1, $newSlaves.push($activeSlave)]]
+	<</if>>
 <<else>>
 	//You lack the necessary funds to buy this slave.//
 <</if>>
-<</nobr>>
-[[Request to see a different graduate of the same school|St. Claver Preparatory][$slavesSeen += 1]]
+<br>[[Decline to purchase her and check out another slave|St. Claver Preparatory][$slavesSeen += 1]]
+<<if $newSlaves.length > 0>>
+	<br>[[Finish your order of slaves|Bulk Slave Intro]]
+<</if>>
 
-<<set $saleDescription = 1>>\
-<<include "Long Slave Description">>\
-<<set $saleDescription = 0>>\
+<br><br>
+<<set $saleDescription = 1>>
+<<include "Long Slave Description">>
+<<set $saleDescription = 0>>
diff --git a/src/uncategorized/theFutanariSisters.tw b/src/uncategorized/theFutanariSisters.tw
index 7dd71d80d3b836a5d3d9139ca52129f71fc43fa0..4e0c085af60d2f884fd05c86f87242368ed843cc 100644
--- a/src/uncategorized/theFutanariSisters.tw
+++ b/src/uncategorized/theFutanariSisters.tw
@@ -1,6 +1,11 @@
 :: The Futanari Sisters [nobr]
 
 <<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Slave Schools">>
+/* Multi-Purchase Support */
+<<if ndef $newSlaves>><<set $newSlaves = []>><</if>>
+<<if $newSlaves.length > 0>>
+	<<set $nextButton = "Continue", $nextLink = "Bulk Slave Intro", $slaveMarket = "TFS", $returnTo = "Main", $newSlaveIndex = 0>>
+<</if>>
 
 <<if $TFS.schoolPresent == 1>>
 
@@ -76,171 +81,7 @@ The Sisters offer a member selected for sale into slavery for inspection via vid
 
 <br><br>
 
-<<set $activeSlaveOneTimeMinAge = 25>>
-<<set $activeSlaveOneTimeMaxAge = 29>>
-<<set $one_time_age_overrides_pedo_mode = 1>>
-<<include "Generate XY Slave">>
-<<set $activeSlave.origin = "You bought her from the enigmatic Futanari Sisters after they sold her into slavery.">>
-<<set $activeSlave.career = "a Futanari Sister">>
-<<set $activeSlave.faceShape = either("sensual", "exotic")>>
-<<set _sisterAge = random(1,5)>>
-<<if _sisterAge == 1>>
-	<<set $activeSlave.intelligence = -2>>
-	<<set $activeSlave.hips = 0>>
-	<<set $activeSlave.face = either(35,35,35,75,100)>>
-	<<if $TFS.schoolUpgrade == 1>>
-		<<set $activeSlave.balls = 1>>
-		<<set $activeSlave.scrotum = 0>>
-	<<elseif $TFS.schoolUpgrade == 2>>
-		<<set $activeSlave.balls = 6>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<<else>>
-		<<set $activeSlave.balls = random(2,3)>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<</if>>
-	<<set $activeSlave.lips = 0>>
-	<<set $activeSlave.weight = 0>>
-	<<set $activeSlave.actualAge = random(19,24)>>
-	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-	<<set $activeSlave.vagina = 2>>
-	<<set $activeSlave.anus = 2>>
-	<<set $activeSlave.fetish = "submissive">>
-<<elseif _sisterAge == 2>>
-	<<set $activeSlave.intelligence = -1>>
-	<<set $activeSlave.hips = 1>>
-	<<set $activeSlave.face = either(35,35,35,75,100)>>
-	<<if $TFS.schoolUpgrade == 1>>
-		<<set $activeSlave.balls = 1>>
-		<<set $activeSlave.scrotum = 0>>
-	<<elseif $TFS.schoolUpgrade == 2>>
-		<<set $activeSlave.balls = 6>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<<else>>
-		<<set $activeSlave.balls = random(2,3)>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<</if>>
-	<<set $activeSlave.lips = 0>>
-	<<set $activeSlave.weight = 0>>
-	<<set $activeSlave.vagina = 2>>
-	<<set $activeSlave.anus = 2>>
-	<<set $activeSlave.fetish = either("submissive", "buttslut", "cumslut")>>
-<<elseif _sisterAge == 3>>
-	<<set $activeSlave.intelligence = 0>>
-	<<set $activeSlave.hips = 2>>
-	<<set $activeSlave.face = either(35,35,75,75,100)>>
-	<<if $TFS.schoolUpgrade == 1>>
-		<<set $activeSlave.balls = 1>>
-		<<set $activeSlave.scrotum = 0>>
-	<<elseif $TFS.schoolUpgrade == 2>>
-		<<set $activeSlave.balls = 6>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<<else>>
-		<<set $activeSlave.balls = random(3,4)>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<</if>>
-	<<set $activeSlave.lips = random(15,25)>>
-	<<set $activeSlave.weight = 20>>
-	<<set $activeSlave.actualAge = random(30,34)>>
-	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-	<<set $activeSlave.vagina = 2>>
-	<<set $activeSlave.anus = 2>>
-	<<set $activeSlave.fetish = either("buttslut", "cumslut")>>
-<<elseif _sisterAge == 4>>
-	<<set $activeSlave.intelligence = 1>>
-	<<set $activeSlave.hips = 2>>
-	<<set $activeSlave.face = either(35,75,75,100,100)>>
-	<<if $TFS.schoolUpgrade == 1>>
-		<<set $activeSlave.balls = 1>>
-		<<set $activeSlave.scrotum = 0>>
-	<<elseif $TFS.schoolUpgrade == 2>>
-		<<set $activeSlave.balls = 6>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<<else>>
-		<<set $activeSlave.balls = random(4,5)>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<</if>>
-	<<set $activeSlave.lips = random(25,55)>>
-	<<set $activeSlave.weight = 20>>
-	<<set $activeSlave.actualAge = random(35,39)>>
-	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-	<<set $activeSlave.vagina = 3>>
-	<<set $activeSlave.anus = 3>>
-	<<set $activeSlave.fetish = either("buttslut", "cumslut", "dom")>>
-<<else>>
-	<<set $activeSlave.intelligence = 2>>
-	<<set $activeSlave.hips = 2>>
-	<<set $activeSlave.face = either(35,75,100,100,100)>>
-	<<if $TFS.schoolUpgrade == 1>>
-		<<set $activeSlave.balls = 1>>
-		<<set $activeSlave.scrotum = 0>>
-	<<elseif $TFS.schoolUpgrade == 2>>
-		<<set $activeSlave.balls = 6>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<<else>>
-		<<set $activeSlave.balls = random(5,6)>>
-		<<set $activeSlave.scrotum = $activeSlave.balls>>
-	<</if>>
-	<<set $activeSlave.lips = random(25,55)>>
-	<<set $activeSlave.weight = 50>>
-	<<set $activeSlave.actualAge = random(40,42)>>
-	<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
-	<<set $activeSlave.visualAge = $activeSlave.actualAge>>
-	<<set $activeSlave.vagina = 3>>
-	<<set $activeSlave.anus = 3>>
-	<<set $activeSlave.fetish = "dom">>
-<</if>>
-<<set $activeSlave.chem = 100+(_sisterAge*50)>>
-<<set $activeSlave.butt = _sisterAge+random(2,4)>>
-<<set $activeSlave.boobs = 50*((10*_sisterAge)+random(10,20))>>
-<<set $activeSlave.dick = _sisterAge+random(1,2)>>
-<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
-<<set $activeSlave.preg = -2>>
-<<if $TFS.farmUpgrade > 0>>
-	<<set $activeSlave.ovaries = 1>>
-	<<set $activeSlave.preg = -1>>
-	<<if $TFS.farmUpgrade == 2>>
-		<<if $week - $TFS.farmUpgradeAsked < 35>>
-			<<set $activeSlave.preg = random(1,($week - $TFS.farmUpgradeAsked))>>
-		<<else>>
-			<<set $activeSlave.preg = random(1,35)>>
-		<</if>>
-	<</if>>
-<</if>>
-<<set $activeSlave.intelligenceImplant = 1>>
-<<set $activeSlave.teeth = "normal">>
-<<if $TFS.schoolUpgrade == 2>>
-	<<set $activeSlave.energy = 100>>
-<<else>>
-	<<set $activeSlave.energy = $activeSlave.physicalAge+random(20,30)>>
-<</if>>
-<<set $activeSlave.devotion = random(30,40)>>
-<<set $activeSlave.trust = random(60,75)>>
-<<set $activeSlave.health = random(60,80)>>
-<<set $activeSlave.muscles = 20>>
-<<set $activeSlave.waist = -15>>
-<<set $activeSlave.shoulders = 1>>
-<<set $activeSlave.vaginalSkill = 100>>
-<<set $activeSlave.oralSkill = 100>>
-<<set $activeSlave.analSkill = 100>>
-<<set $activeSlave.whoreSkill = 15>>
-<<set $activeSlave.entertainSkill = 100>>
-<<set $activeSlave.combatSkill = 0>>
-<<set $activeSlave.pubicHStyle = "waxed">>
-<<set $activeSlave.underArmHStyle = "waxed">>
-<<if $TFS.schoolUpgrade == 1>>
-	<<set $activeSlave.sexualQuirk = "caring">>
-<</if>>
-<<set $activeSlave.sexualFlaw = either("none", "hates women")>>
-<<set $activeSlave.behavioralFlaw = either("none", "arrogant")>>
-<<set $activeSlave.fetishStrength = 100>>
-<<set $activeSlave.fetishKnown = 0>>
-<<set $activeSlave.attrKnown = 0>>
-<<set $activeSlave.hStyle = "neat">>
-<<set $activeSlave.hLength = 150>>
-<<set $activeSlave.customTat = "She has a simple pink heart tattooed on her right temple.">>
+<<GenerateMarketSlave "TFS">>
 <<slaveCost $activeSlave>>
 <<set $slaveCost = Math.trunc($slaveCost*0.8)>>
 <<if $TFS.schoolSale != 0>>
@@ -252,13 +93,20 @@ The Sisters offer a member selected for sale into slavery for inspection via vid
 
 The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
 
-<br>
 <<if $cash >= $slaveCost>>
-	[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$TFS.schoolSale = 0,$TFS.studentsBought += 1,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<br>[[Buy her and check out other slaves to order|The Futanari Sisters][$cash -= $slaveCost, $TFS.schoolSale = 0, $TFS.studentsBought += 1, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
+	<<if $newSlaves.length == 0>>
+		<br>[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost, $TFS.schoolSale = 0, $TFS.studentsBought += 1, $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Main"]]
+	<<else>>
+		<br>[[Buy her and Finish your order of slaves|Bulk Slave Intro][$cash -= $slaveCost, $TFS.schoolSale = 0, $TFS.studentsBought += 1, $newSlaves.push($activeSlave)]]
+	<</if>>
 <<else>>
 	//You lack the necessary funds to buy this slave.//
 <</if>>
-<br>[[Request to see a different graduate of the same school|The Futanari Sisters][$slavesSeen += 1]]
+<br>[[Decline to purchase her and check out another slave|The Futanari Sisters][$slavesSeen += 1]]
+<<if $newSlaves.length > 0>>
+	<br>[[Finish your order of slaves|Bulk Slave Intro]]
+<</if>>
 
 <br><br>
 <<set $saleDescription = 1>><<include "Long Slave Description">><<set $saleDescription = 0>>
diff --git a/src/uncategorized/theGymnasiumAcademy.tw b/src/uncategorized/theGymnasiumAcademy.tw
index 80759dced8f9efa5b95619f30f96d4b6201af4e3..5516e635a8f396f9add72605c975d93f3638df4c 100644
--- a/src/uncategorized/theGymnasiumAcademy.tw
+++ b/src/uncategorized/theGymnasiumAcademy.tw
@@ -1,59 +1,17 @@
-:: The Gymnasium-Academy
+:: The Gymnasium-Academy [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Slave Schools">>
+/* Multi-Purchase Support */
+<<if ndef $newSlaves>><<set $newSlaves = []>><</if>>
+<<if $newSlaves.length > 0>>
+	<<set $nextButton = "Continue", $nextLink = "Bulk Slave Intro", $slaveMarket = "TGA", $returnTo = "Main", $newSlaveIndex = 0>>
+<</if>>
 
-<<set $nextButton = "Back">>\
-<<set $nextLink = "Buy Slaves">>\
-<<set $returnTo = "Buy Slaves">>\
-<<set $showEncyclopedia = 1>><<set $encyclopedia = "Slave Schools">>\
-\
 //The Gymnasium-Academy is a very unusual slave school. It sits at a bizarre juncture of the evolving gender roles and slave roles in the Free Cities. Its graduates are exclusively born male, and are not surgically or hormonally changed, but are thoroughly indoctrinated in the gender roles of the Free Cities to be accepting of their place in the new and rapidly changing world. Since the Gymnasium-Academy produces graduates with a greater ability to build muscle, fitness and virility than any of its competitors, it also trains for athletic perfection to further differentiate them. This training relies on traditional methods of corporal punishment. <<if $TGA.schoolUpgrade != 0>><br><br>Since you have endowed <<if $TGA.schoolUpgrade == 1>>advanced training methods at the Gymnasium-Academy, its graduates are now fanatically loyal.<<else>>a combat training center at the Gymnasium-Academy, its graduates are now deadly fighters.<</if>> As a major <<if $PC.title == 0>>benefactrix<<else>>benefactor<</if>> of the institution, you also receive a discount on them.<</if>>//
 
-The Gymnasium-Academy offers a fresh graduate for inspection via video call. The interview takes place in an office overlooking an expansive workout room, in which a large number of naked, fit young bodies are performing punishing workout routines.
+<br><br>The Gymnasium-Academy offers a fresh graduate for inspection via video call. The interview takes place in an office overlooking an expansive workout room, in which a large number of naked, fit young bodies are performing punishing workout routines.
 
-<<nobr>>
-<<set $activeSlaveOneTimeMinAge = 16>>
-<<set $activeSlaveOneTimeMaxAge = 19>>
-<<include "Generate XY Slave">>
-<<set $activeSlave.origin = "You bought her fresh from the intense Gymnasium-Academy right after her majority.">>
-<<set $activeSlave.career = "a slave">>
-<<set $activeSlave.intelligenceImplant = 1>>
-<<set $activeSlave.teeth = "normal">>
-<<set $activeSlave.intelligence = either (-1, 0, 1, 2)>>
-<<set $activeSlave.chem = 20>>
-<<if $TGA.schoolUpgrade == 1>>
-	<<set $activeSlave.devotion = 100>>
-	<<set $activeSlave.trust = 100>>
-<<else>>
-	<<set $activeSlave.devotion = random(25,45)>>
-	<<set $activeSlave.trust = random(25,45)>>
-<</if>>
-<<set $activeSlave.health = 100>>
-<<set $activeSlave.muscles = either(20, 50, 50)>>
-<<set $activeSlave.butt = either(2, 2, 3)>>
-<<set $activeSlave.boobs = either(100, 200)>>
-<<set $activeSlave.dick = random(3,5)>>
-<<set $activeSlave.balls = random(3,5)>>
-<<set $activeSlave.anus = 0>>
-<<set $activeSlave.vagina = -1>>
-<<set $activeSlave.preg = 0>>
-<<set $activeSlave.weight = 0>>
-<<set $activeSlave.vaginalSkill = 0>>
-<<set $activeSlave.oralSkill = 0>>
-<<set $activeSlave.analSkill = 0>>
-<<set $activeSlave.whoreSkill = 0>>
-<<set $activeSlave.entertainSkill = 0>>
-<<if $TGA.schoolUpgrade == 2>>
-	<<set $activeSlave.combatSkill = 1>>
-<<else>>
-	<<set $activeSlave.combatSkill = 0>>
-<</if>>
-<<set $activeSlave.pubicHStyle = "waxed">>
-<<set $activeSlave.underArmHStyle = "waxed">>
-<<set $activeSlave.birthWeek = 0>>
-<<set $activeSlave.sexualFlaw = either("none", "apathetic")>>
-<<set $activeSlave.behavioralFlaw = either("none", "arrogant", "odd")>>
-<<set $activeSlave.hStyle = "short">>
-<<set $activeSlave.hLength = 2>>
-<<set $activeSlave.customTat = "She has the baroque crest of the Gymnasium-Academy that trained her branded into her left cheek.">>
+<<GenerateMarketSlave "TGA">>
 <<slaveCost $activeSlave>>
 <<if $TGA.schoolSale != 0>>
 	<<set $slaveCost = Math.trunc($slaveCost*0.5)>>
@@ -61,19 +19,25 @@ The Gymnasium-Academy offers a fresh graduate for inspection via video call. The
 	<<set $slaveCost = Math.trunc($slaveCost*0.8)>>
 <</if>>
 <<if $slavesSeen > $slaveMarketLimit>><<set $slaveCost += Math.trunc($slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>>
-<</nobr>>\
-\
-The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
-\
-<<nobr>>
+
+<br><br>The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
+
 <<if $cash >= $slaveCost>>
-	[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$TGA.schoolSale = 0,$TGA.studentsBought += 1,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<br>[[Buy her and check out other slaves to order|The Gymnasium-Academy][$cash -= $slaveCost, $TGA.schoolSale = 0, $TGA.studentsBought += 1, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
+	<<if $newSlaves.length == 0>>
+		<br>[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost, $TGA.schoolSale = 0, $TGA.studentsBought += 1, $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Main"]]
+	<<else>>
+		<br>[[Buy her and Finish your order of slaves|Bulk Slave Intro][$cash -= $slaveCost, $TGA.schoolSale = 0, $TGA.studentsBought += 1, $newSlaves.push($activeSlave)]]
+	<</if>>
 <<else>>
 	//You lack the necessary funds to buy this slave.//
 <</if>>
-<</nobr>>
-[[Request to see a different graduate of the same school|The Gymnasium-Academy][$slavesSeen += 1]]
+<br>[[Decline to purchase her and check out another slave|The Gymnasium-Academy][$slavesSeen += 1]]
+<<if $newSlaves.length > 0>>
+	<br>[[Finish your order of slaves|Bulk Slave Intro]]
+<</if>>
 
-<<set $saleDescription = 1>>\
-<<include "Long Slave Description">>\
-<<set $saleDescription = 0>>\
+<br><br>
+<<set $saleDescription = 1>>
+<<include "Long Slave Description">>
+<<set $saleDescription = 0>>
diff --git a/src/uncategorized/theSlavegirlSchool.tw b/src/uncategorized/theSlavegirlSchool.tw
index 1aa681501f32bb67fb80e31dc612e0634526c044..096c314622a6c567dd149a8a260f6f414bfe82bd 100644
--- a/src/uncategorized/theSlavegirlSchool.tw
+++ b/src/uncategorized/theSlavegirlSchool.tw
@@ -1,65 +1,17 @@
-:: The Slavegirl School
+:: The Slavegirl School [nobr]
+
+<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Slave Schools">>
+/* Multi-Purchase Support */
+<<if ndef $newSlaves>><<set $newSlaves = []>><</if>>
+<<if $newSlaves.length > 0>>
+	<<set $nextButton = "Continue", $nextLink = "Bulk Slave Intro", $slaveMarket = "TSS", $returnTo = "Main", $newSlaveIndex = 0>>
+<</if>>
 
-<<set $nextButton = "Back">>\
-<<set $nextLink = "Buy Slaves">>\
-<<set $returnTo = "Buy Slaves">>\
-<<set $showEncyclopedia = 1>><<set $encyclopedia = "Slave Schools">>\
-\
 //The Slavegirl School is the newest slave school operating in the Free Cities. Its business model is to offer simpler, cheaper wares than its competitors. All Slavegirl School graduates are natural-born females without surgical modifications. Their training emphasizes elimination of any serious psychological deformities. They are promptly enslaved and sold as soon as they reach their majorities, and are marketed as complete virgins. <<if $TSS.schoolUpgrade != 0>><br><br>You have endowed <<if $TSS.schoolUpgrade == 1>>an alternative college at The Slavegirl School, which focuses on retraining good MILF stock into mature slave girls.<<else>>an improvement in the simplistic school's approach that teaches good basic skills without losing too much efficiency.<</if>> As a major <<if $PC.title == 0>>benefactrix<<else>>benefactor<</if>> of the institution, you also receive a discount on them.<</if>>//
 
-The Slavegirl School offers a fresh graduate for inspection via video call. The interview takes place in a faculty member's office. Absurdly, it's barely distinguishable from an office at any traditional institution of higher education. The only giveaway is the profusion of sex toys on the desk and the pornography on the walls.
+<br><br>The Slavegirl School offers a fresh graduate for inspection via video call. The interview takes place in a faculty member's office. Absurdly, it's barely distinguishable from an office at any traditional institution of higher education. The only giveaway is the profusion of sex toys on the desk and the pornography on the walls.
 
-<<nobr>>
-<<if $TSS.schoolUpgrade == 1>>
-	<<set $activeSlaveOneTimeMinAge = 36>>
-<<else>>
-	<<set $activeSlaveOneTimeMaxAge = 18>>
-<</if>>
-<<include "Generate XX Slave">>
-<<set $activeSlave.career = "a slave">>
-<<set $activeSlave.butt = either(1, 2, 2, 3)>>
-<<set $activeSlave.boobs = either(200, 300, 300, 400)>>
-<<if $TSS.schoolUpgrade == 1>>
-	<<set $activeSlave.origin = "You bought her fresh from the new Slavegirl School after she was retrained as a slave girl.">>
-	<<set $activeSlave.butt += 1>>
-	<<set $activeSlave.boobs += 200>>
-	<<set $activeSlave.anus = 1>>
-	<<set $activeSlave.vagina = 1>>
-<<else>>
-	<<set $activeSlave.origin = "You bought her fresh from the Slavegirl School right after her majority.">>
-	<<set $activeSlave.anus = 0>>
-	<<set $activeSlave.vagina = 0>>
-	<<set $activeSlave.birthWeek = 0>>
-<</if>>
-<<set $activeSlave.intelligenceImplant = 1>>
-<<set $activeSlave.teeth = "normal">>
-<<set $activeSlave.intelligence = either (-1, 0, 1, 2)>>
-<<set $activeSlave.devotion = random(25,45)>>
-<<set $activeSlave.trust = random(25,45)>>
-<<set $activeSlave.health = random(50,60)>>
-<<set $activeSlave.preg = 0>>
-<<set $activeSlave.weight = 0>>
-<<set $activeSlave.chem = 20>>
-<<if $TSS.schoolUpgrade == 0>>
-	<<set $activeSlave.vaginalSkill = 0>>
-	<<set $activeSlave.oralSkill = 0>>
-	<<set $activeSlave.analSkill = 0>>
-	<<set $activeSlave.whoreSkill = 0>>
-	<<set $activeSlave.entertainSkill = 15>>
-<<else>>
-	<<set $activeSlave.vaginalSkill = 15>>
-	<<set $activeSlave.oralSkill = 15>>
-	<<set $activeSlave.analSkill = 15>>
-	<<set $activeSlave.whoreSkill = 15>>
-	<<set $activeSlave.entertainSkill = 15>>
-<</if>>
-<<set $activeSlave.combatSkill = 0>>
-<<set $activeSlave.pubicHStyle = "waxed">>
-<<set $activeSlave.underArmHStyle = "waxed">>
-<<set $activeSlave.sexualFlaw = either("none")>>
-<<set $activeSlave.behavioralFlaw = either("none")>>
-<<set $activeSlave.hStyle = "tails">>
-<<set $activeSlave.customTat = "She has the simple logo of the corporation that operates The Slavegirl School tattooed on her left cheek.">>
+<<GenerateMarketSlave "TSS">>
 <<slaveCost $activeSlave>>
 <<if $TSS.schoolSale != 0>>
 	<<set $slaveCost = Math.trunc($slaveCost*0.5)>>
@@ -67,19 +19,26 @@ The Slavegirl School offers a fresh graduate for inspection via video call. The
 	<<set $slaveCost = Math.trunc($slaveCost*0.8)>>
 <</if>>
 <<if $slavesSeen > $slaveMarketLimit>><<set $slaveCost += Math.trunc($slaveCost*(($slavesSeen-$slaveMarketLimit)*0.1))>><</if>>
-<</nobr>>\
-\
-The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
-\
-<<nobr>>
+
+
+<br><br>The price is ¤<<print $slaveCost>>.<<if $slavesSeen > $slaveMarketLimit>> You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.<</if>>
+
 <<if $cash >= $slaveCost>>
-	[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost,$TSS.schoolSale = 0,$TSS.studentsBought += 1,$nextButton = "Continue",$nextLink = "AS Dump",$returnTo = "Main"]]
+	<br>[[Buy her and check out other slaves to order|The Slavegirl School][$cash -= $slaveCost, $TSS.schoolSale = 0, $TSS.studentsBought += 1, $newSlaves.push($activeSlave), $introType = "multi", $slavesSeen+=1]]
+	<<if $newSlaves.length == 0>>
+		<br>[[Buy her slave contract|New Slave Intro][$cash -= $slaveCost, $TSS.schoolSale = 0, $TSS.studentsBought += 1, $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "Main"]]
+	<<else>>
+		<br>[[Buy her and Finish your order of slaves|Bulk Slave Intro][$cash -= $slaveCost, $TSS.schoolSale = 0, $TSS.studentsBought += 1, $newSlaves.push($activeSlave)]]
+	<</if>>
 <<else>>
 	//You lack the necessary funds to buy this slave.//
 <</if>>
-<</nobr>>
-[[Request to see a different graduate of the same school|The Slavegirl School][$slavesSeen += 1]]
+<br>[[Decline to purchase her and check out another slave|The Slavegirl School][$slavesSeen += 1]]
+<<if $newSlaves.length > 0>>
+	<br>[[Finish your order of slaves|Bulk Slave Intro]]
+<</if>>
 
-<<set $saleDescription = 1>>\
-<<include "Long Slave Description">>\
-<<set $saleDescription = 0>>\
+<br><br>
+<<set $saleDescription = 1>>
+<<include "Long Slave Description">>
+<<set $saleDescription = 0>>
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index 2a3e342299cd24d5ccc600d1377be0592a230995..470b5eda05d1f0c7f89ac1def20c55e3d9273545 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -1610,3 +1610,1451 @@
 		Nationality: $customSlave.nationality.
 	<</replace>>
 <</widget>>
+
+/% 
+ Call as <<GenerateMarketSlave 'market' ['arcology']>>
+	If $args[0] is undefined, will generate a kidnapper's market slave.
+	If $args[0] is "neighbor", $numArcology is used as the index of which neighbor to use.
+	
+%/
+<<widget GenerateMarketSlave>>
+<<if $args[0]>>
+    <<set _market = $args[0]>>
+<<else>>
+    <<set _market = "kidnappers">>
+<</if>>
+
+<<switch _market>>
+<<case "corporate">>
+	<<if $captureUpgradeAge == "young">>
+		<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
+		<<set $activeSlaveOneTimeMaxAge = 19>>
+	<<elseif $captureUpgradeAge == "old">>
+		<<if $pedo_mode == 1>>
+			<<set $activeSlaveOneTimeMinAge = 24>>
+			<<set $activeSlaveOneTimeMaxAge = $retirementAge>>
+		<<else>>
+			<<set $activeSlaveOneTimeMinAge = 36>>
+			<<set $activeSlaveOneTimeMaxAge = $retirementAge>>
+		<</if>>
+	<</if>>
+	<<set $one_time_age_overrides_pedo_mode = 1>>
+	<<if $captureUpgradeGender == "XX">>
+		Slaves without pussies are not trained.
+		<<include "Generate XX Slave">>
+	<<elseif $captureUpgradeGender == "XY">>
+		Slaves without dicks are not trained.
+		<<include "Generate XY Slave">>
+	<<else>>
+		Slaves are passed to training regardless of whether they have dicks or pussies.
+		<<include "Generate New Slave">>
+	<</if>>
+	<<set $activeSlave.origin = "She was enslaved and trained by your corporation.">>
+	<<set $activeSlave.devotion = random(-15,15)>>
+	<<set $activeSlave.trust = random(-45,-25)>>
+	<<set $activeSlave.health = random(25,50)>>
+
+	<<if $surgicalUpgradeGenitalia != "fucknugget">>
+
+	<<if $entrapmentUpgradeDevotionTwo == "devotion">>
+		It focuses on selecting trainees predisposed towards devotion to their new owners.
+		<<set $activeSlave.devotion = random(55,75)>>
+	<<elseif $entrapmentUpgradeDevotionOne == "obedience">>
+		It focuses on selecting trainees predisposed towards obedience.
+		<<set $activeSlave.devotion = random(25,45)>>
+	<<else>>
+		It does not select trainees based on their initial feelings about slavery.
+	<</if>>
+	<<if $entrapmentUpgradeIntelligence == "intelligent">>
+		Intelligent slaves have a high priority for training.
+		<<set $activeSlave.intelligence = either(1,2,2,3)>>
+	<<elseif $entrapmentUpgradeIntelligence == "stupid">>
+		Stupid slaves have a high priority for training.
+		<<set $activeSlave.intelligence = either(-1,-2,-2,-3)>>
+	<<else>>
+		Slaves' intelligence is not given special consideration.
+	<</if>>
+	<<if $captureUpgradeAge == "young">>
+		Teenaged slaves are strongly favored for training.
+		/*<<set $activeSlave.age = random(18,19)>>*/
+	<<elseif $captureUpgradeAge == "old">>
+		Newly enslaved MILFs are strongly favored for training.
+		/*<<set $activeSlave.age = random(36,$retirementAge)>>*/
+	<<else>>
+		Promising slaves are trained without special sorting based on age.
+	<</if>>
+	<<if ($captureUpgradeRace == "unselected") || ($captureUpgradeRace == "none")>>
+		There is no racial element to trainee selection.
+	<<else>>
+		The corporation prefers to train <<print $captureUpgradeRace>>s.
+	<</if>>
+	<<if $generalUpgradeBreaking == "brutality">>
+		The corporation applies brutal slave breaking techniques, with new captures assigned rape quotas.
+		<<set $activeSlave.trust = random(-75,-55)>>
+	<<elseif $generalUpgradeBreaking == "care">>
+		The corporation applies surprisingly caring slave breaking techniques that sometimes convince refugees and similar downtrodden people that slavery is a step up for them.
+		<<set $activeSlave.trust = random(-15,15)>>
+	<<else>>
+		The corporation applies standard slave breaking techniques.
+	<</if>>
+	<<if $generalUpgradeWeight == "attractive">>
+		Thin trainees are fattened up; fat trainees are slimmed down.
+		<<set $activeSlave.weight = Math.clamp($activeSlave.weight, -25, 25)>>
+	<<else>>
+		Only the unhealthiest trainees are fed special diets.
+	<</if>>
+	<<if $generalUpgradeMuscle == "toned">>
+		Trainees are brought up to a good state of physical fitness.
+		<<set $activeSlave.weight = Math.clamp($activeSlave.weight, -25, 25)>>
+		<<set $activeSlave.muscles = 20>>
+	<<elseif $generalUpgradeMuscle == "ripped">>
+		Trainees are subjected to punishing workout routines and only sold when ripped.
+		<<set $activeSlave.weight = Math.clamp($activeSlave.weight, -25, 5)>>
+		<<set $activeSlave.muscles = 50>>
+	<<else>>
+		Trainees are not subjected to any special workout routine.
+	<</if>>
+	<<if $trainingUpgradeAccent == "accents">>
+		The corporation teaches its trainees the lingua franca but allows them to retain distinctive accents.
+		<<set $activeSlave.accent = Math.clamp($activeSlave.accent, 0, 1)>>
+	<<elseif $trainingUpgradeAccent == "eliminate">>
+		The corporation teaches its trainees to speak the lingua franca without accent.
+		<<set $activeSlave.accent = 0>>
+	<<else>>
+		The corporation does not expend any special effort teaching language.
+	<</if>>
+	<<if $trainingUpgradeEducation == "basic">>
+		Its slave students receive basic slave educations.
+		<<set $activeSlave.intelligence = Math.clamp($activeSlave.intelligence+1, -3, 3)>>
+		<<set $activeSlave.intelligenceImplant = 1>>
+		<<set $activeSlave.whoreSkill = Math.clamp($activeSlave.whoreSkill, 15, 100)>>
+		<<set $activeSlave.entertainSkill = Math.clamp($activeSlave.entertainSkill, 15, 100)>>
+	<<else>>
+		Its slaves are not given special educational attention.
+	<</if>>
+	<<if $trainingUpgradeSexEd == "competence">>
+		Trainees spend weeks learning sexual competence.
+		<<set $activeSlave.oralSkill = Math.clamp($activeSlave.oralSkill, 15, 100)>>
+		<<if $activeSlave.vagina >= 0>>
+		<<set $activeSlave.vaginalSkill = Math.clamp($activeSlave.vaginalSkill, 15, 100)>>
+		<</if>>
+		<<set $activeSlave.analSkill = Math.clamp($activeSlave.analSkill, 15, 100)>>
+	<<elseif $trainingUpgradeSexEd == "highly skilled">>
+		Trainees spend months learning sexual skills.
+		<<set $activeSlave.oralSkill = Math.clamp($activeSlave.oralSkill, 35, 100)>>
+		<<if $activeSlave.vagina > 0>>
+			<<set $activeSlave.vaginalSkill = Math.clamp($activeSlave.vaginalSkill, 35, 100)>>
+		<<elseif $activeSlave.vagina == 0>>
+			<<set $activeSlave.vaginalSkill = Math.clamp($activeSlave.vaginalSkill, 15, 100)>>
+		<</if>>
+		<<if $activeSlave.anus > 0>>
+			<<set $activeSlave.analSkill = Math.clamp($activeSlave.analSkill, 35, 100)>>
+		<<else>>
+			<<set $activeSlave.analSkill = Math.clamp($activeSlave.analSkill, 15, 100)>>
+		<</if>>
+	<<else>>
+		No special sexual training is applied.
+	<</if>>
+
+	<</if>> /* CLOSES FUCKNUGGET EXEMPTION */
+
+	<<if $surgicalUpgradeCosmetics == "applied">>
+		The corporation uses subtle cosmetic surgery to improve its slaves for sale.
+		<<if ($activeSlave.anus > 3)>>
+			<<set $activeSlave.anus = 3>>
+			<<if $activeSlave.analSkill > 10>><<set $activeSlave.analSkill -= 10>><</if>>
+		<</if>>
+		<<if ($activeSlave.vagina > 3)>>
+			<<set $activeSlave.vagina = 3>>
+			<<if $activeSlave.vaginalSkill > 10>><<set $activeSlave.vaginalSkill -= 10>><</if>>
+		<</if>>
+		<<if ($activeSlave.faceImplant == 0) && ($activeSlave.face <= 95)>>
+			<<if $activeSlave.faceShape is "masculine">><<set $activeSlave.faceShape = "androgynous">><</if>>
+			<<set $activeSlave.faceImplant = 1>>
+			<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
+		<</if>>
+		<<if ($activeSlave.ageImplant != 1) && ($activeSlave.age >= 25)>>
+			<<set $activeSlave.ageImplant = 1>>
+			<<AgeImplantAdjustment>>
+		<</if>>
+		<<if ($activeSlave.voice == 1) && ($activeSlave.voiceImplant == 0)>>
+			<<set $activeSlave.voice += 1>>
+			<<set $activeSlave.voiceImplant += 1>>
+		<</if>>
+		<<set $activeSlave.waist = Math.trunc($activeSlave.waist,-100,-15)>>
+		<<if (($activeSlave.boobShape == "saggy") || ($activeSlave.boobShape == "downward-facing"))>>
+			<<set $activeSlave.boobShape = "normal">>
+		<</if>>
+		<<if (($activeSlave.boobShape == "normal") || ($activeSlave.boobShape == "wide-set"))>>
+			<<if $activeSlave.boobs > 800>><<set $activeSlave.boobShape = "torpedo-shaped">><<else>><<set $activeSlave.boobShape = "perky">><</if>>
+		<</if>>
+	<<else>>
+		The corporation does not use cosmetic surgery to improve its slaves for sale.
+	<</if>>
+	<<if $surgicalUpgradeImplants == "applied">>
+		Slaves are given tasteful breast, butt, and lip implants.
+		<<set $activeSlave.buttImplant = 1>>
+		<<set $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant, 0, 10)>>
+		<<set $activeSlave.boobsImplant = 600>>
+		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+$activeSlave.boobsImplant, 0, 10000)>>
+		<<set $activeSlave.lipsImplant = 20>>
+		<<set $activeSlave.lips = Math.clamp($activeSlave.lips+$activeSlave.lipsImplant, 0, 55)>>
+	<<elseif $surgicalUpgradeImplants == "absurd">>
+		Slaves are given absurd breast, butt, and lip implants.
+		<<set $activeSlave.buttImplant = 4>>
+		<<set $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant, 0, 10, $activeSlave.butt+$activeSlave.buttImplant)>>
+		<<set $activeSlave.boobsImplant = 2400>>
+		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+$activeSlave.boobsImplant, 0, 10000)>>
+		<<set $activeSlave.lipsImplant = 60>>
+		<<set $activeSlave.lips = Math.clamp($activeSlave.lipsImplant+$activeSlave.buttImplant, 0, 100)>>
+	<<else>>
+		Slaves are not given breast, butt, or lip implants.
+	<</if>>
+	<<if $surgicalUpgradeGenitalia == "futanari">>
+		Advanced surgical techniques are applied to turn the corporation's slaves into futanari.
+		<<if ($activeSlave.dick == 0)>><<set $activeSlave.dick = 2>><</if>>
+		<<if ($activeSlave.balls == 0)>><<set $activeSlave.balls = 2>><</if>>
+		<<if ($activeSlave.vagina == 0)>><<set $activeSlave.vagina = 1>><</if>>
+		<<set $activeSlave.ovaries = 1>>
+	<<elseif $surgicalUpgradeGenitalia == "gelded">>
+		Slaves with balls have them removed, rendering them feminine and obedient.
+		<<if ($activeSlave.balls != 0)>>
+			<<set $activeSlave.balls = 0>>
+			<<set $activeSlave.scrotum = 0>>
+			<<set $activeSlave.dick = Math.clamp($activeSlave.dick-1, 1, 6)>>
+			<<set $activeSlave.boobs += 100*random(2,4)>>
+			<<set $activeSlave.butt += random(1,2)>>
+			<<set $activeSlave.muscles = 0>>
+			<<if ($activeSlave.faceShape == "masculine")>>
+				<<set $activeSlave.faceShape = "androgynous">>
+			<<elseif ($activeSlave.faceShape == "androgynous")>>
+				<<set $activeSlave.faceShape = "normal">>
+			<</if>>
+			<<set $activeSlave.devotion += random(5,10)>>
+			<<set $activeSlave.trust += random(5,10)>>
+			<<set $activeSlave.attrXY = Math.clamp($activeSlave.attrXY+random(5,10), 0, 100)>>
+		<</if>>
+	<<elseif $surgicalUpgradeGenitalia == "fucknugget">>
+		It removes slaves' limbs and mental abilities, making any training pointless.
+	<<else>>
+		No other surgery is applied.
+	<</if>>
+	<<if $drugUpgradeHormones == "XX">>
+		It applies almost universal female hormone therapy.
+		<<if ($activeSlave.dick > 0)>>
+			<<set $activeSlave.dick = Math.clamp($activeSlave.dick-1, 1, 6)>>
+		<</if>>
+		<<if ($activeSlave.balls > 0)>>
+			<<set $activeSlave.balls = Math.clamp($activeSlave.balls-1, 1, 6)>>
+		<</if>>
+		<<if ($activeSlave.clit > 0)>>
+			<<set $activeSlave.clit = Math.clamp($activeSlave.clit-1, 0, 3)>>
+		<</if>>
+		<<if ($activeSlave.voice < 3) && ($activeSlave.voice > 0)>>
+			<<set $activeSlave.voice = Math.clamp($activeSlave.voice+1, 1, 3)>>
+		<</if>>
+		<<if ($activeSlave.vagina > -1) && ($activeSlave.ovaries != 0) && ($activeSlave.vaginaLube < 2)>>
+			<<set $activeSlave.vaginaLube = Math.clamp($activeSlave.vaginaLube+1, 0, 2)>>
+		<</if>>
+		<<if (($activeSlave.butt-$activeSlave.buttImplant) < 2)>>
+			<<set $activeSlave.butt = Math.clamp($activeSlave.butt+1, 0, 10)>>
+		<</if>>
+		<<if (($activeSlave.boobs-$activeSlave.boobsImplant) < 500)>>
+			<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+400, 0, 10000)>>
+		<</if>>
+		<<if (($activeSlave.face-$activeSlave.faceImplant) < 0) && ($activeSlave.face <= 95)>>
+			<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
+		<</if>>
+		<<if ($activeSlave.faceShape == "masculine")>>
+			<<set $activeSlave.faceShape = "androgynous">>
+		<<elseif ($activeSlave.faceShape == "androgynous")>>
+			<<set $activeSlave.faceShape = "normal">>
+		<</if>>
+		<<if ($activeSlave.physicalAge < 25)>>
+			<<set $activeSlave.shoulders = Math.clamp($activeSlave.shoulders-1, -2, 2)>>
+			<<set $activeSlave.hips = Math.clamp($activeSlave.hips+1, -2, 2)>>
+		<</if>>
+		<<if ($activeSlave.muscles > 30) && ($activeSlave.diet != "muscle building") && ($generalUpgradeMuscle != "toned") && ($generalUpgradeMuscle != "ripped")>>
+			<<set $activeSlave.muscles = Math.clamp($activeSlave.muscles-10, 0, 30)>>
+		<</if>>
+		<<if ($activeSlave.nipples == "tiny")>>
+			<<set $activeSlave.nipples = "cute">>
+		<</if>>
+		<<if ($activeSlave.height > 180)>>
+			<<set $activeSlave.height -= random(3,6)>>
+		<</if>>
+		<<set $activeSlave.devotion += random(5,10)>>
+		<<set $activeSlave.trust += random(5,10)>>
+		<<set $activeSlave.attrXY = Math.clamp($activeSlave.attrXY+random(5,10), 0, 100)>>
+	<<elseif $drugUpgradeHormones == "XY">>
+		It applies almost universal male hormone therapy.
+		<<if ($activeSlave.dick > 0)>>
+			<<set $activeSlave.dick = Math.clamp($activeSlave.dick+1, 1, 6)>>
+		<</if>>
+		<<if ($activeSlave.balls > 0)>>
+			<<set $activeSlave.balls = Math.clamp($activeSlave.balls+1, 1, 6)>>
+		<</if>>
+		<<if ($activeSlave.clit > 0) && ($activeSlave.dick == 0)>>
+			<<set $activeSlave.clit = Math.clamp($activeSlave.clit+1, 0, 3)>>
+		<</if>>
+		<<if ($activeSlave.voice > 1)>>
+			<<set $activeSlave.voice = Math.clamp($activeSlave.voice-1, 1, 3)>>
+		<</if>>
+		<<if ($activeSlave.vagina > -1) && ($activeSlave.vaginaLube > 0)>>
+			<<set $activeSlave.vaginaLube = Math.clamp($activeSlave.vaginaLube-1, 0, 2)>>
+		<</if>>
+		<<set $activeSlave.butt = Math.clamp($activeSlave.butt-1, 0, 10)>>
+		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs-400, 0, 10000)>>
+		<<if (($activeSlave.face-$activeSlave.faceImplant) < 0) && ($activeSlave.face > 10)>>
+			<<set $activeSlave.face = Math.clamp($activeSlave.face-20,-100,100)>>
+		<</if>>
+		<<if ($activeSlave.faceShape == "androgynous")>>
+			<<set $activeSlave.faceShape = "masculine">>
+		<<else>>
+			<<set $activeSlave.faceShape = "androgynous">>
+		<</if>>
+		<<if ($activeSlave.age < 25)>>
+			<<set $activeSlave.shoulders = Math.clamp($activeSlave.shoulders+1, -2, 2)>>
+			<<set $activeSlave.hips = Math.clamp($activeSlave.hips-1, -2, 2)>>
+		<</if>>
+		<<if ($activeSlave.muscles <= 95) && ($activeSlave.diet != "slimming")>>
+			<<set $activeSlave.muscles = Math.clamp($activeSlave.muscles+20, 0, 3)>>
+		<</if>>
+		<<if ($activeSlave.nipples == "huge")>>
+			<<set $activeSlave.nipples = "cute">>
+		<</if>>
+		<<if ($activeSlave.height < 155)>>
+			<<set $activeSlave.height += random(3,6)>>
+		<</if>>
+		<<set $activeSlave.devotion -= random(5,10)>>
+		<<set $activeSlave.trust -= random(5,10)>>
+		<<set $activeSlave.attrXX = Math.clamp($activeSlave.attrXX+random(5,10), 0, 100)>>
+	<<else>>
+		It does not use hormones on a systematic level.
+	<</if>>
+	<<if $drugUpgradeInjectionTwo == "supermassive">>
+		Advanced growth hormones are applied on a grand scale.
+		<<set $activeSlave.lips = Math.clamp($activeSlave.lips+50, 0, 85)>>
+		<<set $activeSlave.butt = Math.clamp($activeSlave.butt+random(4,6), 0, 10)>>
+		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+(100*random(40,60)), 0, 10000)>>
+		<<set $activeSlave.nipples = either("huge", "inverted")>>
+		<<if $activeSlave.dick > 0>>
+			<<set $activeSlave.dick = Math.clamp($activeSlave.dick+random(3,5), 0, 6)>>
+		<</if>>
+		<<if $activeSlave.balls > 0>>
+			<<set $activeSlave.balls = Math.clamp($activeSlave.balls+random(3,5), 0, 6)>>
+		<</if>>
+	<<elseif $drugUpgradeInjectionTwo == "pastoral">>
+		Advanced growth hormones are applied with total focus on increasing slaves' productiveness.
+		<<set $activeSlave.lips = Math.clamp($activeSlave.lips+20, 0, 85)>>
+		<<set $activeSlave.butt = Math.clamp($activeSlave.butt+random(2,3), 0, 10)>>
+		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+(100*random(60,80)), 0, 10000)>>
+		<<set $activeSlave.nipples = either("huge", "inverted")>>
+		<<set $activeSlave.lactation = 2>>
+		<<if $activeSlave.dick > 0>>
+			<<set $activeSlave.dick = Math.clamp($activeSlave.dick+random(6,8), 0, 10)>>
+		<</if>>
+		<<if $activeSlave.balls > 0>>
+			<<set $activeSlave.balls = Math.clamp($activeSlave.balls+random(4,6), 0, 6)>>
+		<</if>>
+	<<elseif $drugUpgradeInjectionOne == "tasteful">>
+		Growth hormones are used to correct flat chests and butts.
+		<<set $activeSlave.lips = Math.clamp($activeSlave.lips+10, 15, 55)>>
+		<<if $activeSlave.butt < 3>>
+			<<set $activeSlave.butt = Math.clamp($activeSlave.butt+1, 3, 10)>>
+		<</if>>
+		<<if $activeSlave.boobs < 800>>
+			<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+200, 800, 10000)>>
+		<</if>>
+	<<elseif $drugUpgradeInjectionOne == "huge">>
+		Growth hormones are used throughout slave training to ensure expansion.
+		<<set $activeSlave.lips = Math.clamp($activeSlave.lips+20, 0, 55)>>
+		<<set $activeSlave.butt = Math.clamp($activeSlave.butt+random(2,3), 0, 10)>>
+		<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+(100*random(10,20)), 0, 10000)>>
+		<<set $activeSlave.nipples = either("cute", "partially inverted")>>
+		<<if $activeSlave.dick > 0>>
+			<<set $activeSlave.dick = Math.clamp($activeSlave.dick+random(2,3), 0, 5)>>
+		<</if>>
+		<<if $activeSlave.balls > 0>>
+			<<set $activeSlave.balls = Math.clamp($activeSlave.balls+random(2,3), 0, 5)>>
+		<</if>>
+	<<else>>
+		Growth hormones are not applied.
+	<</if>>
+
+	<<if $surgicalUpgradeGenitalia == "fucknugget">>
+		<<set $activeSlave.fetish = "mindbroken">>
+		<<set $activeSlave.amp = 1>>
+		<<set $activeSlave.fetishStrength = 10, $activeSlave.attrXY = 50, $activeSlave.attrXX = 50, $activeSlave.attrKnown = 1, $activeSlave.devotion = 40, $activeSlave.trust = -40, $activeSlave.vaginalSkill = 0, $activeSlave.oralSkill = 0, $activeSlave.analSkill = 0, $activeSlave.combatSkill = 0, $activeSlave.whoreSkill = 0, $activeSlave.entertainSkill = 0, $activeSlave.intelligence = -2, $activeSlave.intelligenceImplant = 0, $activeSlave.sexualFlaw = "none", $activeSlave.sexualQuirk = "none", $activeSlave.behavioralFlaw = "none", $activeSlave.behavioralQuirk = "none">>
+	<</if>>
+    
+    
+<<case "neighbor">>
+	<<if ($numArcology < $arcologies.length) && ($numArcology > 0)>>
+		<<set _market = $numArcology>>
+	<<else>>
+		<<set _market = 1>>
+	<</if>>
+	
+	<<set $activeArcology = $arcologies[0]>>
+	<<set $targetArcology = $arcologies[_market]>>
+	<<include "Arcology Opinion">>
+	<<set $opinion = Math.trunc($opinion/20)>>
+	<<set $opinion = Math.clamp($opinion, -10, 10)>>
+
+	<<include "Generate New Slave">>
+	<<set $activeSlave.origin = "You bought her from ">>
+	<<set $activeSlave.origin += $arcologies[_market].name>>
+	<<set $activeSlave.origin += ".">>
+	<<set $activeSlave.devotion = -20 + Math.trunc($arcologies[_market].prosperity/10) + random(0,10)>>
+	<<set $activeSlave.trust = -20 + Math.trunc($arcologies[_market].prosperity/10) + random(0,10)>>
+	<<set $activeSlave.health = -50 + Math.trunc($arcologies[_market].prosperity/25) + random(0,5)>>
+	<<if $activeSlave.vagina > 0>>
+		<<set $activeSlave.vaginalSkill += Math.clamp($arcologies[_market].prosperity/2, 15, 100)>>
+	<</if>>
+	<<if $activeSlave.anus > 0>>
+		<<set $activeSlave.analSkill += Math.clamp($arcologies[_market].prosperity/2, 15, 100)>>
+	<</if>>
+	<<set $activeSlave.oralSkill += Math.clamp($arcologies[_market].prosperity/2, 15, 100)>>
+	<<set $activeSlave.attrKnown = 1>>
+	<<set $activeSlave.fetishKnown = 1>>
+	<<if $activeSlave.accent >= 3>>
+		<<if $arcologies[_market].prosperity > random(0,200)>>
+			<<set $activeSlave.accent -= 1>>
+		<</if>>
+	<</if>>
+	<<if $arcologies[_market].prosperity > random(0,200)>>
+		<<set $activeSlave.sexualFlaw = "none">>
+	<</if>>
+	<<if $arcologies[_market].prosperity > random(0,200)>>
+		<<set $activeSlave.behavioralFlaw = "none">>
+	<</if>>
+	<<if $arcologies[_market].FSSubjugationist > 20>>
+		They're universally $arcologies[_market].FSSubjugationistRace.
+		<<set $fixedRace = $arcologies[_market].FSSubjugationistRace>><<NationalityToRace $activeSlave>><<NationalityToName $activeSlave>><<NationalityToAccent $activeSlave>><<set $fixedRace = 0>>
+	<</if>>
+	
+	<<if $arcologies[_market].FSGenderRadicalist > 50>>
+		They all show signs of intensive hormone therapy.
+		<<set $activeSlave.chem += random(10,100)>>
+		<<if $activeSlave.dick > 0>>
+			<<set $activeSlave.boobs += 100*random(0,4)>>
+			<<set $activeSlave.butt += random(0,2)>>
+			<<if $activeSlave.hips < 2>>
+				<<set $activeSlave.hips += random(0,1)>>
+			<</if>>
+			<<if $activeSlave.shoulders > -2>>
+				<<set $activeSlave.shoulders -= random(0,1)>>
+			<</if>>
+			<<if $activeSlave.face < 80>>
+				<<set $activeSlave.face += random(0,20)>>
+			<</if>>
+			<<if $activeSlave.faceShape == "masculine">>
+				<<if random(0,1) == 0>>
+					<<set $activeSlave.faceShape = "androgynous">>
+				<</if>>
+			<</if>>
+			<<if $activeSlave.dick > 2>>
+				<<set $activeSlave.dick -= random(0,2)>>
+			<</if>>
+			<<if $activeSlave.balls > 2>>
+				<<set $activeSlave.balls -= random(0,2)>>
+			<</if>>
+			<<if $arcologies[_market].FSGenderRadicalistResearch == 1 && random(1,100) <= 20>>
+				This one is has a notably rounded belly for a slave with no vagina.
+				<<set $activeSlave.ovaries = 0>>
+				<<set $activeSlave.vagina = -1>>
+				<<set $activeSlave.mpreg = 1>>
+				<<set $activeSlave.preg = random(1,20)>>
+			<</if>>
+		<<else>>
+			<<set $activeSlave.boobs -= 100*random(0,2)>>
+			<<set $activeSlave.butt -= random(0,1)>>
+			<<if $activeSlave.hips > -2>>
+				<<set $activeSlave.hips -= random(0,1)>>
+			<</if>>
+			<<if $activeSlave.shoulders < 2>>
+				<<set $activeSlave.shoulders += random(0,1)>>
+			<</if>>
+			<<if $activeSlave.face >= -80>>
+				<<set $activeSlave.face -= random(0,20)>>
+			<</if>>
+			<<if $activeSlave.faceShape != "androgynous">>
+				<<if random(0,1) == 0>>
+					<<set $activeSlave.faceShape = "androgynous">>
+				<</if>>
+			<</if>>
+			<<set $activeSlave.clit += random(0,2)>>
+			<<set $activeSlave.labia += random(0,1)>>
+			<<if $activeSlave.muscles <= 95>>
+				<<set $activeSlave.muscles += random(0,20)>>
+			<</if>>
+		<</if>>
+	<<elseif $arcologies[_market].FSGenderFundamentalist > 50>>
+		Fertile slaves from there almost never appear without swollen bellies and sensitive nipples.
+		<<set $activeSlave.preg = 0>> /*removing contraception of default slave generation so isFertile can work right*/
+		<<if isFertile($activeSlave)>>
+			<<set $activeSlave.preg = random(1,35)>>
+			<<set $activeSlave.lactation = random(0,1)>>
+		<</if>>
+	<</if>>
+	
+	<<if $arcologies[_market].FSRepopulationFocus > 50>>
+		They are exclusively female and all extremely pregnant.
+		<<set $activeSlave.ovaries = 1>>
+		<<set $activeSlave.vagina = random(0,1,1,1,1,2,2,3,3,3,3)>>
+		<<set $activeSlave.dick = 0>>
+		<<set $activeSlave.balls = 0>>
+		<<set $activeSlave.scrotum = 0>>
+		<<set $activeSlave.preg = 0>> /*removing contraception of default slave generation so isFertile can work right*/
+		<<if isFertile($activeSlave)>>
+			<<set $activeSlave.vagina = random(1,4)>>
+			<<set $activeSlave.preg = random(21,35)>>
+			<<if random(1,2) == 1 && $seeHyperPreg == 1>>
+				<<set $activeSlave.pregType = random(3,29)>>
+			<<else>>
+				<<set $activeSlave.pregType = random(3,5)>>
+			<</if>>
+		<</if>>
+		<<set $activeSlave.lactation = random(0,1)>>
+	<<elseif $arcologies[_market].FSRestart > 50>>
+		They have all been rendered unable to reproduce.
+		<<if $activeSlave.ovaries == 1>>
+			<<set $activeSlave.preg = -2>>
+		<</if>>
+		<<if $activeSlave.balls > 0>>
+			<<set $activeSlave.balls = 0>>
+		<</if>>
+		<<if $arcologies[$i].FSRestartResearch == 1>>
+			Smart and attractive slaves are beginning to be a rarity lately.
+			<<if $activeSlave.face >= 0>>
+				<<set $activeSlave.face -= 100>>
+			<</if>>
+			<<if $activeSlave.intelligence >= 0>>
+				<<set $activeSlave.intelligence -= 3>>
+			<</if>>
+			<<set $activeSlave.chem = random(40,100)>>
+			<<set $activeSlave.addict = either(0,0,0,0,0,0,0,0,5,20,20,50,100)>>
+		<</if>>
+	<</if>>
+	
+	<<if $arcologies[_market].FSPaternalist > 20>>
+		They're often gratifyingly devoted and trusting.
+		<<if $activeSlave.devotion < 10>>
+			<<set $activeSlave.devotion += random(0,8)>>
+		<</if>>
+		<<if $activeSlave.trust < 50>>
+			<<set $activeSlave.trust += random(0,8)>>
+		<</if>>
+	<<elseif $arcologies[_market].FSDegradationist > 20>>
+		They can be depended upon to be terrified into abject submission.
+		<<include "Degrading Name">>
+		<<if $activeSlave.trust > -10>>
+			<<set $activeSlave.trust -= random(0,10)>>
+		<</if>>
+		<<if random (1,100) > 90>>
+			<<set $activeSlave.eyes = -2>>
+		<</if>>
+	<</if>>
+	
+	<<if $arcologies[_market].FSBodyPurist > 80>>
+		They're quite pristine, free of any genomic damage or addictions regardless of any transformations they've had.
+		<<set $activeSlave.chem = 0>>
+		<<set $activeSlave.addict = 0>>
+	<<elseif $arcologies[_market].FSTransformationFetishist > 80>>
+		They vary in terms of what size their implants are, not whether they have them.
+		<<set $activeSlave.chem += random(10,100)>>
+		<<set $activeSlave.boobsImplant = 200*random(2,20)>>
+		<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
+		<<set $activeSlave.buttImplant = random(2,5)>>
+		<<set $activeSlave.butt += $activeSlave.buttImplant>>
+		<<set $activeSlave.lipsImplant = either(10,20)>>
+		<<set $activeSlave.lips += $activeSlave.lipsImplant>>
+		<<if $arcologies[_market].FSTransformationFetishistResearch == 1 && random(1,100) <= 20>>
+			This one's implants are unusually large; a showcase of what her home arcology is capable of.
+			<<set $activeSlave.boobsImplant += 200*random(100,200)>>
+			<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
+			<<set $activeSlave.buttImplant += random(7,12)>>
+			<<set $activeSlave.butt += $activeSlave.buttImplant>>
+		<</if>>
+	<</if>>
+
+	<<if $arcologies[_market].FSYouthPreferentialist > 20>>
+		They're usually on the younger side.
+		<<if $activeSlave.actualAge > 30>>
+			<<if random(0,1) == 0>>
+				<<set $activeSlave.actualAge = random(18,25)>>
+				<<set $activeSlave.visualAge = $activeSlave.actualAge>>
+				<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
+				<<if $activeSlave.boobs > 400>>
+					<<set $activeSlave.boobs -= 100*random(0,2)>>
+				<</if>>
+				<<if $activeSlave.butt > 3>>
+					<<set $activeSlave.butt -= random(0,2)>>
+				<</if>>
+			<<elseif $arcologies[_market].FSYouthPreferentialistResearch == 1>>
+				<<if $activeSlave.actualAge > 30>>
+					Well, all of them certainly look it. Always best to check their ages before buying.
+					<<set $activeSlave.visualAge = random(18,25)>>
+					<<set $activeSlave.chem += random(10,40)>>
+				<</if>>
+			<<else>>
+				And if they aren't, they sure don't look their age.
+				<<Set $activeSlave.ageImplant = 1>>
+				<<AgeImplantAdjustment>>
+			<</if>>
+		<</if>>
+	<<elseif $arcologies[_market].FSMaturityPreferentialist > 20>>
+		They're usually on the more mature side.
+		<<if $activeSlave.actualAge < 30>>
+			<<if random(0,1) == 0>>
+				<<set $activeSlave.actualAge = random(36,$retirementAge)>>
+				<<set $activeSlave.visualAge = $activeSlave.actualAge>>
+				<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
+				<<if $activeSlave.boobs < 400>>
+					<<set $activeSlave.boobs += 100*random(0,2)>>
+				<</if>>
+				<<if $activeSlave.butt < 3>>
+					<<set $activeSlave.butt += random(0,2)>>
+				<</if>>
+			<</if>>
+		<</if>>
+	<</if>>
+
+	<<if $arcologies[_market].FSSlimnessEnthusiast > 20>>
+		They're never overweight, and are often quite lithe.
+		<<if $activeSlave.boobs > 400>>
+			<<set $activeSlave.boobs -= 100*random(0,2)>>
+		<</if>>
+		<<if $activeSlave.butt > 3>>
+			<<set $activeSlave.butt -= random(0,2)>>
+		<</if>>
+		<<if $activeSlave.weight > 10>>
+			<<set $activeSlave.weight = random(-30,0)>>
+		<</if>>
+		<<if $arcologies[_market].FSSlimnessEnthusiastResearch == 1 && random(1,100) <= 50>>
+			This one is perfectly flat; an ideal showcase of her home arcology's tastes.
+			<<set $activeSlave.boobs = 100>>
+			<<set $activeSlave.butt = 0>>
+			<<set $activeSlave.weight = random(-30,0)>>
+		<</if>>
+	<<elseif $arcologies[_market].FSAssetExpansionist > 20>>
+		Their butts are usually imposing, but their tits are what's often most impressive.
+		<<set $activeSlave.chem += random(10,100)>>
+		<<if $activeSlave.boobs < 5000>>
+			<<set $activeSlave.boobs += 100*random(5,50)>>
+		<</if>>
+		<<if $activeSlave.butt < 6>>
+			<<set $activeSlave.butt += random(2,4)>>
+		<</if>>
+		<<if $activeSlave.weight < -10>>
+			<<set $activeSlave.weight += random(0,20)>>
+		<</if>>
+		<<if $arcologies[_market].FSAssetExpansionistResearch == 1 && random(1,100) <= 20>>
+			This one is unusually large; a showcase of what her home arcology is capable of.
+			<<set $activeSlave.boobs = 200*random(100,200)>>
+			<<set $activeSlave.butt = random(10,20)>>
+			<<if $activeSlave.dick > 0 && $seeDicks != 0>>
+				<<set $activeSlave.dick = random(20,30)>>
+				<<set $activeSlave.balls = random(20,125)>>
+			<</if>>
+		<</if>>
+	<</if>>
+
+	<<if $arcologies[_market].FSPastoralist > 20>>
+		Lactation is nearly universal among them, sometimes in ludicrous quantities. They tend to have huge udders, as well.
+		<<set $activeSlave.chem += random(10,100)>>
+		<<if $activeSlave.boobs < 5000>>
+			<<set $activeSlave.boobs += 100*random(5,50)>>
+		<</if>>
+		<<if $activeSlave.lactation == 0>>
+			<<set $activeSlave.lactation = either(0,1,1,1,1,2)>>
+		<</if>>
+		<<if $activeSlave.weight < -10>>
+			<<set $activeSlave.weight += random(0,20)>>
+		<</if>>
+	<</if>>
+
+	<<if $arcologies[_market].FSPhysicalIdealist > 20>>
+		They're usually quite muscular, some to a truly imposing degree, and they're almost never unhealthy.
+		<<set $activeSlave.muscles = random(10,100)>>
+		<<if $activeSlave.health < 20>>
+			<<set $activeSlave.health += random(0,8)>>
+		<</if>>
+
+	<</if>>
+
+	<<if $arcologies[_market].FSChattelReligionist > 20>>
+		They're rarely anything but devoted, and sometimes present interesting peccadilloes.
+		<<set $activeSlave.slaveName = $chattelReligionistSlaveNames.random()>>
+		<<if $activeSlave.devotion < 10>>
+			<<set $activeSlave.devotion += random(0,10)>>
+		<</if>>
+		<<if $activeSlave.devotion < 10>>
+			<<set $activeSlave.devotion += random(0,10)>>
+		<</if>>
+		<<if random(0,1) == 0>>
+			<<set $activeSlave.behavioralQuirk = "sinful">>
+		<</if>>
+	<</if>>
+
+	<<if $arcologies[_market].FSRomanRevivalist > 20>>
+		They've often seen things that drive any squeamishness out of them.
+		<<set $activeSlave.slaveName = $romanSlaveNames.random()>>
+		<<if random(0,1) == 0>>
+			<<set $activeSlave.sexualQuirk = "unflinching">>
+		<</if>>
+	<<elseif $arcologies[_market].FSEgyptianRevivalist > 20>>
+		They've often done things that give them a distinct appetite for perversion.
+		<<set $activeSlave.slaveName = $ancientEgyptianSlaveNames.random()>>
+		<<if random(0,1) == 0>>
+			<<set $activeSlave.sexualQuirk = "perverted">>
+		<</if>>
+	<<elseif $arcologies[_market].FSEdoRevivalist > 20>>
+		They have frequently absorbed much culture there.
+		<<set $activeSlave.slaveName = $edoSlaveNames.random()>>
+		<<set $activeSlave.entertainSkill = Math.clamp($activeSlave.entertainSkill, 35, 100)>>
+	<<elseif $arcologies[_market].FSArabianRevivalist > 20>>
+		They've often been part of large harems in which selflessness is prized.
+		<<if random(0,1) == 0>>
+			<<set $activeSlave.sexualQuirk = "caring">>
+		<</if>>
+	<<elseif $arcologies[_market].FSChineseRevivalist > 20>>
+		They've all passed through a thorough and uncompromising educational system for slaves.
+		<<set $activeSlave.intelligenceImplant = 1>>
+		<<if $activeSlave.intelligence < 2>>
+			<<set $activeSlave.intelligence += random(0,2)>>
+		<</if>>
+	<</if>>
+
+	<<if ($arcologies[0].FSDegradationist != "unset") && ($arcologies[_market].FSPaternalist != "unset")>>
+		<<set $activeSlave.devotion = random(-90,-60)>>
+		<<set $activeSlave.trust = -20>>
+		''$arcologies[_market].name'' is Paternalist, and your arcology is Degradationist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a literal Hell on Earth.
+	<<elseif ($arcologies[0].FSDegradationist != "unset") && ($arcologies[_market].FSPaternalist != "unset")>>
+		<<set $activeSlave.devotion = random(60,90)>>
+		<<set $activeSlave.trust = 20>>
+		''$arcologies[_market].name'' is Degradationist, and your arcology is Paternalist. To its slaves, other niceties of social alignment are trivial. They view your arcology as a promised land.
+	<<elseif $opinion != 0>>
+		<<set $activeSlave.devotion += $opinion>>
+		<<set $activeSlave.trust += $opinion>>
+		<<set $activeSlave.devotion = Math.clamp($activeSlave.devotion, -100, 75)>>
+		<<set $activeSlave.trust = Math.clamp($activeSlave.trust, -100, 75)>>
+		<<if $opinion > 2>>
+			Your arcology's close social alignment with ''$arcologies[_market].name'' makes its slaves more accepting of the prospect of life in your arcology, and willing to trust that they'll know how to survive there.
+		<<elseif $opinion < -2>>
+			Your arcology's very different culture from ''$arcologies[_market].name'''s makes its slaves unhappy with the prospect of life in your arcology, and afraid of what will happen to them there.
+		<</if>>
+	<</if>>
+
+
+<<case "kidnappers">>
+	<<include "Generate New Slave">>
+	<<set $activeSlave.origin = "You bought her from the kidnappers' slave market, and was probably forced into slavery.">>
+	<<set $activeSlave.devotion -= 5>>
+	<<set $activeSlave.trust = random(-45,-25)>>
+	<<set $activeSlave.intelligence = either(-2, -1, -1, 0, 0, 0, 1)>>
+	<<set $activeSlave.health = random(-80,20)>>
+	<<if $activeSlave.vagina > 1 && isFertile($activeSlave)>>
+		<<set $activeSlave.preg = either(-2, -1, -1, -1, -1, -1, -1, -1, 1, 20)>>
+	<</if>>
+
+
+<<case "indentures">>
+	<<include "Generate New Slave">>
+	<<set $activeSlave.origin = "You purchased her indenture contract, making her yours for as long as it lasts.">>
+	<<set $activeSlave.indentureRestrictions = either(0,1,1,2,2,2,2)>>
+	<<if $activeSlave.indentureRestrictions >= 2>>
+		<<set $activeSlave.devotion = random(25,45)>>
+		<<set $activeSlave.trust = random(-20,20)>>
+	<<elseif $activeSlave.indentureRestrictions == 1>>
+		<<set $activeSlave.devotion = random(-20,20)>>
+		<<set $activeSlave.trust = random(-45,-25)>>
+	<<else>>
+		<<set $activeSlave.devotion = random(-45,-25)>>
+		<<set $activeSlave.trust = random(-75,-60)>>
+	<</if>>
+	<<set $activeSlave.indenture = either(26, 52, 104, 156, 208)>>
+
+
+<<case "hunters">>
+	<<include "Generate New Slave">>
+	<<set $activeSlave.origin = "You bought her from the runaway hunters' slave market after they recaptured her and her original owner did not pay their fee.">>
+	<<set $activeSlave.devotion = -20>>
+	<<set $activeSlave.trust = random(-15,15)>>
+	<<set $activeSlave.intelligence = either(0, 1, 2)>>
+	<<set $activeSlave.intelligenceImplant = 1>>
+	<<set $activeSlave.teeth = "normal">>
+	<<set $activeSlave.health = random(-10,70)>>
+	<<if $activeSlave.vagina > -1>>
+		<<set $activeSlave.preg = either(-2, -1, -1, -1, -1, -1, -1, -1, 1, 1)>>
+		<<if $activeSlave.physicalAge < $activeSlave.pubertyAgeXX>><<set $activeSlave.preg = -1>><</if>>
+		<<set $activeSlave.vaginalSkill = random(15,100)>>
+		<<set $activeSlave.vagina = random(1,3)>>
+	<</if>>
+	<<if $activeSlave.balls > 0>>
+	<<if random(1,3) == 1>>
+		<<set $activeSlave.balls = 0>>
+	<</if>>
+	<</if>>
+	<<set $activeSlave.combatSkill = either(0, 0, 0, 0, 0, 1)>>
+	<<set $activeSlave.entertainSkill = random(15,100)>>
+	<<set $activeSlave.whoreSkill = random(15,100)>>
+	<<set $activeSlave.oralSkill = random(15,100)>>
+	<<set $activeSlave.analSkill = random(15,100)>>
+	<<set $activeSlave.anus = random(1,3)>>
+	<<set $activeSlave.weight = Math.clamp(-25, 25, $activeSlave.weight)>>
+	<<set $activeSlave.behavioralFlaw = either("arrogant", "bitchy", "odd", "hates men", "hates women", "hates women", "anorexic", "gluttonous", "devout", "liberated")>>
+	<<set $activeSlave.sexualFlaw = either("hates oral", "hates anal", "hates penetration", "repressed", "idealistic", "shamefast", "apathetic", "crude", "judgemental")>>
+	<<if random(1,2) == 1>>
+		<<set $seed = random(2,8)*200>>
+		<<set $activeSlave.boobs += $seed>>
+		<<set $activeSlave.boobsImplant += $seed>>
+		<<set $seed = random(1,3)>>
+		<<set $activeSlave.butt += $seed>>
+		<<set $activeSlave.buttImplant += $seed>>
+		<<set $seed = either(10,20)>>
+		<<set $activeSlave.lips += $seed>>
+		<<set $activeSlave.lipsImplant += $seed>>
+		<<set $activeSlave.waist = Math.trunc($activeSlave.waist,-100,15)>>
+		<<if $activeSlave.face < 40>>
+			<<set $activeSlave.faceImplant = random(0,1)>>
+			<<set $activeSlave.face = Math.clamp($activeSlave.face+(20*$activeSlave.faceImplant),-100,100)>>
+		<</if>>
+		<<if $activeSlave.physicalAge >= 30>>
+			<<set $activeSlave.ageImplant += random(0,1)>>
+			<<if $activeSlave.ageImplant == 1>>
+				<<AgeImplantAdjustment>>
+			<</if>>
+		<</if>>
+	<</if>>
+	<<if $arcologies[0].FSPaternalistSMR == 0>>
+		<<set $activeSlave.heels = 1>>
+	<</if>>
+
+
+<<case "underage raiders">>
+	<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
+	<<set $activeSlaveOneTimeMaxAge = $fertilityAge>>
+	<<set $one_time_age_overrides_pedo_mode = 1>> /% Must not have had their first period. %/
+	<<include "Generate New Slave">>
+	<<set $activeSlave.origin = "You bought her from the underage raiders' slave market.">>
+	<<set $activeSlave.trust -= 25>>
+	<<set $activeSlave.health += 20>>
+	<<set $activeSlave.career = $veryYoungCareers.random()>>
+	<<set $activeSlave.birthWeek = 0>>
+	<<if $activeSlave.vagina != -1>>
+		<<set $activeSlave.vaginalSkill = 0>>
+		<<set $activeSlave.vagina = 0>>
+		<<set $activeSlave.preg = 0>>
+	<</if>>
+	<<set $activeSlave.analSkill = 0>>
+	<<set $activeSlave.anus = 0>>
+	<<set $activeSlave.oralSkill = 0>>
+	<<set $activeSlave.whoreSkill = 0>>
+
+
+<<case "raiders">>
+	<<set $activeSlaveOneTimeMinAge = 18>>
+	<<set $activeSlaveOneTimeMaxAge = 18>>
+	<<set $one_time_age_overrides_pedo_mode = 1>> /% Supposed to have just reached the age of majority. %/
+	<<include "Generate New Slave">>
+	<<set $activeSlave.origin = "You bought her from the girl raiders' slave market the week she reached her majority.">>
+	<<set $activeSlave.trust -= 25>>
+	<<set $activeSlave.health += 20>>
+	<<set $activeSlave.career = "a student">>
+	<<set $activeSlave.birthWeek = 0>>
+	<<if $activeSlave.vagina != -1>>
+		<<if random(1,2) == 1>>
+		<<set $activeSlave.vaginalSkill = 0>>
+		<<set $activeSlave.vagina = 0>>
+		<<set $activeSlave.preg = 0>>
+		<</if>>
+	<</if>>
+	<<if random(1,2) == 1>>
+		<<set $activeSlave.analSkill = 0>>
+		<<set $activeSlave.anus = 0>>
+	<</if>>
+	<<if random(1,2) == 1>>
+		<<set $activeSlave.oralSkill = 0>>
+	<</if>>
+	<<set $activeSlave.whoreSkill = 0>>
+
+
+<<case "trainers">>
+	<<set $activeSlaveOneTimeMaxAge = 42>>
+	<<include "Generate New Slave">>
+	<<set $activeSlave.origin = "You bought her from the trainers' slave market after they put her through basic training.">>
+	<<set $activeSlave.devotion += 40>>
+	<<set $activeSlave.trust += 40>>
+	<<set $activeSlave.health += 30>>
+	<<if $activeSlave.vagina != -1>>
+		<<set $activeSlave.vaginalSkill += 15>>
+	<<else>>
+		<<set $activeSlave.vaginalSkill = 0>>
+		<<set $activeSlave.clit = 0>>
+	<</if>>
+	<<if $activeSlave.vagina == 0>>
+		<<set $activeSlave.vagina += 1>>
+	<</if>>
+	<<if $activeSlave.anus == 0>>
+		<<set $activeSlave.anus += 1>>
+	<</if>>
+	<<set $activeSlave.oralSkill += 15>>
+	<<set $activeSlave.analSkill += 15>>
+	<<set $activeSlave.fetishKnown = 1>>
+	<<if $activeSlave.accent >= 3>>
+		<<set $activeSlave.accent -= 1>>
+	<</if>>
+	<<if random(1,100) > 50>>
+		<<set $activeSlave.sexualFlaw = "none">>
+	<</if>>
+	<<if random(1,100) > 50>>
+		<<set $activeSlave.behavioralFlaw = "none">>
+	<</if>>
+
+
+<<case "TSS">>
+	<<if $TSS.schoolUpgrade == 1>>
+		<<set $activeSlaveOneTimeMinAge = 36>>
+	<<else>>
+		<<set $activeSlaveOneTimeMaxAge = 18>>
+	<</if>>
+	<<include "Generate XX Slave">>
+	<<set $activeSlave.career = "a slave">>
+	<<set $activeSlave.butt = either(1, 2, 2, 3)>>
+	<<set $activeSlave.boobs = either(200, 300, 300, 400)>>
+	<<if $TSS.schoolUpgrade == 1>>
+		<<set $activeSlave.origin = "You bought her fresh from the new Slavegirl School after she was retrained as a slave girl.">>
+		<<set $activeSlave.butt += 1>>
+		<<set $activeSlave.boobs += 200>>
+		<<set $activeSlave.anus = 1>>
+		<<set $activeSlave.vagina = 1>>
+	<<else>>
+		<<set $activeSlave.origin = "You bought her fresh from the Slavegirl School right after her majority.">>
+		<<set $activeSlave.anus = 0>>
+		<<set $activeSlave.vagina = 0>>
+		<<set $activeSlave.birthWeek = 0>>
+	<</if>>
+	<<set $activeSlave.intelligenceImplant = 1>>
+	<<set $activeSlave.teeth = "normal">>
+	<<set $activeSlave.intelligence = either (-1, 0, 1, 2)>>
+	<<set $activeSlave.devotion = random(25,45)>>
+	<<set $activeSlave.trust = random(25,45)>>
+	<<set $activeSlave.health = random(50,60)>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.weight = 0>>
+	<<set $activeSlave.chem = 20>>
+	<<if $TSS.schoolUpgrade == 0>>
+		<<set $activeSlave.vaginalSkill = 0>>
+		<<set $activeSlave.oralSkill = 0>>
+		<<set $activeSlave.analSkill = 0>>
+		<<set $activeSlave.whoreSkill = 0>>
+		<<set $activeSlave.entertainSkill = 15>>
+	<<else>>
+		<<set $activeSlave.vaginalSkill = 15>>
+		<<set $activeSlave.oralSkill = 15>>
+		<<set $activeSlave.analSkill = 15>>
+		<<set $activeSlave.whoreSkill = 15>>
+		<<set $activeSlave.entertainSkill = 15>>
+	<</if>>
+	<<set $activeSlave.combatSkill = 0>>
+	<<set $activeSlave.pubicHStyle = "waxed">>
+	<<set $activeSlave.underArmHStyle = "waxed">>
+	<<set $activeSlave.sexualFlaw = either("none")>>
+	<<set $activeSlave.behavioralFlaw = either("none")>>
+	<<set $activeSlave.hStyle = "tails">>
+	<<set $activeSlave.customTat = "She has the simple logo of the corporation that operates The Slavegirl School tattooed on her left cheek.">>
+
+
+<<case "GRI">>
+	<<set $activeSlaveOneTimeMinAge = 16>>
+	<<set $activeSlaveOneTimeMaxAge = 19>>
+	<<include "Generate XX Slave">>
+	<<set $activeSlave.origin = "You bought her from the Growth Research Institute right after her use as a test subject ended.">>
+	<<set $activeSlave.career = "a slave">>
+	<<set $activeSlave.intelligenceImplant = 0>>
+	<<set $activeSlave.devotion = random(-15,-5)>>
+	<<set $activeSlave.trust = random(-25,-45)>>
+	<<set $activeSlave.chem = 100>>
+	<<if $GRI.schoolUpgrade == 1>>
+		<<set $activeSlave.health = 200>>
+	<<else>>
+		<<set $activeSlave.health = random(-80,100)>>
+	<</if>>
+	<<set $activeSlave.height = random(160,210)>>
+	<<set $activeSlave.butt = random(4,10)>>
+	<<if $GRI.schoolUpgrade == 2>>
+		<<set $activeSlave.boobs = 200*random(15,30)>>
+		<<set $activeSlave.lactation = 2>>
+	<<else>>
+		<<set $activeSlave.boobs = 200*random(4,20)>>
+	<</if>>
+	<<set $activeSlave.nipples = either("inverted", "huge")>>
+	<<set $activeSlave.areolae = either(0, 1, 2, 3)>>
+	<<set $activeSlave.clit = either(0, 1, 2, 3)>>
+	<<set $activeSlave.lips = random(5,85)>>
+	<<set $activeSlave.anus = 0>>
+	<<set $activeSlave.vagina = 0>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.weight = 0>>
+	<<set $activeSlave.vaginalSkill = 0>>
+	<<set $activeSlave.oralSkill = 0>>
+	<<set $activeSlave.analSkill = 0>>
+	<<set $activeSlave.whoreSkill = 0>>
+	<<set $activeSlave.entertainSkill = 0>>
+	<<set $activeSlave.combatSkill = 0>>
+	<<set $activeSlave.pubicHStyle = "waxed">>
+	<<set $activeSlave.birthWeek = 0>>
+	<<set $activeSlave.behavioralFlaw = either("odd")>>
+	<<set $activeSlave.hStyle = "shaved">>
+	<<set $activeSlave.hLength = 0>>
+	<<set $activeSlave.customTat = "She has a barcode that identified her when she was a test subject at the Growth Research Institute tattooed on her left cheek.">>
+
+
+<<case "SCP">>
+	<<set $activeSlaveOneTimeMinAge = 16>>
+	<<set $activeSlaveOneTimeMaxAge = 19>>
+	<<include "Generate XX Slave">>
+	<<set $activeSlave.origin = "You bought her from St. Claver Preparatory after she served as a plastic surgeon's passing final exam.">>
+	<<set $activeSlave.chem = 20>>
+	<<set $activeSlave.career = "a slave">>
+	<<if $SCP.schoolUpgrade == 1>>
+		<<set $activeSlave.intelligenceImplant = 0>>
+		<<set $activeSlave.intelligence = -2>>
+		<<set $activeSlave.devotion = 100>>
+		<<set $activeSlave.trust = 100>>
+	<<else>>
+		<<set $activeSlave.intelligenceImplant = 1>>
+		<<set $activeSlave.teeth = "normal">>
+		<<set $activeSlave.intelligence = either(-1, 0, 1, 2)>>
+		<<set $activeSlave.devotion = random(25,45)>>
+		<<set $activeSlave.trust = random(25,45)>>
+	<</if>>
+	<<set $activeSlave.health = 100>>
+	<<set $activeSlave.heightImplant = 1>>
+	<<set $activeSlave.height += 10>>
+	<<set $activeSlave.buttImplant = (4-$activeSlave.butt)>>
+	<<set $activeSlave.butt += $activeSlave.buttImplant>>
+	<<set $activeSlave.boobsImplant = (2000-$activeSlave.boobs)>>
+	<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
+	<<set $activeSlave.nipples = "tiny">>
+	<<set $activeSlave.areolae = 0>>
+	<<set $activeSlave.clit = 0>>
+	<<set $activeSlave.lipsImplant = (20-$activeSlave.lips)>>
+	<<set $activeSlave.lips += $activeSlave.lipsImplant>>
+	<<set $activeSlave.faceImplant = 2>>
+	<<set $activeSlave.face = Math.clamp($activeSlave.face+(20*$activeSlave.faceImplant),-100,100)>>
+	<<set $activeSlave.faceShape = "normal">>
+	<<set $activeSlave.anus = 0>>
+	<<set $activeSlave.vagina = 0>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.weight = -20>>
+	<<if $SCP.schoolUpgrade == 2>>
+		<<set $activeSlave.vaginalSkill = 15>>
+		<<set $activeSlave.oralSkill = 15>>
+		<<set $activeSlave.analSkill = 15>>
+		<<set $activeSlave.whoreSkill = 15>>
+		<<set $activeSlave.entertainSkill = 15>>
+	<<else>>
+		<<set $activeSlave.vaginalSkill = 0>>
+		<<set $activeSlave.oralSkill = 0>>
+		<<set $activeSlave.analSkill = 0>>
+		<<set $activeSlave.whoreSkill = 0>>
+		<<set $activeSlave.entertainSkill = 0>>
+	<</if>>
+	<<set $activeSlave.combatSkill = 0>>
+	<<set $activeSlave.pubicHStyle = "waxed">>
+	<<set $activeSlave.underArmHStyle = "waxed">>
+	<<set $activeSlave.birthWeek = 0>>
+	<<set $activeSlave.sexualFlaw = either("none")>>
+	<<set $activeSlave.behavioralFlaw = either("none")>>
+	<<set $activeSlave.hStyle = "tails">>
+	<<set $activeSlave.hColor = "blonde">>
+	<<set $activeSlave.pubicHColor = "blonde">>
+	<<set $activeSlave.underArmHColor = "blonde">>
+	<<if $activeSlave.race != "white">><<set $activeSlave.race = "surgically altered to look white">><</if>>
+	<<set $activeSlave.skin = "tanned">>
+	<<set $activeSlave.customTat = "She has the coat of arms of St. Claver Preparatory tattooed on her left cheek.">>
+
+
+<<case "LDE">>
+	<<set $activeSlaveOneTimeMinAge = 16>>
+	<<set $activeSlaveOneTimeMaxAge = 19>>
+	<<include "Generate XY Slave">>
+	<<set $activeSlave.origin = "You bought her from the innovative École des Enculées right after her graduation.">>
+	<<set $activeSlave.career = "a slave">>
+	<<set $activeSlave.intelligenceImplant = 0>>
+	<<set $activeSlave.chem = 100>>
+	<<if $LDE.schoolUpgrade == 1>>
+		<<set $activeSlave.devotion = 100>>
+		<<set $activeSlave.trust = 100>>
+	<<else>>
+		<<set $activeSlave.devotion = random(60,75)>>
+		<<set $activeSlave.trust = random(55,60)>>
+	<</if>>
+	<<set $activeSlave.health = random(60,80)>>
+	<<set $activeSlave.muscles = 0>>
+	<<set $activeSlave.butt = either(4,5)>>
+	<<set $activeSlave.face = random(15,55)>>
+	<<set $activeSlave.faceShape = "androgynous">>
+	<<set $activeSlave.boobs = either(500,650,800)>>
+	<<set $activeSlave.waist = -15>>
+	<<set $activeSlave.lips = 35>>
+	<<if $LDE.schoolUpgrade is 2>>
+		<<set $activeSlave.dick = either(3,4)>>
+		<<set $activeSlave.balls = either(3,4)>>
+		<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
+	<<if $activeSlave.balls > 0>><<set $activeSlave.scrotum = $activeSlave.balls>><</if>>
+	<<else>>
+		<<set $activeSlave.dick = either(1,1,1,2)>>
+		<<set $activeSlave.balls = either(1,1,1,2)>>
+		<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
+	<<if $activeSlave.balls > 0>><<set $activeSlave.scrotum = $activeSlave.balls>><</if>>
+		<<set $activeSlave.pubertyXY = 0>>
+		<<set $activeSlave.pubertyAgeXY = random(24,50)>>
+	<</if>>
+	<<set $activeSlave.anus = 2>>
+	<<set $activeSlave.vagina = -1>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.weight = random(0,20)>>
+	<<set $activeSlave.vaginalSkill = 0>>
+	<<set $activeSlave.oralSkill = 15>>
+	<<set $activeSlave.analSkill = 100>>
+	<<set $activeSlave.whoreSkill = 15>>
+	<<set $activeSlave.entertainSkill = 15>>
+	<<set $activeSlave.combatSkill = 0>>
+	<<set $activeSlave.pubicHStyle = "waxed">>
+	<<set $activeSlave.birthWeek = 0>>
+	<<set $activeSlave.sexualFlaw = "none">>
+	<<set $activeSlave.behavioralFlaw = either("none", "odd")>>
+	<<set $activeSlave.fetishStrength = either(1, 2)>>
+	<<set $activeSlave.fetish = "buttslut">>
+	<<set $activeSlave.fetishKnown = 1>><<set $activeSlave.attrKnown = 1>>
+	<<set $activeSlave.hStyle = "tails">>
+	<<set $activeSlave.hLength = 100>>
+	<<set $activeSlave.customTat = "She has the buttock-shaped symbol of the École des Enculées that created her tattooed on her left cheek.">>
+
+
+<<case "TGA">>
+	<<set $activeSlaveOneTimeMinAge = 16>>
+	<<set $activeSlaveOneTimeMaxAge = 19>>
+	<<include "Generate XY Slave">>
+	<<set $activeSlave.origin = "You bought her fresh from the intense Gymnasium-Academy right after her majority.">>
+	<<set $activeSlave.career = "a slave">>
+	<<set $activeSlave.intelligenceImplant = 1>>
+	<<set $activeSlave.teeth = "normal">>
+	<<set $activeSlave.intelligence = either (-1, 0, 1, 2)>>
+	<<set $activeSlave.chem = 20>>
+	<<if $TGA.schoolUpgrade == 1>>
+		<<set $activeSlave.devotion = 100>>
+		<<set $activeSlave.trust = 100>>
+	<<else>>
+		<<set $activeSlave.devotion = random(25,45)>>
+		<<set $activeSlave.trust = random(25,45)>>
+	<</if>>
+	<<set $activeSlave.health = 100>>
+	<<set $activeSlave.muscles = either(20, 50, 50)>>
+	<<set $activeSlave.butt = either(2, 2, 3)>>
+	<<set $activeSlave.boobs = either(100, 200)>>
+	<<set $activeSlave.dick = random(3,5)>>
+	<<set $activeSlave.balls = random(3,5)>>
+	<<set $activeSlave.anus = 0>>
+	<<set $activeSlave.vagina = -1>>
+	<<set $activeSlave.preg = 0>>
+	<<set $activeSlave.weight = 0>>
+	<<set $activeSlave.vaginalSkill = 0>>
+	<<set $activeSlave.oralSkill = 0>>
+	<<set $activeSlave.analSkill = 0>>
+	<<set $activeSlave.whoreSkill = 0>>
+	<<set $activeSlave.entertainSkill = 0>>
+	<<if $TGA.schoolUpgrade == 2>>
+		<<set $activeSlave.combatSkill = 1>>
+	<<else>>
+		<<set $activeSlave.combatSkill = 0>>
+	<</if>>
+	<<set $activeSlave.pubicHStyle = "waxed">>
+	<<set $activeSlave.underArmHStyle = "waxed">>
+	<<set $activeSlave.birthWeek = 0>>
+	<<set $activeSlave.sexualFlaw = either("none", "apathetic")>>
+	<<set $activeSlave.behavioralFlaw = either("none", "arrogant", "odd")>>
+	<<set $activeSlave.hStyle = "short">>
+	<<set $activeSlave.hLength = 2>>
+	<<set $activeSlave.customTat = "She has the baroque crest of the Gymnasium-Academy that trained her branded into her left cheek.">>
+
+
+<<case "TFS">>
+	<<set $activeSlaveOneTimeMinAge = 25>>
+	<<set $activeSlaveOneTimeMaxAge = 29>>
+	<<set $one_time_age_overrides_pedo_mode = 1>>
+	<<include "Generate XY Slave">>
+	<<set $activeSlave.origin = "You bought her from the enigmatic Futanari Sisters after they sold her into slavery.">>
+	<<set $activeSlave.career = "a Futanari Sister">>
+	<<set $activeSlave.faceShape = either("sensual", "exotic")>>
+	<<set _sisterAge = random(1,5)>>
+	<<if _sisterAge == 1>>
+		<<set $activeSlave.intelligence = -2>>
+		<<set $activeSlave.hips = 0>>
+		<<set $activeSlave.face = either(35,35,35,75,100)>>
+		<<if $TFS.schoolUpgrade == 1>>
+			<<set $activeSlave.balls = 1>>
+			<<set $activeSlave.scrotum = 0>>
+		<<elseif $TFS.schoolUpgrade == 2>>
+			<<set $activeSlave.balls = 6>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<<else>>
+			<<set $activeSlave.balls = random(2,3)>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<</if>>
+		<<set $activeSlave.lips = 0>>
+		<<set $activeSlave.weight = 0>>
+		<<set $activeSlave.actualAge = random(19,24)>>
+		<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
+		<<set $activeSlave.visualAge = $activeSlave.actualAge>>
+		<<set $activeSlave.vagina = 2>>
+		<<set $activeSlave.anus = 2>>
+		<<set $activeSlave.fetish = "submissive">>
+	<<elseif _sisterAge == 2>>
+		<<set $activeSlave.intelligence = -1>>
+		<<set $activeSlave.hips = 1>>
+		<<set $activeSlave.face = either(35,35,35,75,100)>>
+		<<if $TFS.schoolUpgrade == 1>>
+			<<set $activeSlave.balls = 1>>
+			<<set $activeSlave.scrotum = 0>>
+		<<elseif $TFS.schoolUpgrade == 2>>
+			<<set $activeSlave.balls = 6>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<<else>>
+			<<set $activeSlave.balls = random(2,3)>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<</if>>
+		<<set $activeSlave.lips = 0>>
+		<<set $activeSlave.weight = 0>>
+		<<set $activeSlave.vagina = 2>>
+		<<set $activeSlave.anus = 2>>
+		<<set $activeSlave.fetish = either("submissive", "buttslut", "cumslut")>>
+	<<elseif _sisterAge == 3>>
+		<<set $activeSlave.intelligence = 0>>
+		<<set $activeSlave.hips = 2>>
+		<<set $activeSlave.face = either(35,35,75,75,100)>>
+		<<if $TFS.schoolUpgrade == 1>>
+			<<set $activeSlave.balls = 1>>
+			<<set $activeSlave.scrotum = 0>>
+		<<elseif $TFS.schoolUpgrade == 2>>
+			<<set $activeSlave.balls = 6>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<<else>>
+			<<set $activeSlave.balls = random(3,4)>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<</if>>
+		<<set $activeSlave.lips = random(15,25)>>
+		<<set $activeSlave.weight = 20>>
+		<<set $activeSlave.actualAge = random(30,34)>>
+		<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
+		<<set $activeSlave.visualAge = $activeSlave.actualAge>>
+		<<set $activeSlave.vagina = 2>>
+		<<set $activeSlave.anus = 2>>
+		<<set $activeSlave.fetish = either("buttslut", "cumslut")>>
+	<<elseif _sisterAge == 4>>
+		<<set $activeSlave.intelligence = 1>>
+		<<set $activeSlave.hips = 2>>
+		<<set $activeSlave.face = either(35,75,75,100,100)>>
+		<<if $TFS.schoolUpgrade == 1>>
+			<<set $activeSlave.balls = 1>>
+			<<set $activeSlave.scrotum = 0>>
+		<<elseif $TFS.schoolUpgrade == 2>>
+			<<set $activeSlave.balls = 6>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<<else>>
+			<<set $activeSlave.balls = random(4,5)>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<</if>>
+		<<set $activeSlave.lips = random(25,55)>>
+		<<set $activeSlave.weight = 20>>
+		<<set $activeSlave.actualAge = random(35,39)>>
+		<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
+		<<set $activeSlave.visualAge = $activeSlave.actualAge>>
+		<<set $activeSlave.vagina = 3>>
+		<<set $activeSlave.anus = 3>>
+		<<set $activeSlave.fetish = either("buttslut", "cumslut", "dom")>>
+	<<else>>
+		<<set $activeSlave.intelligence = 2>>
+		<<set $activeSlave.hips = 2>>
+		<<set $activeSlave.face = either(35,75,100,100,100)>>
+		<<if $TFS.schoolUpgrade == 1>>
+			<<set $activeSlave.balls = 1>>
+			<<set $activeSlave.scrotum = 0>>
+		<<elseif $TFS.schoolUpgrade == 2>>
+			<<set $activeSlave.balls = 6>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<<else>>
+			<<set $activeSlave.balls = random(5,6)>>
+			<<set $activeSlave.scrotum = $activeSlave.balls>>
+		<</if>>
+		<<set $activeSlave.lips = random(25,55)>>
+		<<set $activeSlave.weight = 50>>
+		<<set $activeSlave.actualAge = random(40,42)>>
+		<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
+		<<set $activeSlave.visualAge = $activeSlave.actualAge>>
+		<<set $activeSlave.vagina = 3>>
+		<<set $activeSlave.anus = 3>>
+		<<set $activeSlave.fetish = "dom">>
+	<</if>>
+	<<set $activeSlave.chem = 100+(_sisterAge*50)>>
+	<<set $activeSlave.butt = _sisterAge+random(2,4)>>
+	<<set $activeSlave.boobs = 50*((10*_sisterAge)+random(10,20))>>
+	<<set $activeSlave.dick = _sisterAge+random(1,2)>>
+	<<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
+	<<set $activeSlave.preg = -2>>
+	<<if $TFS.farmUpgrade > 0>>
+		<<set $activeSlave.ovaries = 1>>
+		<<set $activeSlave.preg = -1>>
+		<<if $TFS.farmUpgrade == 2>>
+			<<if $week - $TFS.farmUpgradeAsked < 35>>
+				<<set $activeSlave.preg = random(1,($week - $TFS.farmUpgradeAsked))>>
+			<<else>>
+				<<set $activeSlave.preg = random(1,35)>>
+			<</if>>
+		<</if>>
+	<</if>>
+	<<set $activeSlave.intelligenceImplant = 1>>
+	<<set $activeSlave.teeth = "normal">>
+	<<if $TFS.schoolUpgrade == 2>>
+		<<set $activeSlave.energy = 100>>
+	<<else>>
+		<<set $activeSlave.energy = $activeSlave.physicalAge+random(20,30)>>
+	<</if>>
+	<<set $activeSlave.devotion = random(30,40)>>
+	<<set $activeSlave.trust = random(60,75)>>
+	<<set $activeSlave.health = random(60,80)>>
+	<<set $activeSlave.muscles = 20>>
+	<<set $activeSlave.waist = -15>>
+	<<set $activeSlave.shoulders = 1>>
+	<<set $activeSlave.vaginalSkill = 100>>
+	<<set $activeSlave.oralSkill = 100>>
+	<<set $activeSlave.analSkill = 100>>
+	<<set $activeSlave.whoreSkill = 15>>
+	<<set $activeSlave.entertainSkill = 100>>
+	<<set $activeSlave.combatSkill = 0>>
+	<<set $activeSlave.pubicHStyle = "waxed">>
+	<<set $activeSlave.underArmHStyle = "waxed">>
+	<<if $TFS.schoolUpgrade == 1>>
+		<<set $activeSlave.sexualQuirk = "caring">>
+	<</if>>
+	<<set $activeSlave.sexualFlaw = either("none", "hates women")>>
+	<<set $activeSlave.behavioralFlaw = either("none", "arrogant")>>
+	<<set $activeSlave.fetishStrength = 100>>
+	<<set $activeSlave.fetishKnown = 0>>
+	<<set $activeSlave.attrKnown = 0>>
+	<<set $activeSlave.hStyle = "neat">>
+	<<set $activeSlave.hLength = 150>>
+	<<set $activeSlave.customTat = "She has a simple pink heart tattooed on her right temple.">>
+
+
+<<default>>
+    Someone messed up.  _market is not known.
+
+<</switch>>
+<</widget>>
+
+/%
+   Call as <<MarketName 'market' ['arcology']>>
+	If $args[0] is undefined, will generate a kidnapper's market slave.
+	If $args[0] is "corporate" and $args[1] is undefined, will use neighboring arcology 1.
+%/
+<<widget MarketName>>
+<<if $args[0]>>
+    <<set _market = $args[0]>>
+<<else>>
+    <<set _market = "kidnappers">>
+<</if>>
+
+<<switch _market>>
+<<case "corporate">>
+	your corporation
+<<case "neighbor">>
+	<<if $args[1]>>
+	    $arcologies[$args[1]].name
+	<<else>>
+	    $arcologies[1].name
+	<</if>>
+<<case "kidnappers">>
+	the Kidnappers' Market
+<<case "indentures">>
+	the Indentures Market
+<<case "hunters">>
+	the Runaway Hunters' Market
+<<case "raiders">>
+	the Raiders' Market
+<<case "underage raiders">>
+	the Raiders' Black Market
+<<case "trainers">>
+	the Trainers' Market
+<<case "TSS">>
+	The Slavegirl School
+<<case "GRI">>
+	Growth Research Institute
+<<case "SCP">>
+	St. Claver Preparatory
+<<case "LDE">>
+	L'école des Enculées
+<<case "TGA">>
+	The Gymnasium-Academy
+<<case "TFS">>
+	The Futanari Sisters
+<<default>>
+    Someone messed up.  _market is not known.
+
+<</switch>>
+<</widget>>
+
+/%
+   Call as <<MarketNamePeriod 'market' ['arcology']>>
+	If $args[0] is undefined, will generate a kidnapper's market slave.
+	If $args[0] is "corporate" and $args[1] is undefined, will use neighboring arcology 1.
+%/
+<<widget MarketNamePeriod>>
+<<if $args[0]>>
+    <<set _market = $args[0]>>
+<<else>>
+    <<set _market = "kidnappers">>
+<</if>>
+
+<<switch _market>>
+<<case "corporate">>
+	your corporation.
+<<case "neighbor">>
+	<<if $args[1]>>
+	    <<print $arcologies[$args[1]].name>>.
+	<<else>>
+	    <<print $arcologies[1].name>>.
+	<</if>>
+<<case "kidnappers">>
+	the Kidnappers' Market.
+<<case "indentures">>
+	the Indentures Market.
+<<case "hunters">>
+	the Runaway Hunters' Market.
+<<case "raiders">>
+	the Raiders' Market.
+<<case "underage raiders">>
+	the Raiders' Black Market.
+<<case "trainers">>
+	the Trainers' Market.
+<<case "TSS">>
+	The Slavegirl School.
+<<case "GRI">>
+	Growth Research Institute.
+<<case "SCP">>
+	St. Claver Preparatory.
+<<case "LDE">>
+	L'école des Enculées.
+<<case "TGA">>
+	The Gymnasium-Academy.
+<<case "TFS">>
+	The Futanari Sisters.
+<<default>>
+    Someone messed up.  _market is not known.
+
+<</switch>>
+<</widget>>