From a3f982aae09e94a4552fc2e5d4b68f56117e76c2 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sun, 23 Feb 2020 03:18:51 -0500
Subject: [PATCH] butt implant type

---
 Changelog.txt                                 |  10 +-
 player variables documentation - Pregmod.txt  |  20 ++++
 slave variables documentation - Pregmod.txt   |  38 +++---
 src/cheats/mod_EditChildCheatNew.tw           |  15 ++-
 src/cheats/mod_EditInfantCheatNew.tw          |  15 ++-
 src/cheats/mod_EditSlaveCheat.tw              |  11 +-
 src/cheats/mod_editSlaveCheatNew.tw           |  15 ++-
 .../updateSlaveObject.js                      |  13 +++
 .../nursery/nurseryDatatypeCleanup.js         |  12 +-
 src/facilities/nursery/nurseryWidgets.js      |  24 ++--
 src/gui/Encyclopedia/encyclopedia.tw          |   8 +-
 src/js/SlaveState.js                          |  14 ++-
 src/js/datatypeCleanupJS.js                   |  17 ++-
 src/js/economyJS.js                           |   2 +-
 src/js/generateGenetics.js                    |   2 +-
 src/js/generateMarketSlave.js                 |  16 +++
 src/npc/acquisition.tw                        |   1 +
 src/npc/databases/cheatmodeDatabase.tw        |   6 +-
 src/npc/databases/dSlavesDatabase.tw          |  16 +--
 src/npc/databases/ddSlavesDatabase.tw         |  10 +-
 src/npc/databases/dfSlavesDatabase.tw         |   4 +-
 src/npc/rgASDump.tw                           |   2 +-
 src/npc/slaveStats.tw                         |   5 +-
 src/npc/surgery/surgery.js                    | 108 ++++++++++++------
 src/player/electiveSurgery.tw                 |   8 +-
 src/player/js/PlayerState.js                  |  14 ++-
 src/pregmod/eliteSlave.tw                     |  15 ++-
 src/pregmod/newChildIntro.tw                  |   4 +-
 src/pregmod/saAgent.tw                        |   2 +-
 src/uncategorized/PESS.tw                     |   7 +-
 src/uncategorized/REFS.tw                     |   1 +
 src/uncategorized/RESS.tw                     |   3 +-
 src/uncategorized/costsReport.tw              |   4 +-
 src/uncategorized/jeSlaveDispute.tw           |   1 +
 src/uncategorized/lawCompliance.tw            |   2 +
 src/uncategorized/newSlaveIntro.tw            |   1 +
 src/uncategorized/pRivalryActions.tw          |   1 +
 src/uncategorized/pRivalryCapture.tw          |   2 +
 src/uncategorized/prestigiousSlave.tw         |   8 ++
 src/uncategorized/reBoomerang.tw              |  12 +-
 src/uncategorized/reFSAcquisition.tw          |  17 ++-
 src/uncategorized/reMalefactor.tw             |   2 +
 src/uncategorized/reRecruit.tw                |   4 +
 src/uncategorized/reRelativeRecruiter.tw      |   4 +-
 src/uncategorized/recETS.tw                   |   7 ++
 src/uncategorized/remoteSurgery.tw            |  65 ++++++++---
 src/uncategorized/resFailure.tw               |   1 +
 src/uncategorized/saLongTermEffects.tw        |   2 +-
 src/uncategorized/seCoursing.tw               |   2 +
 src/uncategorized/seRaiding.tw                |   2 +
 src/uncategorized/seRecruiterSuccess.tw       |   5 +-
 src/uncategorized/slaveShelter.tw             |   3 +-
 src/utility/descriptionWidgetsFlesh.tw        |   8 +-
 53 files changed, 410 insertions(+), 181 deletions(-)

diff --git a/Changelog.txt b/Changelog.txt
index 82706bacd69..3051f5acc0c 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,22 +1,26 @@
 Pregmod
 
-0.10.7.1-3.2.x
+0.10.7.1-3.3.x
 
-	2
-	-tiredness overhauled
+	0
+	-tiredness overhauled (temp disabled)
 	-illness tweaked
 	-slave performance listing
 	-debug beauty/FResult listing
 	-reminder system
 	-engineering & warfare personal attention options
+	-better defined breast and butt implant types
 	-porn/ads code optimization
 	-arcology structure optimization
 	-expanded racial eye, hair and skin color ranges
 	-royal blood event can now use real dynasties
 	-CSS replacing SC formatting
 	-code consolidation
+	-major code structure improvements
 	-various fixes and balance changes
 
+0.10.7.1-3.2.x
+
 	12/26/2019
 
 	1
diff --git a/player variables documentation - Pregmod.txt b/player variables documentation - Pregmod.txt
index 89c7f7bbecd..3fa9a587f2f 100644
--- a/player variables documentation - Pregmod.txt	
+++ b/player variables documentation - Pregmod.txt	
@@ -135,6 +135,16 @@ Size, if any, of breast implants
 0 - none
 1+ - yes
 
+boobsImplantType:
+
+Implant type
+"none"
+"normal"
+"string"
+"fillable"
+"advanced fillable"
+"hyper fillable"
+
 lactation:
 
 is player lactating
@@ -160,6 +170,16 @@ do you have butt implants
 0 - no
 1+ - size
 
+buttImplantType:
+
+Implant type
+"none"
+"normal"
+"string"
+"fillable"
+"advanced fillable"
+"hyper fillable"
+
 vagina:
 
 (common in events)
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index f714f85bc48..081f212b6c9 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1771,16 +1771,23 @@ accepts int
 boobsImplant:
 
 slave implant size
-0	  - no implants
-1-199	 - small implants
+0	      - no implants
+1-199	  - small implants
 200-399   - normal implants
 400-599   - large implants
-600+	  - boobsImplant size fillable implants
+600-799	  - huge implants
+800-999	  - giant implants
+1000+     - massive implants
 
 boobsImplantType:
 
-0 - normal/none
-1 - string
+Implant type
+"none"
+"normal"
+"string"
+"fillable"
+"advanced fillable"
+"hyper fillable"
 
 boobShape:
 
@@ -1922,18 +1929,21 @@ butt size
 
 buttImplant:
 
-butt implant type and size
-0 - none
-1 - butt implant
-2 - big butt implant
-3 - fillable butt implants
-5 - 8  - advanced fillable implants
-9+ - hyper fillable implants
+butt implant size
+0  - none
+1  - butt implant
+2  - big butt implant
+3+ - massive butt implant
 
 buttImplantType:
 
-0 - normal/none
-1 - string
+Implant type
+"none"
+"normal"
+"string"
+"fillable"
+"advanced fillable"
+"hyper fillable"
 
 buttTat:
 
diff --git a/src/cheats/mod_EditChildCheatNew.tw b/src/cheats/mod_EditChildCheatNew.tw
index e6eb9bfe62a..059fbb45d59 100644
--- a/src/cheats/mod_EditChildCheatNew.tw
+++ b/src/cheats/mod_EditChildCheatNew.tw
@@ -1698,14 +1698,13 @@
 	<<radiobutton "$tempSlave.buttImplant" 2>> Large
 	<<radiobutton "$tempSlave.buttImplant" 3>> Huge
 	<br>
-	''Butt String Implants: ''
-	<<if $tempSlave.buttImplantType == 0>>
-		@@.yellow;No@@
-		<<checkbox "$tempSlave.buttImplantType" 0 1>>
-	<<else>>
-		@@.yellow;Yes@@
-		<<checkbox "$tempSlave.buttImplantType" 0 1 checked>>
-	<</if>>
+	''Butt Implant Type: @@.yellow;$tempSlave.buttImplantType@@''
+	<<radiobutton "$tempSlave.buttImplantType" "None">> None
+	<<radiobutton "$tempSlave.buttImplantType" "normal">> Normal
+	<<radiobutton "$tempSlave.buttImplantType" "string">> String
+	<<radiobutton "$tempSlave.buttImplantType" "fillable">> Fillable
+	<<radiobutton "$tempSlave.buttImplantType" "advanced fillable">> Advanced Fillable
+	<<radiobutton "$tempSlave.buttImplantType" "hyper fillable">> Hyper Fillable
 	<br><br>
 	''Anus Size:''
 	<<if $tempSlave.anus == 0>>@@.lime;Virgin.@@
diff --git a/src/cheats/mod_EditInfantCheatNew.tw b/src/cheats/mod_EditInfantCheatNew.tw
index 140c10d01ef..fe012915cc4 100644
--- a/src/cheats/mod_EditInfantCheatNew.tw
+++ b/src/cheats/mod_EditInfantCheatNew.tw
@@ -1700,14 +1700,13 @@
 	<<radiobutton "$tempSlave.buttImplant" 2>> Large
 	<<radiobutton "$tempSlave.buttImplant" 3>> Huge
 	<br>
-	''Butt String Implants: ''
-	<<if $tempSlave.buttImplantType == 0>>
-		@@.yellow;No@@
-		<<checkbox "$tempSlave.buttImplantType" 0 1>>
-	<<else>>
-		@@.yellow;Yes@@
-		<<checkbox "$tempSlave.buttImplantType" 0 1 checked>>
-	<</if>>
+	''Butt Implant Type: @@.yellow;$tempSlave.buttImplantType@@''
+	<<radiobutton "$tempSlave.buttImplantType" "None">> None
+	<<radiobutton "$tempSlave.buttImplantType" "normal">> Normal
+	<<radiobutton "$tempSlave.buttImplantType" "string">> String
+	<<radiobutton "$tempSlave.buttImplantType" "fillable">> Fillable
+	<<radiobutton "$tempSlave.buttImplantType" "advanced fillable">> Advanced Fillable
+	<<radiobutton "$tempSlave.buttImplantType" "hyper fillable">> Hyper Fillable
 	<br><br>
 	''Anus Size:''
 	<<if $tempSlave.anus == 0>>@@.lime;Virgin.@@
diff --git a/src/cheats/mod_EditSlaveCheat.tw b/src/cheats/mod_EditSlaveCheat.tw
index da30e4914de..df6bb7a6913 100644
--- a/src/cheats/mod_EditSlaveCheat.tw
+++ b/src/cheats/mod_EditSlaveCheat.tw
@@ -751,10 +751,13 @@ Custom sclera color: <<textbox "$tempSlave.sclerae" $tempSlave.sclerae>>
 <<radiobutton "$tempSlave.buttImplant" 2>> Large
 <<radiobutton "$tempSlave.buttImplant" 3>> Huge
 <br>
-''Butt String Implants (no:0 | yes:1):''
-<<textbox "$tempSlave.buttImplantType" $tempSlave.boobsImplantType>>
-<<radiobutton "$tempSlave.buttImplantType" 0>> No
-<<radiobutton "$tempSlave.buttImplantType" 1>> Yes
+''Butt Implant Type: @@.yellow;$tempSlave.buttImplantType@@''
+<<radiobutton "$tempSlave.buttImplantType" "None">> None
+<<radiobutton "$tempSlave.buttImplantType" "normal">> Normal
+<<radiobutton "$tempSlave.buttImplantType" "string">> String
+<<radiobutton "$tempSlave.buttImplantType" "fillable">> Fillable
+<<radiobutton "$tempSlave.buttImplantType" "advanced fillable">> Advanced Fillable
+<<radiobutton "$tempSlave.buttImplantType" "hyper fillable">> Hyper Fillable
 
 <br><br>
 
diff --git a/src/cheats/mod_editSlaveCheatNew.tw b/src/cheats/mod_editSlaveCheatNew.tw
index 16409acc59c..79c5440dc48 100644
--- a/src/cheats/mod_editSlaveCheatNew.tw
+++ b/src/cheats/mod_editSlaveCheatNew.tw
@@ -2834,14 +2834,13 @@
 	<<radiobutton "$tempSlave.buttImplant" 2>> Large
 	<<radiobutton "$tempSlave.buttImplant" 3>> Huge
 	<br>
-	''Butt String Implants: ''
-	<<if $tempSlave.buttImplantType == 0>>
-		@@.yellow;No@@
-		<<checkbox "$tempSlave.buttImplantType" 0 1>>
-	<<else>>
-		@@.yellow;Yes@@
-		<<checkbox "$tempSlave.buttImplantType" 0 1 checked>>
-	<</if>>
+	''Butt Implant Type: @@.yellow;$tempSlave.buttImplantType@@''
+	<<radiobutton "$tempSlave.buttImplantType" "None">> None
+	<<radiobutton "$tempSlave.buttImplantType" "normal">> Normal
+	<<radiobutton "$tempSlave.buttImplantType" "string">> String
+	<<radiobutton "$tempSlave.buttImplantType" "fillable">> Fillable
+	<<radiobutton "$tempSlave.buttImplantType" "advanced fillable">> Advanced Fillable
+	<<radiobutton "$tempSlave.buttImplantType" "hyper fillable">> Hyper Fillable
 	<br><br>
 	''Anus Size:''
 	<<if $tempSlave.anus == 0>>@@.lime;Virgin.@@
diff --git a/src/data/backwardsCompatibility/updateSlaveObject.js b/src/data/backwardsCompatibility/updateSlaveObject.js
index 7b4c32ed072..6c98695e4ce 100644
--- a/src/data/backwardsCompatibility/updateSlaveObject.js
+++ b/src/data/backwardsCompatibility/updateSlaveObject.js
@@ -454,6 +454,19 @@ App.Update.Slave = function(slave) {
 		} else {
 			slave.boobsImplantType = "none";
 		}
+		if (slave.buttImplantType == 1) {
+			slave.buttImplantType = "string";
+		} else if (slave.buttImplant > 7) {
+			slave.buttImplantType = "hyper fillable";
+		} else if (slave.buttImplant >= 5) {
+			slave.buttImplantType = "advanced fillable";
+		} else if (slave.buttImplant >= 3) {
+			slave.buttImplantType = "fillable";
+		} else if (slave.buttImplant > 0) {
+			slave.buttImplantType = "normal";
+		} else {
+			slave.buttImplantType = "none";
+		}
 	}
 
 	if (V.releaseID < 1059) {
diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js
index ece181ed001..8ee275de29d 100644
--- a/src/facilities/nursery/nurseryDatatypeCleanup.js
+++ b/src/facilities/nursery/nurseryDatatypeCleanup.js
@@ -205,10 +205,18 @@ App.Facilities.Nursery.ChildDatatypeCleanup = function(child) {
 		child.lipsImplant = Math.clamp(+child.lipsImplant, 0, 100) || 0;
 		child.voiceImplant = Math.clamp(+child.voiceImplant, -1, 1) || 0;
 		child.boobsImplant = Math.max(+child.boobsImplant, 0) || 0;
-		child.boobsImplantType = Math.clamp(+child.boobsImplantType, 0, 1) || 0;
+		if (child.boobsImplant === 0) {
+			child.boobsImplantType = "none";
+		} else if (child.boobsImplantType === "none") {
+			child.boobsImplantType = "normal";
+		}
 		child.breastMesh = Math.clamp(+child.breastMesh, 0, 1) || 0;
 		child.buttImplant = Math.clamp(+child.buttImplant, 0, 3) || 0;
-		child.buttImplantType = Math.clamp(+child.buttImplantType, 0, 1) || 0;
+		if (child.buttImplant === 0) {
+			child.buttImplantType = "none";
+		} else if (child.buttImplantType === "none") {
+			child.buttImplantType = "normal";
+		}
 		child.earImplant = Math.clamp(+child.earImplant, 0, 1) || 0;
 	}
 
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index 9e8f1917177..fc4e32f5da1 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -7486,13 +7486,13 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 			} else if (child.buttImplant === 2) {
 				r += `${His} big butt implants make ${his} ass jut out curvaceously whatever pose ${he}'s in. `;
 			} else if (child.buttImplant > 17) {
-				r += `${He} has oversized ${child.buttImplantType === 1 ? `engorged string` : `fillable butt`} implants, and it is completely obvious. Whatever ${his} position, ${his} immense ass dominates ${his} surroundings with its unyielding mass. `;
+				r += `${He} has oversized ${child.buttImplantType === "string" ? `engorged string` : `fillable butt`} implants, and it is completely obvious. Whatever ${his} position, ${his} immense ass dominates ${his} surroundings with its unyielding mass. `;
 			} else if (child.buttImplant > 12) {
-				r += `${He} has oversized ${child.buttImplantType === 1 ? `engorged string` : `fillable butt`} implants, and it is completely obvious. Whatever ${his} position, ${his} ass looks like someone shoved a pair of ready to burst weather balloons in ${his} buttcheeks. `;
+				r += `${He} has oversized ${child.buttImplantType === "string" ? `engorged string` : `fillable butt`} implants, and it is completely obvious. Whatever ${his} position, ${his} ass looks like someone shoved a pair of ready to burst weather balloons in ${his} buttcheeks. `;
 			} else if (child.buttImplant > 7) {
-				r += `${He} has oversized ${child.buttImplantType === 1 ? `engorged string` : `fillable butt`} implants, and it is completely obvious. Whatever ${his} position, ${his} ass looks like someone shoved a pair of overinflated beachballs in ${his} buttcheeks. `;
+				r += `${He} has oversized ${child.buttImplantType === "string" ? `engorged string` : `fillable butt`} implants, and it is completely obvious. Whatever ${his} position, ${his} ass looks like someone shoved a pair of overinflated beachballs in ${his} buttcheeks. `;
 			} else if (child.buttImplant > 2) {
-				r += `${He} has ${child.buttImplantType === 1 ? `engorged string` : `fillable butt`} implants, and it shows. Whatever ${his} position, ${his} ass looks just as artificially enticing. `;
+				r += `${He} has ${child.buttImplantType === "string" ? `engorged string` : `fillable butt`} implants, and it shows. Whatever ${his} position, ${his} ass looks just as artificially enticing. `;
 			}
 		}
 
@@ -15507,7 +15507,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.breedingMark = 0,
 	child.butt = jsRandom(0, 3),
 	child.buttImplant = 0,
-	child.buttImplantType = 0,
+	child.buttImplantType = "none",
 	child.buttTat = 0,
 	child.buttplug = "none",
 	child.buttplugAttachment = "none",
@@ -17117,10 +17117,16 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		* * 9+: hyper fillable implants
 		*/
 		this.buttImplant = 0;
-		/** Butt implant type
-		*
-		* 0: normal/none; 1: string */
-		this.buttImplantType = 0;
+		/**
+		 * Implant type
+		 * * "none"
+		 * * "normal"
+		 * * "string"
+		 * * "fillable"
+		 * * "advanced fillable"
+		 * * "hyper fillable"
+		 */
+		this.buttImplantType = "none";
 		/**
 		* butt tattoo
 		*
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 3b696a5e9b6..bd00ec9721f 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -2628,7 +2628,7 @@ LORE: INTERVIEWS
 	<br>''hexall90'' for height growth drugs, incubator organ farm support and detailing, the dispensary cleanup, the joint Eugenics bad end rework with ''SFanon (blank)'', the Hippolyta Academy, and the Security Expansion Mod.
 	<br>''sensei'' for coding in support for commas and an excellent family tree rework.
 	<br>''laziestman'' for sexy spats.
-	<br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary and options rewriting, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''. Cleaned up the sidebar, now maintaining and expanding secEx.
+	<br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary and options rewriting, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''. Cleaned up the sidebar, now maintaining and expanding secEx. Added reminder system and warfare/engineering personal attention targets.
 	<br>''anon'' for extending FCGudder's economy reports to the other facilities.
 	<br>''MilkAnon'' for his contributions to FCTV and the FC world in general.
 	<br>''valen102938'' for dealing with vector art, both creating new art and utilizing unused art.
@@ -2655,9 +2655,9 @@ LORE: INTERVIEWS
 	<br>''ezsh'' for bugfixing and creating a tool to build twineJS and twineCSS for me. Set up a revised SC update process as well. Has contributed massive revisions to the game's structure. Keeps the RA in line.
 	<br>''Sonofrevvan'' for making slaves beg and dance.
 	<br>''skriv'' for fixes and endless code cleaning.
-	<br>''Arkerthan'' for various additions including merging cybermod and vanilla prosthetics. Java sanity check. Limbs and reworked amputation. Eye rework.
+	<br>''Arkerthan'' for various additions including merging cybermod and vanilla prosthetics. Java sanity check. Limbs and reworked amputation. Eye rework. Has begun overhauling various systems including surgery and the building layout.
 	<br>''MouseOfLight'' for overhauling the corporation. V proxy, nuff said. Added better safeguards to the RA.
-	<br>''svornost'': A great asset. Various fixes and tools, including FCHost. Gave players the ability to find that one slave they are looking for. The 'Scope' macro. Optimized porn so beautifully I can't even think.
+	<br>''svornost'': A great asset. Various fixes and tools, including FCHost. Gave players the ability to find that one slave they are looking for. The 'Scope' macro. Optimized porn so beautifully I can't even think. Has continued his reign of optimization.
 	<br>''Trashman1138'' for various tweaks and fixes.
 	<br>''maxd569'' for adding .mp4 and .webm support to custom images.
 	<br>''Anu'' for various fixes.
@@ -2685,7 +2685,7 @@ LORE: INTERVIEWS
 	<br>''DrNoOne'' wrote the bulk slave purchase and persistent summary code.
 	<br>''Mauve'' provided vector art for chastity belts and limp dicks.
 	<br>''Klorpa'' for dozens of new nationalities and boundless new names and nicknames. Also monokinis, middle eastern clothing, overalls and aprons. Also the hearing, taste, and smell overhauls. Added basic support for waterpsorts. Has declared war on bad spelling, grammar and formatting. Added eyebrows too. Dug up ancient abandoned vanilla vignettes and implemented them. Toiled in the depths to extend limb support.
-	<br>''lowercasedonkey'' for various additions, not limited to the budget overhauls. Set up all the tabs too. Gave events dynamic vector art. Hammered the scarring and branding systems into place. Been a real boon writing events and other things as well. Used ezsh's facility framework to enhance slave summaries. Set up a system to recall where slaves were serving.
+	<br>''lowercasedonkey'' for various additions, not limited to the budget overhauls. Set up all the tabs too. Gave events dynamic vector art. Hammered the scarring and branding systems into place. Been a real boon writing events and other things as well. Used ezsh's facility framework to enhance slave summaries. Set up a system to recall where slaves were serving. Striving to master DOM with great gains.
 	<br>''amomynous0'' for bug reports and testing in addition to SFmod unit descriptions.
 	<br>''wepsrd'' for QOL (hormonal balance cheat and lactation adaptation to new menu) fixes.
 
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index cda022f513f..8145bd20b51 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -1005,10 +1005,16 @@ App.Entity.SlaveState = class SlaveState {
 		 * * 9+: hyper fillable implants
 		 */
 		this.buttImplant = 0;
-		/** butt implant type
-		 *
-		 * 0: normal/none; 1: string */
-		this.buttImplantType = 0;
+		/**
+		 * Implant type
+		 * * "none"
+		 * * "normal"
+		 * * "string"
+		 * * "fillable"
+		 * * "advanced fillable"
+		 * * "hyper fillable"
+		 */
+		this.buttImplantType = "none";
 		/**
 		 * butt tattoo
 		 *
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 337b76a4502..448d27fe8c5 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -747,7 +747,11 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		}
 		slave.breastMesh = Math.clamp(+slave.breastMesh, 0, 1) || 0;
 		slave.buttImplant = Math.clamp(+slave.buttImplant, 0, 3) || 0;
-		slave.buttImplantType = Math.clamp(+slave.buttImplantType, 0, 1) || 0;
+		if (slave.buttImplant === 0) {
+			slave.buttImplantType = "none";
+		} else if (slave.buttImplantType === "none") {
+			slave.buttImplantType = "normal";
+		}
 		slave.heightImplant = Math.clamp(+slave.heightImplant, -1, 1) || 0;
 		slave.earImplant = Math.clamp(+slave.earImplant, 0, 1) || 0;
 		slave.shouldersImplant = Math.clamp(+slave.shouldersImplant, -1, 1) || 0;
@@ -1325,7 +1329,11 @@ window.childImplantsDatatypeCleanup = function childImplantsDatatypeCleanup(chil
 	}
 	child.breastMesh = Math.clamp(+child.breastMesh, 0, 1) || 0;
 	child.buttImplant = Math.clamp(+child.buttImplant, 0, 3) || 0;
-	child.buttImplantType = Math.clamp(+child.buttImplantType, 0, 1) || 0;
+	if (child.buttImplant === 0) {
+		child.buttImplantType = "none";
+	} else if (child.buttImplantType === "none") {
+		child.buttImplantType = "normal";
+	}
 	child.earImplant = Math.clamp(+child.earImplant, 0, 1) || 0;
 };
 
@@ -1740,6 +1748,11 @@ window.PCDatatypeCleanup = function PCDatatypeCleanup() {
 	} else {
 		PC.boobsImplantType = "none";
 	}
+	if (PC.buttImplant > 0) {
+		PC.buttImplantType = "normal";
+	} else {
+		PC.buttImplantType = "none";
+	}
 
 	/* None of these are in use */
 	PC.bellyPreg = PC.belly;
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index dc029a6a9f5..d34f5985964 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -874,7 +874,7 @@ window.getSlaveCostArray = function(s) {
 	if (s.boobsImplant > 10000 && s.boobsImplantType === "string") {
 		retval.push({text: "Maintenance cost for oversized string implants", value: 50});
 	}
-	if (s.butt > 10 && s.buttImplantType === 1) {
+	if (s.buttImplant > 5 && s.buttImplantType === "string") {
 		retval.push({text: "Maintenance cost for oversized string implants", value: 50});
 	}
 	if ((s.assignment !== Job.DAIRY || State.variables.dairyRestraintsSetting < 2) && (s.assignment !== Job.ARCADE)) {
diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index a930dfd984c..938f2bda097 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -1765,7 +1765,7 @@ window.generateChild = function(mother, ova, destination) {
 		child.lactation = 0;
 		child.hipsImplant = 0;
 		child.buttImplant = 0;
-		child.buttImplantType = 0;
+		child.buttImplantType = "none";
 		child.lipsImplant = 0;
 		child.lipsPiercing = 0;
 		child.tonguePiercing = 0;
diff --git a/src/js/generateMarketSlave.js b/src/js/generateMarketSlave.js
index a22301df490..a12ffb24da8 100644
--- a/src/js/generateMarketSlave.js
+++ b/src/js/generateMarketSlave.js
@@ -414,6 +414,7 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 				r += `Slaves are given tasteful breast, butt, and lip implants. `;
 				V.activeSlave.buttImplant = 1;
 				V.activeSlave.butt = Math.clamp(V.activeSlave.butt+V.activeSlave.buttImplant, 0, 10);
+				V.activeSlave.buttImplantType = "normal";
 				V.activeSlave.boobsImplant = 600;
 				V.activeSlave.boobs = Math.clamp(V.activeSlave.boobs+V.activeSlave.boobsImplant, 0, 10000);
 				V.activeSlave.boobsImplantType = "normal";
@@ -422,6 +423,7 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 			} else if (V.corpSpecImplants === 2) {
 				r += `Slaves are given absurd breast, butt, and lip implants. `;
 				V.activeSlave.buttImplant = 4;
+				V.activeSlave.buttImplantType = "fillable";
 				V.activeSlave.butt = Math.clamp(V.activeSlave.butt+V.activeSlave.buttImplant, 0, 10);
 				V.activeSlave.boobsImplant = 2400;
 				V.activeSlave.boobsImplantType = "advanced fillable";
@@ -785,6 +787,11 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 				}
 				V.activeSlave.boobs += V.activeSlave.boobsImplant;
 				V.activeSlave.buttImplant = jsRandom(2, 5);
+				if (V.activeSlave.buttImplant > 4) {
+					V.activeSlave.buttImplantType = jsEither(["fillable", "fillable", "normal", "string"]);
+				} else {
+					V.activeSlave.buttImplantType = jsEither(["normal", "normal", "normal", "string"]);
+				}
 				V.activeSlave.butt += V.activeSlave.buttImplant;
 				V.activeSlave.lipsImplant = jsEither([10, 20]);
 				V.activeSlave.lips += V.activeSlave.lipsImplant;
@@ -792,8 +799,10 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 					r += `This one's implants are unusually large; a showcase of what ${pronoun.possessive} home arcology is capable of. `;
 					V.activeSlave.boobsImplant += 200*jsRandom(100, 200);
 					V.activeSlave.boobs += V.activeSlave.boobsImplant;
+					V.activeSlave.boobsImplantType = "hyper fillable";
 					V.activeSlave.buttImplant += jsRandom(7, 12);
 					V.activeSlave.butt += V.activeSlave.buttImplant;
+					V.activeSlave.buttImplantType = "hyper fillable";
 				}
 			}
 			if (V.arcologies[market].FSYouthPreferentialist > 20) {
@@ -1307,9 +1316,15 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 				let slaveGen = jsRandom(2, 8)*200;
 				V.activeSlave.boobs += slaveGen;
 				V.activeSlave.boobsImplant += slaveGen;
+				if (V.activeSlave.boobsImplant > 1000) {
+					V.activeSlave.boobsImplantType = jsEither(["fillable", "fillable", "normal", "string"]);
+				} else {
+					V.activeSlave.boobsImplantType = jsEither(["normal", "normal", "normal", "string"]);
+				}
 				slaveGen = jsRandom(1, 3);
 				V.activeSlave.butt += slaveGen;
 				V.activeSlave.buttImplant += slaveGen;
+				V.activeSlave.buttImplantType = "normal";
 				slaveGen = jsEither([10, 20]);
 				V.activeSlave.lips += slaveGen;
 				V.activeSlave.lipsImplant += slaveGen;
@@ -1544,6 +1559,7 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 			V.activeSlave.heightImplant = 1;
 			V.activeSlave.height += 10;
 			V.activeSlave.buttImplant = (4-V.activeSlave.butt);
+			V.activeSlave.buttImplantType = "normal";
 			V.activeSlave.butt += V.activeSlave.buttImplant;
 			V.activeSlave.boobsImplant = (2000-V.activeSlave.boobs);
 			V.activeSlave.boobs += V.activeSlave.boobsImplant;
diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw
index 4451c719cbb..28c146729dc 100644
--- a/src/npc/acquisition.tw
+++ b/src/npc/acquisition.tw
@@ -359,6 +359,7 @@ The previous owner seems to have left in something of a hurry.
 			<<set $activeSlave.boobsImplantType = "normal">>
 			<<set $activeSlave.buttImplant = random(2,4)>>
 			<<set $activeSlave.butt += $activeSlave.buttImplant>>
+			<<set $activeSlave.buttImplant = "normal">>
 			<<set $activeSlave.lipsImplant = random(1,2)>>
 			<<set $activeSlave.lips = Math.trunc($activeSlave.lipsImplant+2,-3,3)>>
 			<<set $activeSlave.weight = random(-25,-15)>>
diff --git a/src/npc/databases/cheatmodeDatabase.tw b/src/npc/databases/cheatmodeDatabase.tw
index 87f267d653d..ec3c192f3e3 100644
--- a/src/npc/databases/cheatmodeDatabase.tw
+++ b/src/npc/databases/cheatmodeDatabase.tw
@@ -2,7 +2,7 @@
 
 <<set $activeSlave = BaseSlave()>>
 <<set _HS = clone($activeSlave)>>
-<<set _HS.slaveName = "Miss Anne", _HS.birthName = "Lindy Anne", _HS.ID = 990000, _HS.relation = "mother", _HS.relationTarget = 990004, _HS.relationship = 4, _HS.relationshipTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990002, _HS.assignment = "be your Head Girl", _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.ageImplant = 1, setHealth(_HS, 50), _HS.devotion = 100, _HS.height = 175, _HS.eye.origColor = "green", _HS.origHColor = "honey blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.lips = 35, _HS.anus = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.clothes = "a slave gown", _HS.intelligence = 100, _HS.energy = 65, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "'Miss Anne' is tattooed in lovely flowing script over $his collarbone.", _HS.custom.desc = "$He speaks with the rich accent of the Old South.">>
+<<set _HS.slaveName = "Miss Anne", _HS.birthName = "Lindy Anne", _HS.ID = 990000, _HS.relation = "mother", _HS.relationTarget = 990004, _HS.relationship = 4, _HS.relationshipTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990002, _HS.assignment = "be your Head Girl", _HS.birthWeek = random(0,51), _HS.actualAge = 42, _HS.physicalAge = 42, _HS.visualAge = 42, _HS.ovaryAge = 42, _HS.ageImplant = 1, setHealth(_HS, 50), _HS.devotion = 100, _HS.height = 175, _HS.eye.origColor = "green", _HS.origHColor = "honey blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.buttImplantType = "normal", _HS.face = 55, _HS.lips = 35, _HS.anus = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.clothes = "a slave gown", _HS.intelligence = 100, _HS.energy = 65, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "'Miss Anne' is tattooed in lovely flowing script over $his collarbone.", _HS.custom.desc = "$He speaks with the rich accent of the Old South.">>
 <<if $seeDicks != 100>>
 	<<set _HS.genes = "XX", _HS.vagina = 2, _HS.ovaries = 1, _HS.skill.vaginal = 100, _HS.pubertyXX = 1>>
 <<else>>
@@ -13,7 +13,7 @@
 //There are quite a few left; their names are _HS.slaveName,//
 
 <<set _HS = clone($activeSlave)>>
-<<set _HS.slaveName = "Cornelia", _HS.birthName = "Cora", _HS.ID = 990001, _HS.relation = "mother", _HS.relationTarget = 990002, _HS.relationship = 4, _HS.relationshipTarget = 990000, _HS.assignment = "whore", _HS.birthWeek = random(0,51), _HS.actualAge = 36, _HS.physicalAge = 36, _HS.visualAge = 36, _HS.ovaryAge = 36, _HS.ageImplant = 1, setHealth(_HS, 10), _HS.devotion = 100, _HS.muscles = 20, _HS.height = 190, _HS.race = "black", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "dark", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1200, _HS.boobsImplant = 1000, _HS.boobsImplantType = "fillable", _HS.areolae = 2, _HS.butt = 5, _HS.buttImplant = 3, _HS.preg = -2, _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsImplant = 10, _HS.anus = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.clothes = "a slave gown", _HS.energy = 65, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.brand["left hand"] = "a large letter 'S'", _HS.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.">>
+<<set _HS.slaveName = "Cornelia", _HS.birthName = "Cora", _HS.ID = 990001, _HS.relation = "mother", _HS.relationTarget = 990002, _HS.relationship = 4, _HS.relationshipTarget = 990000, _HS.assignment = "whore", _HS.birthWeek = random(0,51), _HS.actualAge = 36, _HS.physicalAge = 36, _HS.visualAge = 36, _HS.ovaryAge = 36, _HS.ageImplant = 1, setHealth(_HS, 10), _HS.devotion = 100, _HS.muscles = 20, _HS.height = 190, _HS.race = "black", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "dark", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1200, _HS.boobsImplant = 1000, _HS.boobsImplantType = "fillable", _HS.areolae = 2, _HS.butt = 5, _HS.buttImplant = 3, _HS.buttImplantType = "fillable", _HS.preg = -2, _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsImplant = 10, _HS.anus = 2, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 100, _HS.clothes = "a slave gown", _HS.energy = 65, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.brand["left hand"] = "a large letter 'S'", _HS.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.">>
 <<if $seeDicks != 0>>
 	<<set _HS.genes = "XY", _HS.vagina = -1, _HS.dick = 3, _HS.balls = 3, _HS.scrotum = 3, _HS.foreskin = 3, _HS.prostate = 1, _HS.pubertyXY = 1>>
 <<else>>
@@ -23,7 +23,7 @@
 //_HS.slaveName,//
 
 <<set _HS = clone($activeSlave)>>
-<<set _HS.slaveName = "Sheba", _HS.birthName = "Shaneequa", _HS.ID = 990002, _HS.relation = "daughter", _HS.relationTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990000, _HS.assignment = "whore", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, setHealth(_HS, 10), _HS.devotion = 12, _HS.height = 175, _HS.race = "black", _HS.pubicHColor = "black", _HS.origSkin = "brown", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1600, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 6, _HS.buttImplant = 2, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.anus = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.skill.whoring = 35, _HS.skill.entertainment = 35, _HS.clothes = "a slave gown", _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.brand["left hand"] = "a large letter 'S'", _HS.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.", _HS.mother = 990001>>
+<<set _HS.slaveName = "Sheba", _HS.birthName = "Shaneequa", _HS.ID = 990002, _HS.relation = "daughter", _HS.relationTarget = 990001, _HS.rivalry = 1, _HS.rivalryTarget = 990000, _HS.assignment = "whore", _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, setHealth(_HS, 10), _HS.devotion = 12, _HS.height = 175, _HS.race = "black", _HS.pubicHColor = "black", _HS.origSkin = "brown", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1600, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 6, _HS.buttImplant = 2, _HS.buttImplantType = "normal", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.anus = 1, _HS.makeup = 1, _HS.nails = 1, _HS.earPiercing = 1, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.skill.whoring = 35, _HS.skill.entertainment = 35, _HS.clothes = "a slave gown", _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.brand["left hand"] = "a large letter 'S'", _HS.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.", _HS.mother = 990001>>
 <<if $seeDicks != 100>>
 	<<set _HS.genes = "XX", _HS.vagina = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.pubertyXX = 1>>
 <<else>>
diff --git a/src/npc/databases/dSlavesDatabase.tw b/src/npc/databases/dSlavesDatabase.tw
index f6ea6c3cb60..3635ebfaf5c 100644
--- a/src/npc/databases/dSlavesDatabase.tw
+++ b/src/npc/databases/dSlavesDatabase.tw
@@ -47,7 +47,7 @@
 /*Corrected eyes, added combat skill, bisexual and odd, tweaked face -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Cuntbitch", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "$He was a slave trader until $he was betrayed by ambitious underlings and sold into enslavement.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 31, _HS.physicalAge = 31, _HS.visualAge = 31, _HS.ovaryAge = 31, setHealth(_HS, 40), _HS.devotion = -100, _HS.muscles = 20, _HS.height = 183, _HS.race = "black", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "black", _HS.hStyle = "long and curly", _HS.boobs = 1400, _HS.boobsImplant = 800, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 2, _HS.boobsTat = "degradation", _HS.butt = 6, _HS.buttImplant = 3, _HS.buttTat = "degradation", _HS.lips = 35, _HS.lipsPiercing = 2, _HS.lipsTat = "degradation", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "degradation", _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.combat = 1, _HS.clothes = "restrictive latex", _HS.shoes = "heels", _HS.intelligence = -20, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has several 'tribal' style tattoos on $his arms from before $his enslavement.", _HS.career = "a slaver">>
+<<set _HS.slaveName = "Cuntbitch", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "$He was a slave trader until $he was betrayed by ambitious underlings and sold into enslavement.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 31, _HS.physicalAge = 31, _HS.visualAge = 31, _HS.ovaryAge = 31, setHealth(_HS, 40), _HS.devotion = -100, _HS.muscles = 20, _HS.height = 183, _HS.race = "black", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "black", _HS.hStyle = "long and curly", _HS.boobs = 1400, _HS.boobsImplant = 800, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 2, _HS.boobsTat = "degradation", _HS.butt = 6, _HS.buttImplant = 3, _HS.buttImplantType = "normal", _HS.buttTat = "degradation", _HS.lips = 35, _HS.lipsPiercing = 2, _HS.lipsTat = "degradation", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "degradation", _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.combat = 1, _HS.clothes = "restrictive latex", _HS.shoes = "heels", _HS.intelligence = -20, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has several 'tribal' style tattoos on $his arms from before $his enslavement.", _HS.career = "a slaver">>
 <<set $heroSlaves.push(_HS)>>
 /*Set birth name to 'unknown', tweaked obedience downwards, corrected tattoo's, added combat skill, clothes and shoes, arrogant -BoneyM*/
 
@@ -147,7 +147,7 @@
 /*Tweaked face upwards, changed eye color, changed health from 20 to 6 -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Belle", _HS.birthName = "Belle", _HS.origin = "Formerly used solely for titfucking, $he quickly became a nymphomaniac after experiencing 'proper' sex.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, setHealth(_HS, 20), _HS.devotion = -75, _HS.height = 155, _HS.boobs = 1200, _HS.boobsImplant = 1000, _HS.boobsImplantType = "normal", _HS.butt = 4, _HS.buttImplant = 3, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.intelligence = -30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.custom.tattoo = "$His breasts are tattooed with $his implant history, showing repeated additions.", _HS.sexualFlaw = "crude">>
+<<set _HS.slaveName = "Belle", _HS.birthName = "Belle", _HS.origin = "Formerly used solely for titfucking, $he quickly became a nymphomaniac after experiencing 'proper' sex.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, setHealth(_HS, 20), _HS.devotion = -75, _HS.height = 155, _HS.boobs = 1200, _HS.boobsImplant = 1000, _HS.boobsImplantType = "normal", _HS.butt = 4, _HS.buttImplant = 3, _HS.buttImplantType = "normal", _HS.vagina = 3, _HS.vaginaLube = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.intelligence = -30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.custom.tattoo = "$His breasts are tattooed with $his implant history, showing repeated additions.", _HS.sexualFlaw = "crude">>
 <<set $heroSlaves.push(_HS)>>
 /*rapey implant addict*/
 /*Is 'rapey' a quirk? Guess so. Added odd. Changed eye color, added nympho, added origin. -BoneyM*/
@@ -282,7 +282,7 @@
 /*Increased health, added origin, fixed customdesc syntax -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Kinsey", _HS.birthName = "Kinsey", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, setHealth(_HS, 20), _HS.devotion = 10, _HS.height = 145, _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.hLength = 15, _HS.hStyle = "short, with the left side shaved", _HS.boobs = 500, _HS.butt = 4, _HS.buttImplant = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 2, _HS.nosePiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 100, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "Kinsey", _HS.birthName = "Kinsey", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, setHealth(_HS, 20), _HS.devotion = 10, _HS.height = 145, _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.hLength = 15, _HS.hStyle = "short, with the left side shaved", _HS.boobs = 500, _HS.butt = 4, _HS.buttImplant = 1, _HS.buttImplantType = "normal", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 2, _HS.nosePiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 100, _HS.attrXX = 80, _HS.attrXY = 40, _HS.fetishKnown = 1>>
 <<set $heroSlaves.push(_HS)>>
 /*Added nose piercing, reduced height, changed fetish to bisexual -BoneyM*/
 
@@ -338,7 +338,7 @@
 /* set nipples to pierced, changed fetish from bisexual to submissive, increased anal skill, dunno how to handle all the techno-implants $his tits etc. have as they don't seem to be size-increasing-focused, lowered health */
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Asha", _HS.birthName = "Asha", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, setHealth(_HS, 20), _HS.devotion = 60, _HS.weight = -20, _HS.nationality = "Russian", _HS.race = "white", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hLength = 170, _HS.hStyle = "floor length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1200, _HS.boobsImplant = 800, _HS.boobsImplantType = "fillable", _HS.nipplesPiercing = 2, _HS.lactation = 1, _HS.lactationDuration = 2, _HS.butt = 6, _HS.buttImplant = 3, _HS.face = 15, _HS.faceImplant = 15, _HS.lips = 35, _HS.lipsImplant = 10, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 2, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has many girly tattoos.", _HS.custom.desc = "$He loves hair play.", _HS.navelPiercing = 1>>
+<<set _HS.slaveName = "Asha", _HS.birthName = "Asha", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, setHealth(_HS, 20), _HS.devotion = 60, _HS.weight = -20, _HS.nationality = "Russian", _HS.race = "white", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hLength = 170, _HS.hStyle = "neat", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1200, _HS.boobsImplant = 800, _HS.boobsImplantType = "fillable", _HS.nipplesPiercing = 2, _HS.lactation = 1, _HS.lactationDuration = 2, _HS.butt = 6, _HS.buttImplant = 3, _HS.buttImplantType = "fillable", _HS.face = 15, _HS.faceImplant = 15, _HS.lips = 35, _HS.lipsImplant = 10, _HS.lipsPiercing = 1, _HS.tonguePiercing = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.earPiercing = 2, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 15, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has many girly tattoos.", _HS.custom.desc = "$He loves hair play.", _HS.navelPiercing = 1>>
 <<set $heroSlaves.push(_HS)>>
 /*Reduced weight, increased face and faceimplant, added piercings, corrected tattoo and customdesc syntax -BoneyM*/
 
@@ -501,7 +501,7 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, setHealth(_HS, 90, 0, 0, 0), _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.rules.living = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, setHealth(_HS, 90, 0, 0, 0), _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.buttImplantType = "normal", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.rules.living = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
@@ -539,7 +539,7 @@
 
 <<if $seePreg != 0>>
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "$He sold $himself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.ovaryAge = 37, setHealth(_HS, 80, 0, 0, 0), _HS.devotion = 100, _HS.weight = 40, _HS.origRace = "white", _HS.override_Race = 1, _HS.race = "latina", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = -100, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.boobsImplantType = "string", _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttTat = "flowers", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 37, _HS.pregType = 1, _HS.pregWeek = 37, _HS.pregKnown = 1, _HS.belly = 13000, _HS.bellyPreg = 13000, _HS.counter.births = 2, _HS.counter.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "$He sold $himself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.ovaryAge = 37, setHealth(_HS, 80, 0, 0, 0), _HS.devotion = 100, _HS.weight = 40, _HS.origRace = "white", _HS.override_Race = 1, _HS.race = "latina", _HS.eye.origColor = "blue", _HS.origHColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = -100, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.boobsImplantType = "string", _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttImplantType = "normal", _HS.buttTat = "flowers", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 37, _HS.pregType = 1, _HS.pregWeek = 37, _HS.pregKnown = 1, _HS.belly = 13000, _HS.bellyPreg = 13000, _HS.counter.births = 2, _HS.counter.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>>
 <<run App.Utils.removeHeroLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 <</if>>
@@ -565,13 +565,13 @@
 /*Added 'bitchy' quirk, reduced height and weight, added customdesc -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Cunt", _HS.birthName = "Cunt", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, setHealth(_HS, -10), _HS.devotion = 10, _HS.race = "white", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.heels = 1, _HS.boobs = 800, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.butt = 4, _HS.buttImplant = 2, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.clitPiercing = 1, _HS.anus = 2, _HS.anusTat = "tribal patterns", _HS.nosePiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 35, _HS.intelligence = -70, _HS.attrXY = 40, _HS.attrKnown = 0, _HS.fetish = "mindbroken", _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "Cunt", _HS.birthName = "Cunt", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, setHealth(_HS, -10), _HS.devotion = 10, _HS.race = "white", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.origSkin = "white", _HS.hLength = 30, _HS.hStyle = "shoulder length", _HS.heels = 1, _HS.boobs = 800, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.butt = 4, _HS.buttImplant = 2, _HS.buttImplantType = "normal", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.clitPiercing = 1, _HS.anus = 2, _HS.anusTat = "tribal patterns", _HS.nosePiercing = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 35, _HS.intelligence = -70, _HS.attrXY = 40, _HS.attrKnown = 0, _HS.fetish = "mindbroken", _HS.fetishKnown = 1>>
 <<set $heroSlaves.push(_HS)>>
 /*mindbroken*/
 /*Tweaked smart piercing setting, corrected piercings -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Fleshlight", _HS.birthName = "Fleshlight", _HS.origin = "Nothing remains of the person $he originally was, either mentally or physically.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, setHealth(_HS, 20), _HS.devotion = 60, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 800, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.butt = 5, _HS.buttImplant = 2, _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsTat = "permanent makeup", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.makeup = 3, _HS.nails = 3, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "mindbroken", _HS.fetishKnown = 1, _HS.custom.desc = "$He has many surgical scars and something seems off about $him.">>
+<<set _HS.slaveName = "Fleshlight", _HS.birthName = "Fleshlight", _HS.origin = "Nothing remains of the person $he originally was, either mentally or physically.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, setHealth(_HS, 20), _HS.devotion = 60, _HS.race = "white", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 800, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.butt = 5, _HS.buttImplant = 2, _HS.buttImplantType = "normal", _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsTat = "permanent makeup", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.anus = 2, _HS.ovaries = 1, _HS.makeup = 3, _HS.nails = 3, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.shoes = "heels", _HS.attrXY = 40, _HS.fetish = "mindbroken", _HS.fetishKnown = 1, _HS.custom.desc = "$He has many surgical scars and something seems off about $him.">>
 <<run App.Medicine.Modification.addScar(_HS, "left breast", "surgical", 2)>>
 <<run App.Medicine.Modification.addScar(_HS, "right breast", "surgical", 2)>>
 <<run App.Medicine.Modification.addScar(_HS, "left buttock", "surgical", 2)>>
diff --git a/src/npc/databases/ddSlavesDatabase.tw b/src/npc/databases/ddSlavesDatabase.tw
index b229897b4ba..b8053408974 100644
--- a/src/npc/databases/ddSlavesDatabase.tw
+++ b/src/npc/databases/ddSlavesDatabase.tw
@@ -18,7 +18,7 @@
 /*Added odd as a stand-in for the multiple personalities -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Lola", _HS.birthName = "Lola", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, setHealth(_HS, 20), _HS.devotion = 35, _HS.height = 175, _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.butt = 4, _HS.buttImplant = 2, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 3, _HS.anus = 3, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.aphrodisiacs = 1, _HS.addict = 10, _HS.intelligence = -30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "Lola", _HS.birthName = "Lola", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, setHealth(_HS, 20), _HS.devotion = 35, _HS.height = 175, _HS.origSkin = "white", _HS.hStyle = "long", _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.butt = 4, _HS.buttImplant = 2, _HS.buttImplantType = "normal", _HS.vagina = -1, _HS.preg = -2, _HS.dick = 3, _HS.anus = 3, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.aphrodisiacs = 1, _HS.addict = 10, _HS.intelligence = -30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "submissive", _HS.fetishKnown = 1>>
 <<set $heroSlaves.push(_HS)>>
 /*Second slave to not need changes -BoneyM*/
 
@@ -34,7 +34,7 @@
 /*Added brand to customtat, added origin -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Sugar", _HS.birthName = "Sugar", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, setHealth(_HS, 20), _HS.height = 175, _HS.eye.origColor = "blue", _HS.origHColor = "platinum blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1400, _HS.boobsImplant = 1200, _HS.boobsImplantType = "fillable", _HS.butt = 5, _HS.buttImplant = 4, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.clothes = "slutty jewelry", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is as dumb as a bag of hammers.">>
+<<set _HS.slaveName = "Sugar", _HS.birthName = "Sugar", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 24, _HS.physicalAge = 24, _HS.visualAge = 24, _HS.ovaryAge = 24, setHealth(_HS, 20), _HS.height = 175, _HS.eye.origColor = "blue", _HS.origHColor = "platinum blonde", _HS.origSkin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 1400, _HS.boobsImplant = 1200, _HS.boobsImplantType = "fillable", _HS.butt = 5, _HS.buttImplant = 4, _HS.buttImplantType = "fillable", _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = -1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 1, _HS.scrotum = 1, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.clothes = "slutty jewelry", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.custom.desc = "$He is as dumb as a bag of hammers.">>
 <<set $heroSlaves.push(_HS)>>
 /*also buttslut*/
 /*Added customdesc, changed eye color -BoneyM*/
@@ -69,7 +69,7 @@
 /*Removed customdesc copied over from previous slave -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Kai", _HS.birthName = "Mordecai", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, setHealth(_HS, 20), _HS.devotion = 60, _HS.height = 191, _HS.nationality = "Russian", _HS.race = "white", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "white", _HS.hLength = 140, _HS.hStyle = "knee length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 2, _HS.lactation = 1, _HS.lactationDuration = 2, _HS.butt = 5, _HS.buttImplant = 3, _HS.lips = 35, _HS.lipsImplant = 10, _HS.lipsPiercing = 1, _HS.vagina = 1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.skill.oral = 35, _HS.skill.anal = 15, _HS.clothes = "restrictive latex", _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has many girly tattoos.", _HS.custom.desc = "$He likes hair play.", _HS.navelPiercing = 1>>
+<<set _HS.slaveName = "Kai", _HS.birthName = "Mordecai", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 23, _HS.physicalAge = 23, _HS.visualAge = 23, _HS.ovaryAge = 23, setHealth(_HS, 20), _HS.devotion = 60, _HS.height = 191, _HS.nationality = "Russian", _HS.race = "white", _HS.origHColor = "black", _HS.pubicHColor = "black", _HS.origSkin = "white", _HS.hLength = 140, _HS.hStyle = "knee length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 2, _HS.lactation = 1, _HS.lactationDuration = 2, _HS.butt = 5, _HS.buttImplant = 3, _HS.buttImplantType = "normal", _HS.lips = 35, _HS.lipsImplant = 10, _HS.lipsPiercing = 1, _HS.vagina = 1, _HS.preg = -2, _HS.dick = 5, _HS.anus = 1, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.skill.oral = 35, _HS.skill.anal = 15, _HS.clothes = "restrictive latex", _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has many girly tattoos.", _HS.custom.desc = "$He likes hair play.", _HS.navelPiercing = 1>>
 <<set $heroSlaves.push(_HS)>>
 /*Increased height and balls size -BoneyM*/
 
@@ -116,7 +116,7 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Mistress Izzy", _HS.birthName = "Isabella", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), setHealth(_HS, 70), _HS.devotion = 100, _HS.eye.origColor = "black", _HS.origHColor = "sparkling and shiny golden red", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "in thick long heavy braids", _HS.waist = -100, _HS.boobs = 9200, _HS.boobsImplant = 6000, _HS.boobsImplantType = "advanced fillable", _HS.nipplesPiercing = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.counter.milk = 3010, _HS.butt = 8, _HS.buttImplant = 1, _HS.buttTat = "bovine patterns", _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsPiercing = 2, _HS.lipsTat = "bovine patterns", _HS.tonguePiercing = 2, _HS.vagina = 2, _HS.vaginaPiercing = 2, _HS.vaginaTat = "bovine patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.anus = 2, _HS.dick = 5, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 2, _HS.anusPiercing = 2, _HS.anusTat = "bovine patterns", _HS.makeup = 2, _HS.nails = 2, _HS.brand["right buttock"] = "SLUT",_HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 35, _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = 20, _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has tattoos of teasing, enticing messages begging others to come taste $his addictive milk.", _HS.custom.desc = "$His musky milky aura drives men and women around $him giggly and dumb with lust.", _HS.horn = "cow horns">>
+<<set _HS.slaveName = "Mistress Izzy", _HS.birthName = "Isabella", _HS.genes = "XY", _HS.ID = _i++, _HS.birthWeek = random(0,51), setHealth(_HS, 70), _HS.devotion = 100, _HS.eye.origColor = "black", _HS.origHColor = "sparkling and shiny golden red", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "in thick long heavy braids", _HS.waist = -100, _HS.boobs = 9200, _HS.boobsImplant = 6000, _HS.boobsImplantType = "advanced fillable", _HS.nipplesPiercing = 2, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.counter.milk = 3010, _HS.butt = 8, _HS.buttImplant = 1, _HS.buttImplantType = "normal", _HS.buttTat = "bovine patterns", _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.lipsPiercing = 2, _HS.lipsTat = "bovine patterns", _HS.tonguePiercing = 2, _HS.vagina = 2, _HS.vaginaPiercing = 2, _HS.vaginaTat = "bovine patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.anus = 2, _HS.dick = 5, _HS.prostate = 1, _HS.balls = 3, _HS.scrotum = 2, _HS.anusPiercing = 2, _HS.anusTat = "bovine patterns", _HS.makeup = 2, _HS.nails = 2, _HS.brand["right buttock"] = "SLUT",_HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 100, _HS.skill.entertainment = 35, _HS.collar = "leather with cowbell", _HS.shoes = "heels", _HS.intelligence = 20, _HS.energy = 100, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has tattoos of teasing, enticing messages begging others to come taste $his addictive milk.", _HS.custom.desc = "$His musky milky aura drives men and women around $him giggly and dumb with lust.", _HS.horn = "cow horns">>
 <<set $heroSlaves.push(_HS)>>
 /*Dropped desc = $He has two cute horns protruding from $his forehead. A few addicted milkslaves of $his own tag along behind $him. */
 
@@ -154,7 +154,7 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He was once a rising Free Cities politician who argued for compulsory female enslavement, but $he became an addict, fell into debt, and was subsequently enslaved.", _HS.birthWeek = random(0,51), _HS.genes = "XY", _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, _HS.ovaryAge = 44, setHealth(_HS, 60), _HS.devotion = 90, _HS.height = 145, _HS.heightImplant = -1, _HS.race = "white", _HS.nationality = "French", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.custom.desc = "Since becoming a slave $he has been turned into a little bimbo.">>
+<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He was once a rising Free Cities politician who argued for compulsory female enslavement, but $he became an addict, fell into debt, and was subsequently enslaved.", _HS.birthWeek = random(0,51), _HS.genes = "XY", _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, _HS.ovaryAge = 44, setHealth(_HS, 60), _HS.devotion = 90, _HS.height = 145, _HS.heightImplant = -1, _HS.race = "white", _HS.nationality = "French", _HS.eye.origColor = "blue", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "spray tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.buttImplantType = "normal", _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.custom.desc = "Since becoming a slave $he has been turned into a little bimbo.">>
 <<set $heroSlaves.push(_HS)>>
 
 <<if $seeExtreme == 1>>
diff --git a/src/npc/databases/dfSlavesDatabase.tw b/src/npc/databases/dfSlavesDatabase.tw
index 21a58a988be..4e1cf89141d 100644
--- a/src/npc/databases/dfSlavesDatabase.tw
+++ b/src/npc/databases/dfSlavesDatabase.tw
@@ -7,7 +7,7 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Strawberry", _HS.birthName = "Strawberry", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 30, _HS.physicalAge = 30, _HS.visualAge = 30, _HS.ovaryAge = 30, setHealth(_HS, 20), _HS.devotion = 40, _HS.height = 175, _HS.eye.origColor = "dark brown", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 400, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 1, _HS.butt = 5, _HS.buttImplant = 2, _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.lipsTat = "Strawberries are tattooed on $his left cheek.", _HS.buttTat = "Strawberries are tattooed on $his right buttock.", _HS.clitPiercing = 2, _HS.counter.birthsTotal = 2>>
+<<set _HS.slaveName = "Strawberry", _HS.birthName = "Strawberry", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 30, _HS.physicalAge = 30, _HS.visualAge = 30, _HS.ovaryAge = 30, setHealth(_HS, 20), _HS.devotion = 40, _HS.height = 175, _HS.eye.origColor = "dark brown", _HS.origHColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hStyle = "long", _HS.pubicHStyle = "waxed", _HS.waist = -55, _HS.boobs = 1000, _HS.boobsImplant = 400, _HS.boobsImplantType = "normal", _HS.nipplesPiercing = 1, _HS.butt = 5, _HS.buttImplant = 2, _HS.buttImplantType = "normal", _HS.lips = 35, _HS.lipsImplant = 10, _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 2, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 35, _HS.skill.anal = 35, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.fetishKnown = 1, _HS.lipsTat = "Strawberries are tattooed on $his left cheek.", _HS.buttTat = "Strawberries are tattooed on $his right buttock.", _HS.clitPiercing = 2, _HS.counter.birthsTotal = 2>>
 /*vibe nips, muscles*/
 <<set $heroSlaves.push(_HS)>>
 
@@ -17,7 +17,7 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Carambola", _HS.birthName = "Carambola", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, setHealth(_HS, 20), _HS.devotion = 90, _HS.height = 175, _HS.eye.origColor = "light green", _HS.origHColor = "dark blonde", _HS.pubicHColor = "dark blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "curly and long, and in pigtails", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 8, _HS.buttImplant = 4, _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.lipsTat = "Carambolas — starfruits — are tattooed on $his face.", _HS.buttTat = "Carambolas — starfruits — are tattooed on $his buttocks.", _HS.clitPiercing = 2, _HS.tonguePiercing = 1, _HS.clothes = "no clothing", _HS.collar = "bell collar", _HS.heels = 1>>
+<<set _HS.slaveName = "Carambola", _HS.birthName = "Carambola", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 25, _HS.physicalAge = 25, _HS.visualAge = 25, _HS.ovaryAge = 25, setHealth(_HS, 20), _HS.devotion = 90, _HS.height = 175, _HS.eye.origColor = "light green", _HS.origHColor = "dark blonde", _HS.pubicHColor = "dark blonde", _HS.override_Skin = 1, _HS.origSkin = "sun tanned", _HS.hLength = 60, _HS.hStyle = "curly and long, and in pigtails", _HS.pubicHStyle = "waxed", _HS.boobs = 650, _HS.nipplesPiercing = 1, _HS.butt = 8, _HS.buttImplant = 4, _HS.buttImplantType = "fillable", _HS.lips = 35, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.preg = -2, _HS.anus = 3, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 100, _HS.attrXY = 40, _HS.fetish = "buttslut", _HS.fetishKnown = 1, _HS.lipsTat = "Carambolas — starfruits — are tattooed on $his face.", _HS.buttTat = "Carambolas — starfruits — are tattooed on $his buttocks.", _HS.clitPiercing = 2, _HS.tonguePiercing = 1, _HS.clothes = "no clothing", _HS.collar = "bell collar", _HS.heels = 1>>
 /*vibe nips, saliva implant lube*/
 <<set $heroSlaves.push(_HS)>>
 
diff --git a/src/npc/rgASDump.tw b/src/npc/rgASDump.tw
index 0df8fade39c..bfd0c1e6fec 100644
--- a/src/npc/rgASDump.tw
+++ b/src/npc/rgASDump.tw
@@ -47,7 +47,7 @@
 	<<elseif $PC.career == "slaver">>
 		<<set $activeSlave.devotion += 10>>
 	<<elseif $PC.career == "medicine">>
-		<<set $activeSlave.boobs += 600, $activeSlave.boobsImplant += 600, $activeSlave.boobsImplant = "normal", $activeSlave.butt += 2, $activeSlave.buttImplant += 2, $activeSlave.lips += 10, $activeSlave.lipsImplant += 10, $activeSlave.waist = -55>>
+		<<set $activeSlave.boobs += 600, $activeSlave.boobsImplant += 600, $activeSlave.boobsImplantType = "normal", $activeSlave.butt += 2, $activeSlave.buttImplant += 2, $activeSlave.buttImplantType = "normal", $activeSlave.lips += 10, $activeSlave.lipsImplant += 10, $activeSlave.waist = -55>>
 	<<elseif $PC.career == "celebrity">>
 		<<if $activeSlave.skill.entertainment < 60>><<set $activeSlave.skill.entertainment += 20>><</if>>
 	<<elseif $PC.career == "servant">>
diff --git a/src/npc/slaveStats.tw b/src/npc/slaveStats.tw
index 2aa43002fb9..d00675a2c70 100644
--- a/src/npc/slaveStats.tw
+++ b/src/npc/slaveStats.tw
@@ -302,7 +302,8 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		Area: $activeSlave.analArea,
 		Count: $activeSlave.counter.anal
 		<br>Butt: $activeSlave.butt,
-		Type: $activeSlave.buttImplantType,
+		Implant Type: $activeSlave.buttImplantType,
+		Implant Volume: $activeSlave.buttImplant,
 		Plug: $activeSlave.buttplug,
 		PlugAttachment: $activeSlave.buttplugAttachment
 		<br>Mpreg: $activeSlave.mpreg
@@ -399,7 +400,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 <div id="Impants_Piercings_Tattoos" class="tabcontent">
 	<div class="content">
 
-		<h2>Impants</h2>
+		<h2>Implants</h2>
 		Height: $activeSlave.heightImplant
 		<br>Ears: $activeSlave.earImplant
 		<br>Face: $activeSlave.faceImplant
diff --git a/src/npc/surgery/surgery.js b/src/npc/surgery/surgery.js
index a2fbc09fd6f..444b25d9c42 100644
--- a/src/npc/surgery/surgery.js
+++ b/src/npc/surgery/surgery.js
@@ -294,6 +294,7 @@ App.Medicine.Surgery.sizingProcedures = function() {
 		const thisArcology = V.arcologies[0];
 		const largeImplantsAvailable = thisArcology.FSTransformationFetishistResearch === 1;
 		const advancedFillableImplantsAvailable = V.ImplantProductionUpgrade === 1;
+		const advancedSurgeryAvailable = V.ImplantProductionUpgrade === 1;
 		const pronouns = getPronouns(slave);
 		const {he, His} = pronouns;
 
@@ -315,7 +316,7 @@ App.Medicine.Surgery.sizingProcedures = function() {
 				if (options.strings) {
 					r.push(helper.installImplants("string", "string", 400));
 				}
-				if (V.surgeryUpgrade === 1) {
+				if (advancedSurgeryAvailable) {
 					r.push(helper.installImplants("large", "normal", 600));
 				}
 				r.push(helper.installImplants("standard", "normal", 400));
@@ -410,7 +411,9 @@ App.Medicine.Surgery.sizingProcedures = function() {
 						}
 					}
 				}
-				r.push(helper.removeImplants());
+				if (slave.indentureRestrictions < 2) {
+					r.push(helper.removeImplants());
+				}
 			}
 			if ((slave.boobs > 300) && (curSize === 0) && slave.indentureRestrictions < 2) {
 				r.push(helper.reduce("reduce", 200));
@@ -450,78 +453,113 @@ App.Medicine.Surgery.sizingProcedures = function() {
 		const thisArcology = V.arcologies[0];
 		const largeImplantsAvailable = thisArcology.FSTransformationFetishistResearch === 1;
 		const advancedFillableImplantsAvailable = V.ImplantProductionUpgrade === 1;
+		const advancedSurgeryAvailable = V.ImplantProductionUpgrade === 1;
 		const pronouns = getPronouns(slave);
 		const {he, His} = pronouns;
 
 		const types = App.Medicine.Keys.Surgery.Target.butt; // shortcuts
 		const helper = new App.Medicine.Surgery.ListHelpers(slave, "butt", types, pronouns, false);
 
-		const areStringsInstalled = slave.buttImplantType === 1;
+		const areStringsInstalled = slave.buttImplantType === "string";
+		const areFillablesInstalled = ["fillable", "advanced fillable", "hyper fillable"].includes(slave.buttImplantType);
 		const curSize = slave.buttImplant;
+		const implantType = slave.buttImplantType;
 
 		let r = [];
 
 		if (options.augmentation) {
 			if (slave.indentureRestrictions >= 2) {
 				r.push(App.Medicine.Surgery.makeImpossibleOption(types.installImplant, "Change butt size", `<em>${His} indenture forbids elective surgery</em>`));
-			} else if (slave.butt > 19) {
+			} else if (slave.butt > 19 && areFillablesInstalled) {
 				r.push(App.Medicine.Surgery.makeImpossibleOption(types.fillUp, "Increase butt", `<em>${His} butt is as large as it can possibly get</em>`));
-			} else if (slave.butt > 7 && !largeImplantsAvailable && thisArcology.FSAssetExpansionist === "unset" && !areStringsInstalled) {
-				r.push(App.Medicine.Surgery.makeImpossibleOption(types.installImplant, "Increase butt", `<em>${His} butt is as large as ${he} can physically support</em>`));
-			} else if (curSize > 7 && !largeImplantsAvailable && !areStringsInstalled) {
-				r.push(App.Medicine.Surgery.makeImpossibleOption(types.installImplant, "Increase butt", `<em>${His} butt implants are filled to capacity</em>`));
 			} else if (curSize === 0) {
-				r.push(helper.installImplants("standard", 0, 1));
 				if (options.strings) {
-					r.push(helper.installImplants("string", 1, 1));
+					r.push(helper.installImplants("string", "string", 1));
+				}
+				if (advancedSurgeryAvailable) {
+					r.push(helper.installImplants("big", "normal", 2));
+				}
+				r.push(helper.installImplants("standard", "normal", 1));
+			} else if (implantType === "normal") {
+				if (curSize >= 5) {
+					r.push(_advFillablePriceModifier(helper.replaceImplants("advanced fillable", "advanced fillable", curSize)));
+				} else if (curSize >= 2) {
+					r.push(helper.replaceImplants("fillable", "fillable", 3));
+				} else if (curSize === 1) {
+					r.push(helper.replaceImplants("bigger", "normal", 2));
+				}
+			} else if (implantType === "hyper fillable") {
+				if (curSize > 19) {
+					r.push(App.Medicine.Surgery.makeImpossibleOption(types.fillUp, "Increase butt", `<em>${His} butt implants are filled to capacity</em>`));
+				} else {
+					r.push(helper.fillUp(1));
+				}
+			} else if (implantType === "advanced fillable") {
+				if (curSize > 7) {
+					r.push(App.Medicine.Surgery.makeImpossibleOption(types.fillUp, "Increase butt", `<em>${His} butt implants are filled to capacity</em>`));
+					if (largeImplantsAvailable) {
+						r.push(helper.replaceImplants("hyper fillable", "hyper fillable", 9));
+					}
+				} else {
+					r.push(helper.fillUp(1));
 				}
-			} else if (curSize === 1 && !areStringsInstalled) {
-				r.push(helper.replaceImplants("bigger", 0, 2));
-			} else if (curSize === 2 && !areStringsInstalled) {
-				r.push(helper.replaceImplants("fillable", 0, 3));
-			} else if (curSize === 4 && !areStringsInstalled) {
-				r.push(App.Medicine.Surgery.makeImpossibleOption(types.fillUp, "Increase size", `<em>${His} implants are filled to capacity</em>`));
-				const advancedFillable = helper.replaceImplants("advanced fillable", 0, 5);
-				if (!advancedFillableImplantsAvailable) {
-					advancedFillable.costs += 10000;
-					advancedFillable.label += " (special order)";
-					advancedFillable.description += " (special order)";
+			} else if (implantType === "fillable") {
+				if (curSize >= 4) {
+					r.push(App.Medicine.Surgery.makeImpossibleOption(types.fillUp, "Increase size", `<em>${His} implants are filled to capacity</em>`));
+					r.push(_advFillablePriceModifier(helper.replaceImplants("advanced fillable", "advanced fillable", 5)));
+				} else {
+					r.push(helper.fillUp(1));
 				}
-				r.push(advancedFillable);
-			} else if (curSize === 8 && !areStringsInstalled && largeImplantsAvailable) {
-				r.push(helper.replaceImplants("hyper fillable", 0, 9));
-			} else if (curSize > 2 && !areStringsInstalled) {
-				r.push(helper.fillUp(1));
 			}
 		}
 
 		if (options.replace && slave.indentureRestrictions < 2 && curSize > 0) {
 			if (!areStringsInstalled && curSize === 1) {
-				r.push(helper.replaceImplants("string", 1, 1));
+				r.push(helper.replaceImplants("string", "string", 1));
 			} else if (areStringsInstalled) {
 				// we have engorged string implants, suggest replacing with normal implants of similar size
 				if (curSize >= 9) {
 					if (largeImplantsAvailable) {
-						r.push(helper.replaceImplants("hyper fillable", 0, curSize));
+						r.push(helper.replaceImplants("hyper fillable", "hyper fillable", curSize));
 					}
 				} else if (curSize >= 5) {
-					r.push(_advFillablePriceModifier(helper.replaceImplants("advanced fillable", 0, curSize)));
+					r.push(_advFillablePriceModifier(helper.replaceImplants("advanced fillable", "advanced fillable", curSize)));
 				} else if (curSize >= 3) {
-					r.push(helper.replaceImplants("fillable", 0, curSize));
+					r.push(helper.replaceImplants("fillable", "fillable", curSize));
 				} else if (curSize === 2) {
-					r.push(helper.replaceImplants("big", 0, curSize));
+					r.push(helper.replaceImplants("big", "normal", curSize));
 				} else {
-					r.push(helper.replaceImplants("standard", 0, curSize));
+					r.push(helper.replaceImplants("standard", "normal", curSize));
 				}
 			}
 		}
 
 		if (options.reduction) {
 			if (curSize > 0) {
-				if (slave.indentureRestrictions < 2) {
-					if (areStringsInstalled && curSize > 1) {
-						r.push(helper.drain(1));
+				if (areStringsInstalled && curSize > 1) {
+					r.push(helper.drain(1));
+				} else if (areFillablesInstalled) {
+					if (implantType === "hyper fillable") {
+						if (curSize <= 5) {
+							r.push(App.Medicine.Surgery.makeImpossibleOption(types.drain, "Remove filler", `<em>${His} implants are empty</em>`));
+						} else {
+							r.push(helper.drain(1));
+						}
+					} else if (implantType === "advanced fillable") {
+						if (curSize <= 3) {
+							r.push(App.Medicine.Surgery.makeImpossibleOption(types.drain, "Remove filler", `<em>${His} implants are empty</em>`));
+						} else {
+							r.push(helper.drain(1));
+						}
+					} else if (implantType === "fillable") {
+						if (curSize <= 1) {
+							r.push(App.Medicine.Surgery.makeImpossibleOption(types.drain, "Remove filler", `<em>${His} implants are empty</em>`));
+						} else {
+							r.push(helper.drain(1));
+						}
 					}
+				}
+				if (slave.indentureRestrictions < 2) {
 					r.push(helper.removeImplants());
 				}
 			}
diff --git a/src/player/electiveSurgery.tw b/src/player/electiveSurgery.tw
index 484a1508953..fec3355f031 100644
--- a/src/player/electiveSurgery.tw
+++ b/src/player/electiveSurgery.tw
@@ -272,7 +272,7 @@ You have @@.orange;$PC.skin skin.@@<<if $PC.skin != $PC.origSkin>> Your original
 <<if $PC.butt >= 5>>
 	<<if $PC.buttImplant >= 1>>
 		You have an @@.orange;enormous, round, hard butt;@@ it is very obviously a pair of huge implants.
-		<br>//You can barely squeeze your rear into your clothes and are starting to get stuck in chairs; any bigger and it might seriously impede your ability to run your arcology.// | [[Have your implants removed|PC Surgery Degradation][$PC.butt -= $PC.buttImplant, $PC.buttImplant = 0, cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttReductionImplant"]]
+		<br>//You can barely squeeze your rear into your clothes and are starting to get stuck in chairs; any bigger and it might seriously impede your ability to run your arcology.// | [[Have your implants removed|PC Surgery Degradation][$PC.butt -= $PC.buttImplant, $PC.buttImplant = 0, $PC.buttImplantType = "none", cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttReductionImplant"]]
 	<<else>>
 		You have an @@.orange;enormous, jiggly butt.@@
 		<br>//You can barely squeeze your rear into your clothes and are starting to get stuck in chairs; any bigger and it might seriously impede your ability to run your arcology.// | [[Have fat removed|PC Surgery Degradation][$PC.butt -= 1, cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttShrinkage"]]
@@ -280,7 +280,7 @@ You have @@.orange;$PC.skin skin.@@<<if $PC.skin != $PC.origSkin>> Your original
 <<elseif $PC.butt >= 4>>
 	<<if $PC.buttImplant >= 1>>
 		You have a @@.orange;huge, round, firm butt;@@ it's easily identifiable as fake.
-		<br>[[Have your implants removed|PC Surgery Degradation][$PC.butt -= $PC.buttImplant, $PC.buttImplant = 0, cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttReductionImplant"]] | [[Get the next size up|PC Surgery Degradation][$PC.butt += 1, $PC.buttImplant += 1, cashX(forceNeg(10000), "PCmedical"), $surgeryType = "buttEnlargementImplant"]]
+		<br>[[Have your implants removed|PC Surgery Degradation][$PC.butt -= $PC.buttImplant, $PC.buttImplant = 0, $PC.buttImplantType = "none", cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttReductionImplant"]] | [[Get the next size up|PC Surgery Degradation][$PC.butt += 1, $PC.buttImplant += 1, cashX(forceNeg(10000), "PCmedical"), $surgeryType = "buttEnlargementImplant"]]
 	<<else>>
 		You have a @@.orange;huge, soft butt.@@
 		<br>[[Add additional fatty tissue|PC Surgery Degradation][$PC.butt += 1, cashX(forceNeg(15000), "PCmedical"), $surgeryType = "buttEnlargement"]] | [[Have fat removed|PC Surgery Degradation][$PC.butt -= 1, cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttShrinkage"]]
@@ -288,14 +288,14 @@ You have @@.orange;$PC.skin skin.@@<<if $PC.skin != $PC.origSkin>> Your original
 <<elseif $PC.butt >= 3>>
 	<<if $PC.buttImplant >= 1>>
 		You have a @@.orange;big firm butt;@@ anyone that feels it can tell it's fake, but at a glance you can't tell otherwise.
-		<br>[[Have your implants removed|PC Surgery Degradation][$PC.butt -= $PC.buttImplant, $PC.buttImplant = 0, cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttReductionImplant"]] | [[Get the next size up|PC Surgery Degradation][$PC.butt += 1, $PC.buttImplant += 1, cashX(forceNeg(10000), "PCmedical"), $surgeryType = "buttEnlargementImplant"]]
+		<br>[[Have your implants removed|PC Surgery Degradation][$PC.butt -= $PC.buttImplant, $PC.buttImplant = 0, $PC.buttImplantType = "none", cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttReductionImplant"]] | [[Get the next size up|PC Surgery Degradation][$PC.butt += 1, $PC.buttImplant += 1, cashX(forceNeg(10000), "PCmedical"), $surgeryType = "buttEnlargementImplant"]]
 	<<else>>
 		You have a @@.orange;big butt.@@
 		<br>[[Add additional fatty tissue|PC Surgery Degradation][$PC.butt += 1, cashX(forceNeg(15000), "PCmedical"), $surgeryType = "buttEnlargement"]] | [[Have fat removed|PC Surgery Degradation][$PC.butt -= 1, cashX(forceNeg(5000), "PCmedical"), $surgeryType = "buttShrinkage"]]
 	<</if>>
 <<else>>
 	You have a @@.orange;cute, but normal butt.@@ At your request, fat could be added until you have a healthy rear; alternatively, a pair of implants could be inserted instead.
-	<br>[[Get a pair of butt implants|PC Surgery Degradation][$PC.butt += 1, $PC.buttImplant += 1, cashX(forceNeg(10000), "PCmedical"), $surgeryType = "buttEnlargementImplant"]] | [[Add additional fatty tissue|PC Surgery Degradation][$PC.butt += 1, cashX(forceNeg(15000), "PCmedical"), $surgeryType = "buttEnlargement"]]
+	<br>[[Get a pair of butt implants|PC Surgery Degradation][$PC.butt += 1, $PC.buttImplant += 1, $PC.buttImplantType = "normal", cashX(forceNeg(10000), "PCmedical"), $surgeryType = "buttEnlargementImplant"]] | [[Add additional fatty tissue|PC Surgery Degradation][$PC.butt += 1, cashX(forceNeg(15000), "PCmedical"), $surgeryType = "buttEnlargement"]]
 <</if>>
 
 <<if $PC.balls != 0 && $PC.scrotum != 0>>
diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js
index 48425e3110d..5c7d0fd4f26 100644
--- a/src/player/js/PlayerState.js
+++ b/src/player/js/PlayerState.js
@@ -772,10 +772,16 @@ App.Entity.PlayerState = class PlayerState {
 		 * * 9+: hyper fillable implants
 		 */
 		this.buttImplant = 0;
-		/** butt implant type
-		 *
-		 * 0: normal/none; 1: string */
-		this.buttImplantType = 0;
+		/**
+		 * Implant type
+		 * * "none"
+		 * * "normal"
+		 * * "string"
+		 * * "fillable"
+		 * * "advanced fillable"
+		 * * "hyper fillable"
+		 */
+		this.buttImplantType = "none";
 		/**
 		 * butt tattoo
 		 *
diff --git a/src/pregmod/eliteSlave.tw b/src/pregmod/eliteSlave.tw
index b4ab4ecee96..ab45de311dc 100644
--- a/src/pregmod/eliteSlave.tw
+++ b/src/pregmod/eliteSlave.tw
@@ -119,20 +119,26 @@ You check to see if any potential breeding slaves are on auction. <<if $eliteAuc
 	<<if $arcologies[0].FSTransformationFetishist > 20>>
 		<<set $activeSlave.boobsImplant = $activeSlave.boobs-200>>
 		<<if $activeSlave.boobsImplant > 10000>>
-			<<set $activeSlave.boobsImplant = "hyper fillable">>
+			<<set $activeSlave.boobsImplantType = "hyper fillable">>
 		<<else>>
-			<<set $activeSlave.boobsImplant = "advanced fillable">>
+			<<set $activeSlave.boobsImplantType = "advanced fillable">>
 		<</if>>
 		<<set $activeSlave.buttImplant = $activeSlave.butt-1>>
+		<<if $activeSlave.buttImplant > 9>>
+			<<set $activeSlave.buttImplantType = "hyper fillable">>
+		<<else>>
+			<<set $activeSlave.buttImplantType = "advanced fillable">>
+		<</if>>
 	<</if>>
 <<elseif $arcologies[0].FSSlimnessEnthusiast > 20>>
 	<<set $activeSlave.boobs = (random(3,5) * 100)>>
 	<<set $activeSlave.butt = random(0,2)>>
 	<<if $arcologies[0].FSTransformationFetishist > 20>>
 		<<set $activeSlave.boobsImplant = $activeSlave.boobs-50>>
-		<<set $activeSlave.boobsImplant = "normal">>
+		<<set $activeSlave.boobsImplantType = "normal">>
 		<<if $activeSlave.butt > 1>>
 			<<set $activeSlave.buttImplant = 1>>
+			<<set $activeSlave.buttImplantType = "normal">>
 		<</if>>
 	<</if>>
 <<else>>
@@ -140,8 +146,9 @@ You check to see if any potential breeding slaves are on auction. <<if $eliteAuc
 	<<set $activeSlave.butt = random(3,7)>>
 	<<if $arcologies[0].FSTransformationFetishist > 20>>
 		<<set $activeSlave.boobsImplant = $activeSlave.boobs-200>>
-		<<set $activeSlave.boobsImplant = "normal">>
+		<<set $activeSlave.boobsImplantType = "normal">>
 		<<set $activeSlave.buttImplant = $activeSlave.butt-1>>
+		<<set $activeSlave.buttImplantType = "normal">>
 	<</if>>
 <</if>>
 <<if $arcologies[0].FSTransformationFetishist > 20>>
diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw
index 15b0bedc3c5..d9a4db1abe4 100644
--- a/src/pregmod/newChildIntro.tw
+++ b/src/pregmod/newChildIntro.tw
@@ -1503,6 +1503,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.trust += 20>>
 		<<set $activeSlave.butt += 8>>
 		<<set $activeSlave.buttImplant += 8>>
+		<<set $activeSlave.buttImplantType = "advanced fillable">>
 		<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 		<<run surgeryDamage($activeSlave, 10)>>
 		<<replace "#result">>
@@ -1515,6 +1516,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.trust += 10>>
 		<<set $activeSlave.butt += 2>>
 		<<set $activeSlave.buttImplant += 2>>
+		<<set $activeSlave.buttImplantType = "fillable">>
 		<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 		<<run surgeryDamage($activeSlave, 10)>>
 		<<replace "#result">>
@@ -1526,7 +1528,7 @@ You slowly strip down, gauging $his reactions to your show, until you are fully
 		<<set $activeSlave.trust += 15>>
 		<<set $activeSlave.butt += 3>>
 		<<set $activeSlave.buttImplant += 3>>
-		<<set $activeSlave.buttImplantType = 1>>
+		<<set $activeSlave.buttImplantType = "string">>
 		<<run cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 		<<run surgeryDamage($activeSlave, 10)>>
 		<<replace "#result">>
diff --git a/src/pregmod/saAgent.tw b/src/pregmod/saAgent.tw
index 8598d98a849..1f8b5723f51 100644
--- a/src/pregmod/saAgent.tw
+++ b/src/pregmod/saAgent.tw
@@ -39,7 +39,7 @@
 		<<set $slaves[$i].boobs += 10>>
 	<</if>>
 <</if>>
-<<if $slaves[$i].buttImplantType == 1>>
+<<if $slaves[$i].buttImplantType == "string">>
 	<<set $slaves[$i].buttImplant += .25, $slaves[$i].butt += .25>>
 	<<if ($slaves[$i].butt > 10)>>
 		<<set $slaves[$i].butt -= 1, $slaves[$i].buttImplant -= 1>>
diff --git a/src/uncategorized/PESS.tw b/src/uncategorized/PESS.tw
index 0258a2e5e66..69b1bcaf75c 100644
--- a/src/uncategorized/PESS.tw
+++ b/src/uncategorized/PESS.tw
@@ -271,11 +271,16 @@ $He sees you examining at $him, and looks back at you submissively, too tired to
 			<<if $slaves[$i].boobs < 400>>
 				<<set $slaves[$i].boobs += 200>>
 				<<set $slaves[$i].boobsImplant += 200>>
-				<<set $slaves[$i].boobsImplantType = "normal">>
+				<<if $slaves[$i].boobsImplantType == "none">>
+					<<set $slaves[$i].boobsImplantType = "normal">>
+				<</if>>
 				<<run cashX(forceNeg(Math.trunc(200*$upgradeMultiplierMedicine)), "slaveSurgery", $activeSlave)>>
 			<<elseif $slaves[$i].butt < 3>>
 				<<set $slaves[$i].butt += 1>>
 				<<set $slaves[$i].buttImplant += 1>>
+				<<if $slaves[$i].buttImplantType == "none">>
+					<<set $slaves[$i].buttImplantType = "normal">>
+				<</if>>
 				<<run cashX(forceNeg(Math.trunc(200*$upgradeMultiplierMedicine)), "slaveSurgery", $activeSlave)>>
 			<<elseif $slaves[$i].face < 95 && $slaves[$i].faceImplant <= 10>>
 				<<set $slaves[$i].face = Math.clamp($slaves[$i].face+20,-100,100)>>
diff --git a/src/uncategorized/REFS.tw b/src/uncategorized/REFS.tw
index d098433061e..806bc5f646f 100644
--- a/src/uncategorized/REFS.tw
+++ b/src/uncategorized/REFS.tw
@@ -129,6 +129,7 @@
 	<<set $activeSlave.boobsImplantType = "normal">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant = 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lips += 10>>
 	<<set $activeSlave.lipsImplant = 10>>
 	<<set $activeSlave.clothes = "conservative clothing">>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 44c9ac2fb3a..1e5a8e0848a 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -109,6 +109,7 @@
 		<<set _meanGirl.boobsImplantType = "normal">>
 		<<set _meanGirl.buttImplant = random(0,2)>>
 		<<set _meanGirl.butt += _meanGirl.buttImplant>>
+		<<set _meanGirl.buttImplantType = "normal">>
 		<<set _meanGirl.butt += 1>>
 		<<set _meanGirl.vagina = random(1,2)>>
 		<<set _meanGirl.anus = 1>>
@@ -3863,7 +3864,7 @@ Your slaves get dressed in a large wardrobe area adjacent to the dormitory, room
 	apparently bigger today than it was yesterday. Pregnancy often causes minor redistributions of weight like this.
 <<elseif $activeSlave.hormoneBalance >= 200>>
 	apparently bigger today than it was yesterday. Intensive female hormone regimens like $hers sometimes cause minor ass expansion.
-<<elseif $activeSlave.buttImplantType == 1>>
+<<elseif $activeSlave.buttImplantType == "string">>
 	apparently a little bigger today than it was yesterday. String implants like $hers steadily grow if not regularly drained.
 <<elseif $geneticMappingUpgrade >= 1 && $activeSlave.geneticQuirks.rearLipedema == 2>>
 	apparently a little bigger today than it was yesterday. $His body is constantly laying fat on $his ass and thighs, so this isn't really unexpected.
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index 7b912179178..592a0da8e3d 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -737,8 +737,8 @@ $researchLab.level > 0>>
 			<<set _individualCosts += 50>>
 		<</if>>
 	<</if>>
-	<<if $slaves[$i].butt > 10>>
-		<<if $slaves[$i].buttImplantType == 1>>
+	<<if $slaves[$i].buttImplant > 5>>
+		<<if $slaves[$i].buttImplantType == "string">>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Maintenance cost for oversized string implants:</i>
 			@@.yellowgreen;<<print cashFormat(50)>>@@
 			<<set _individualCosts += 50>>
diff --git a/src/uncategorized/jeSlaveDispute.tw b/src/uncategorized/jeSlaveDispute.tw
index 82769444321..0803d07d9e0 100644
--- a/src/uncategorized/jeSlaveDispute.tw
+++ b/src/uncategorized/jeSlaveDispute.tw
@@ -128,6 +128,7 @@
 	<<set $activeSlave.boobsImplantType = "normal">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant = 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lips += 10>>
 	<<set $activeSlave.lipsImplant = 10>>
 	<<set $activeSlave.lipsPiercing = 1>>
diff --git a/src/uncategorized/lawCompliance.tw b/src/uncategorized/lawCompliance.tw
index 6a6cb61cac4..7495980d049 100644
--- a/src/uncategorized/lawCompliance.tw
+++ b/src/uncategorized/lawCompliance.tw
@@ -184,6 +184,7 @@
 	<<if $activeSlave.buttImplant > 0>>
 		<<set $activeSlave.butt -= $activeSlave.buttImplant>>
 		<<set $activeSlave.buttImplant = 0>>
+		<<set $activeSlave.buttImplantType = "none">>
 	<</if>>
 	<<if $activeSlave.lipsImplant > 0>>
 		<<set $activeSlave.lips -= $activeSlave.lipsImplant>>
@@ -205,6 +206,7 @@
 	<<if $activeSlave.buttImplant == 0>>
 		<<set $activeSlave.buttImplant = 1>>
 		<<set $activeSlave.butt += $activeSlave.buttImplant>>
+		<<set $activeSlave.buttImplantType = "normal">>
 	<</if>>
 	<<if $activeSlave.lipsImplant == 0>>
 		<<set $activeSlave.lipsImplant = 10>>
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index 243edb9554a..020304cd712 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -934,6 +934,7 @@ The legalities completed, <span class='slave-name'><<= SlaveFullName($activeSlav
 		<<set $activeSlave.lipsImplant = 0>>
 		<<set $activeSlave.butt -= $activeSlave.buttImplant>>
 		<<set $activeSlave.buttImplant = 0>>
+		<<set $activeSlave.buttImplantType = "none">>
 		<<set $activeSlave.lipsPiercing = 0>>
 		<<set $activeSlave.tonguePiercing = 0>>
 		<<set $activeSlave.nosePiercing = 0>>
diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw
index 867c0810a8e..cf9ce0a3770 100644
--- a/src/uncategorized/pRivalryActions.tw
+++ b/src/uncategorized/pRivalryActions.tw
@@ -815,6 +815,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<</if>>
 		<<set $hostage.butt = 7>>
 		<<set $hostage.buttImplant = 4>>
+		<<set $hostage.buttImplantType = "fillable">>
 		<<set $hostage.behavioralFlaw = "none">>
 		<<set $hostage.behavioralQuirk = "insecure">>
 		<<set $hostage.sexualFlaw = "crude">>
diff --git a/src/uncategorized/pRivalryCapture.tw b/src/uncategorized/pRivalryCapture.tw
index 00840571e63..d60af848713 100644
--- a/src/uncategorized/pRivalryCapture.tw
+++ b/src/uncategorized/pRivalryCapture.tw
@@ -196,6 +196,7 @@
 	<<set $activeSlave.lips = 35>>
 	<<set $activeSlave.buttImplant = 1>>
 	<<set $activeSlave.butt += $activeSlave.buttImplant>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.boobs -= 100>>
 	<<set $activeSlave.boobsImplant = either(400, 600, 800)>>
 	<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
@@ -344,6 +345,7 @@
 	<<set $activeSlave.lips = random(25,55)>>
 	<<set $activeSlave.buttImplant = 2>>
 	<<set $activeSlave.butt += $activeSlave.buttImplant>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.boobsImplant = either(600, 800, 1000)>>
 	<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
 	<<set $activeSlave.boobsImplantType = "normal">>
diff --git a/src/uncategorized/prestigiousSlave.tw b/src/uncategorized/prestigiousSlave.tw
index aad7f02c77f..34687388376 100644
--- a/src/uncategorized/prestigiousSlave.tw
+++ b/src/uncategorized/prestigiousSlave.tw
@@ -56,6 +56,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.areolae = 1>>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lips += 10>>
 	<<set $activeSlave.lipsImplant += 10>>
 	<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
@@ -98,6 +99,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.boobsImplantType = "normal">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lips += 10>>
 	<<set $activeSlave.lipsImplant += 10>>
 	<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
@@ -221,6 +223,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.areolae = 2>>
 	<<set $activeSlave.butt += 4>>
 	<<set $activeSlave.buttImplant += 4>>
+	<<set $activeSlave.buttImplantType = "fillable">>
 	<<set $activeSlave.lips = random(75,85)>>
 	<<set $activeSlave.lipsImplant = 3>>
 	<<set $activeSlave.face = 55>>
@@ -272,6 +275,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.boobsImplantType = "normal">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lips += 10>>
 	<<set $activeSlave.lipsImplant += 10>>
 	<<set $activeSlave.face = 55>>
@@ -376,6 +380,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.areolae = 2>>
 	<<set $activeSlave.buttImplant += random(6,8)>>
 	<<set $activeSlave.butt += $activeSlave.buttImplant>>
+	<<set $activeSlave.buttImplantType = "advanced fillable">>
 	<<set $activeSlave.heels = 1>>
 	<<set $activeSlave.voice = 0>>
 	<<set $activeSlave.lips = random(75,85)>>
@@ -537,6 +542,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.areolae = 1>>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lips += 10>>
 	<<set $activeSlave.lipsImplant += 10>>
 	<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
@@ -693,6 +699,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.areolae = 2>>
 	<<set $activeSlave.butt += 4>>
 	<<set $activeSlave.buttImplant += 4>>
+	<<set $activeSlave.buttImplantType = "fillable">>
 	<<set $activeSlave.lips = random(25,55)>>
 	<<set $activeSlave.lipsImplant = 2>>
 	<<set $activeSlave.face = 55>>
@@ -746,6 +753,7 @@ You check to see if any especially prestigious slaves are on auction. <<if $pres
 	<<set $activeSlave.boobsImplantType = "normal">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lips += 10>>
 	<<set $activeSlave.lipsImplant += 10>>
 	<<set $activeSlave.face = 55>>
diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw
index 53a7d91b459..d1eab1b8037 100644
--- a/src/uncategorized/reBoomerang.tw
+++ b/src/uncategorized/reBoomerang.tw
@@ -179,7 +179,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <<case "slimness enthusiast arcology">>
 	"It wa<<s>> horrible." You sold $him to a pleasant Slimness Enthusiast arcology, but somehow $he's acquired grotesque implants. "The arcology got a new owner." $He shudders. "I gue<<ss>> the ni<<c>>e one wa<<s>> weak, and, and the new one i<<s>> changing thing<<s>>. <<Sh>>-<<sh>>e l-like<<s>> t-to ruin the <<s>>lim one<<s>>." It's nothing short of incredible that $he managed to get back here. $He must have sold and traded $himself without hesitation.
 	<<set $activeSlave.boobsImplant = 200*random(2,4), $activeSlave.boobs += $activeSlave.boobsImplant, $activeSlave.boobsImplantType = "normal">>
-	<<set $activeSlave.buttImplant = random(2,4), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10)>>
+	<<set $activeSlave.buttImplant = random(2,4), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10), $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lipsImplant = 10*random(1,3), $activeSlave.lips = Math.clamp($activeSlave.lips+$activeSlave.lipsImplant,0,100)>>
 <<case "asset expansionist arcology">>
 	"It wa<<s>> horrible." You sold $him to an Asset Expansionist arcology; it's nothing short of incredible that $he managed to get back here. $He must have sold and traded $himself without hesitation.
@@ -213,7 +213,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <<case "body purist arcology">>
 	"It wa<<s>> horrible." You sold $him to a pleasant Body Purist arcology, but somehow $he's acquired grotesque implants. "The arcology got a new owner." $He shudders. "I gue<<ss>> the ni<<c>>e one wa<<s>> weak, and, and the new one i<<s>> changing thing<<s>>. <<Sh>>-<<sh>>e l-like<<s>> t-to ruin the pure one<<s>>." It's nothing short of incredible that $he managed to get back here. $He must have sold and traded $himself without hesitation.
 	<<set $activeSlave.boobsImplant = 200*random(2,4), $activeSlave.boobs += $activeSlave.boobsImplant, $activeSlave.boobsImplantType = "normal">>
-	<<set $activeSlave.buttImplant = random(2,4), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10)>>
+	<<set $activeSlave.buttImplant = random(2,4), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10), $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lipsImplant = 10*random(1,3), $activeSlave.lips = Math.clamp($activeSlave.lips+$activeSlave.lipsImplant,0,100)>>
 <<case "D milf staffing" "trainer staffing">>
 	<<setNonlocalPronouns $seeDicks>>
@@ -227,12 +227,12 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <<case "implanting trainer">>
 	"I d-don't want to be c-cut again," $he <<say>>s hollowly. $His buyer planned to use $him as a surgical teaching tool. "E-every time I'm healed, they implant me again. B-bigger."
 	<<set $activeSlave.boobsImplant = 200*random(8,12), $activeSlave.boobs += $activeSlave.boobsImplant, $activeSlave.boobsImplantType = "advanced fillable">>
-	<<set $activeSlave.buttImplant = random(2,4), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10)>>
+	<<set $activeSlave.buttImplant = random(2,4), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10), $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lipsImplant = 10*random(1,3), $activeSlave.lips = Math.clamp($activeSlave.lips+$activeSlave.lipsImplant,0,100)>>
 <<case "purifying trainer">>
 	"It w-wa<<s>>n't like I thought it would be," $he <<say>>s. "The trainer you <<s>>old me to took out my implant<<s>>. B-but then they <<s>>aid my boob<<s>> had to be rebuilt, only with drug<<s>> thi<<s>> time." $He shivers. "The <<s>>ide effect<<s>> are terrible. I can't <<s>>leep. I can barely eat. They had to feed me with a tube."
 	<<set $activeSlave.boobs -= $activeSlave.boobsImplant, $activeSlave.boobsImplant = 0, $activeSlave.boobsImplantType = "none">>
-	<<set $activeSlave.butt -= $activeSlave.buttImplant, $activeSlave.buttImplant = 0>>
+	<<set $activeSlave.butt -= $activeSlave.buttImplant, $activeSlave.buttImplant = 0, $activeSlave.buttImplantType = "none">>
 	<<set $activeSlave.lips -= $activeSlave.lipsImplant, $activeSlave.lipsImplant = 0>>
 	<<set $activeSlave.boobs = Math.clamp($activeSlave.boobs+50*random(20,40),0,10000)>>
 <<case "D startled the witch">>
@@ -260,7 +260,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <<case "clipping trainer">>
 	"All I do i<<s>> <<s>>uck dick<<s>> and get fucked in the butt." You sold $him to a trainer who specializes in clipping and improving overly masculine slaves, and $he's definitely more feminine, if bitterly unhappy. "They're going to <<s>>ell me to a bitch brothel <<s>>oon, I know it. Plea<<s>>e, nobody'<<s>> even <<s>>aid anything to me other than '<<s>>uck my cock' or 'bend over bitch' in week<<s>>."
 	<<set $activeSlave.boobsImplant = 200*random(2,4), $activeSlave.boobs += $activeSlave.boobsImplant, $activeSlave.boobsImplantType = "normal">>
-	<<set $activeSlave.buttImplant = random(1,2), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10)>>
+	<<set $activeSlave.buttImplant = random(1,2), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10), $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lipsImplant = 10*random(1,2), $activeSlave.lips = Math.clamp($activeSlave.lips+$activeSlave.lipsImplant,0,100)>>
 	<<set $activeSlave.waist = Math.clamp($activeSlave.waist+random(20,50),-100,100)>>
 	<<set $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.dick = Math.clamp($activeSlave.dick-random(1,2),0,10)>>
@@ -269,7 +269,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <<case "reassignment trainer">>
 	"I m-mi<<ss>> my dick." You sold $him to a trainer who specializes in gender reassignment, and $he's definitely more feminine, if bitterly unhappy. "P-plea<<s>>e, even if you won't f-fi<<x>> me, plea<<s>>e take me back. I'll b-be a <<s>>e<<x>> <<s>>lave, I ju<<s>>t don't want to be a woman."
 	<<set $activeSlave.boobsImplant = 200*random(2,4), $activeSlave.boobs += $activeSlave.boobsImplant, $activeSlave.boobsImplantType = "normal">>
-	<<set $activeSlave.buttImplant = random(1,2), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10)>>
+	<<set $activeSlave.buttImplant = random(1,2), $activeSlave.butt = Math.clamp($activeSlave.butt+$activeSlave.buttImplant,0,10), $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.lipsImplant = 10*random(1,2), $activeSlave.lips = Math.clamp($activeSlave.lips+$activeSlave.lipsImplant,0,100)>>
 	<<set $activeSlave.waist = Math.clamp($activeSlave.waist+random(20,50),-100,100)>>
 	<<set $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.dick = 0, $activeSlave.vagina = 3>>
diff --git a/src/uncategorized/reFSAcquisition.tw b/src/uncategorized/reFSAcquisition.tw
index 2c9e8ceee22..72127184106 100644
--- a/src/uncategorized/reFSAcquisition.tw
+++ b/src/uncategorized/reFSAcquisition.tw
@@ -251,11 +251,12 @@
 <<set $activeSlave.origin = "$He was sold to you by an anonymous person who wanted $him to suffer.">>
 <<set $activeSlave.boobsImplant += random(4,6)*200>>
 <<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-<<set $activeSlave.boobsImplant = "normal">>
+<<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.nipples = "huge">>
 <<set $activeSlave.areolae = 1>>
 <<set $activeSlave.butt += 1>>
 <<set $activeSlave.buttImplant += 1>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.lips += 10>>
 <<set $activeSlave.lipsImplant += 10>>
 <<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
@@ -293,10 +294,11 @@
 <<set $activeSlave.origin = "$He was sold to you by an anonymous slave breaking group.">>
 <<set $activeSlave.boobsImplant += random(3,6)*200>>
 <<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-<<set $activeSlave.boobsImplant = "normal">>
+<<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.areolae = 1>>
 <<set $activeSlave.butt += 1>>
 <<set $activeSlave.buttImplant += 1>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.lips += 10>>
 <<set $activeSlave.lipsImplant += 10>>
 <<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
@@ -378,7 +380,7 @@
 <<set $activeSlave.origin = "$He offered $himself for voluntary enslavement after realizing $his career was over.">>
 <<set $activeSlave.boobsImplant += random(4,6)*200>>
 <<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-<<set $activeSlave.boobsImplant = "fillable">>
+<<set $activeSlave.boobsImplantType = "fillable">>
 <<set $activeSlave.lips = 60>>
 <<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
 <<set $activeSlave.devotion = random(20,45)>>
@@ -614,9 +616,10 @@
 <<set $activeSlave.geneticQuirks.dwarfism = 2>>
 <<set $activeSlave.boobsImplant += random(4,6)*200>>
 <<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-<<set $activeSlave.boobsImplant = "string">>
+<<set $activeSlave.boobsImplantType = "string">>
 <<set $activeSlave.buttImplant += 2>>
 <<set $activeSlave.butt += $activeSlave.buttImplant>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.hips = 2>>
 <<set $activeSlave.lips = 60>>
 <<set $activeSlave.lipsImplant = 10>>
@@ -684,10 +687,11 @@
 <<set $activeSlave.origin = "You received $him from a surgeon who botched an implant operation on $him and needed to get $him out of sight.">>
 <<set $activeSlave.boobsImplant += random(10,20)*200>>
 <<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-<<set $activeSlave.boobsImplant = "advanced fillable">>
+<<set $activeSlave.boobsImplantType = "advanced fillable">>
 <<set $activeSlave.nipples = "tiny">>
 <<set $activeSlave.areolae = 2>>
 <<set $activeSlave.buttImplant += random(2,4)>>
+<<set $activeSlave.buttImplantType = "fillable">>
 <<set $activeSlave.butt += $activeSlave.buttImplant>>
 <<set $activeSlave.lipsImplant += random(15,25)>>
 <<set $activeSlave.lips += $activeSlave.lipsImplant>>
@@ -714,11 +718,12 @@
 <<set $activeSlave.career = "a trophy wife">>
 <<set $activeSlave.boobsImplant += random(5,10)*200>>
 <<set $activeSlave.boobs += $activeSlave.boobsImplant>>
-<<set $activeSlave.boobsImplant = "fillable">>
+<<set $activeSlave.boobsImplantType = "fillable">>
 <<set $activeSlave.nipples = "tiny">>
 <<set $activeSlave.areolae = 2>>
 <<set $activeSlave.buttImplant += random(2,4)>>
 <<set $activeSlave.butt += $activeSlave.buttImplant>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.lipsImplant += random(15,25)>>
 <<set $activeSlave.lips += $activeSlave.lipsImplant>>
 <<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
diff --git a/src/uncategorized/reMalefactor.tw b/src/uncategorized/reMalefactor.tw
index e43d9aa8e09..8d7215312f2 100644
--- a/src/uncategorized/reMalefactor.tw
+++ b/src/uncategorized/reMalefactor.tw
@@ -155,6 +155,7 @@
 <<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.butt += 2>>
 <<set $activeSlave.buttImplant = 2>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<run setHealth($activeSlave, jsRandom(20, 40))>>
 <<set $activeSlave.sexualFlaw = "hates oral">>
 <<set $activeSlave.behavioralFlaw = "arrogant">>
@@ -191,6 +192,7 @@
 <<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.butt += 1>>
 <<set $activeSlave.buttImplant = 1>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.lips += 10>>
 <<set $activeSlave.lipsImplant = 10>>
 <<set $activeSlave.lipsPiercing = 1>>
diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw
index ac8159c6b66..44961a2c8b5 100644
--- a/src/uncategorized/reRecruit.tw
+++ b/src/uncategorized/reRecruit.tw
@@ -117,6 +117,7 @@
 <<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.butt += 1>>
 <<set $activeSlave.buttImplant = 1>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.lips += 10>>
 <<set $activeSlave.lipsImplant = 10>>
 <<set $activeSlave.lipsPiercing = 1>>
@@ -343,6 +344,7 @@
 <<set $activeSlave.face = 15>>
 <<set $activeSlave.butt = random(4,5)>>
 <<set $activeSlave.buttImplant = 1>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.boobsImplant = 400>>
 <<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.boobs = random(8,10)*100>>
@@ -377,6 +379,7 @@
 <<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.butt = random(2,3)>>
 <<set $activeSlave.buttImplant = 1>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.dick = 1>>
 <<if $activeSlave.foreskin > 0>><<set $activeSlave.foreskin = $activeSlave.dick>><</if>>
 <<if $activeSlave.balls > 0>><<set $activeSlave.scrotum = $activeSlave.balls>><</if>>
@@ -476,6 +479,7 @@
 <<set $activeSlave.boobsImplantType = "normal">>
 <<set $activeSlave.butt += 1>>
 <<set $activeSlave.buttImplant = 1>>
+<<set $activeSlave.buttImplantType = "normal">>
 <<set $activeSlave.lips += 10>>
 <<set $activeSlave.lipsImplant = 10>>
 <<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 0d5a48022c3..62fafa143b7 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -103,7 +103,7 @@
 		<<set $activeSlave.lactation = 0>>
 		<<set $activeSlave.hipsImplant = 0>>
 		<<set $activeSlave.buttImplant = 0>>
-		<<set $activeSlave.buttImplantType = 0>>
+		<<set $activeSlave.buttImplantType = "none">>
 		<<set $activeSlave.lipsImplant = 0>>
 		<<set $activeSlave.lipsPiercing = 0>>
 		<<set $activeSlave.tonguePiercing = 0>>
@@ -322,7 +322,7 @@
 	<<set $activeSlave.boobsImplantType = "string">>
 	<<set $activeSlave.butt = random(7,8)>>
 	<<set $activeSlave.buttImplant = $activeSlave.butt-1>>
-	<<set $activeSlave.buttImplantType = 1>>
+	<<set $activeSlave.buttImplantType = "string">>
 	<<set $activeSlave.lips = random(70,90)>>
 	<<set $activeSlave.lipsImplant = $activeSlave.lips-10>>
 	<<set $activeSlave.nipplesPiercing = 2>>
diff --git a/src/uncategorized/recETS.tw b/src/uncategorized/recETS.tw
index cae5a9fda1d..97b6d90afe6 100644
--- a/src/uncategorized/recETS.tw
+++ b/src/uncategorized/recETS.tw
@@ -127,6 +127,7 @@
 			<<set $activeSlave.boobsImplantType = "normal">>
 			<<set $activeSlave.butt += 1>>
 			<<set $activeSlave.buttImplant = 1>>
+			<<set $activeSlave.buttImplantType = "normal">>
 			<<set $activeSlave.clothes = "nice business attire">>
 			<<run setHealth($activeSlave, jsRandom(20, 40), 0, 0, 0)>>
 			<<set $activeSlave.pubicHStyle = "neat">>
@@ -172,6 +173,7 @@
 			<<set $activeSlave.boobsImplantType = "none">>
 			<<set $activeSlave.butt += 2>>
 			<<set $activeSlave.buttImplant = 0>>
+			<<set $activeSlave.buttImplantType = "none">>
 			<<set $activeSlave.clothes = "conservative clothing">>
 			<<run setHealth($activeSlave, jsRandom(20, 40), 0, 0, 0)>>
 			<<set $activeSlave.pubicHStyle = "bushy">>
@@ -445,6 +447,7 @@
 			<<set $activeSlave.boobsImplantType = "none">>
 			<<set $activeSlave.butt += 2>>
 			<<set $activeSlave.buttImplant = 0>>
+			<<set $activeSlave.buttImplantType = "none">>
 			<<set $activeSlave.clothes = "conservative clothing">>
 			<<run setHealth($activeSlave, jsRandom(20, 40), 0, 0, 0)>>
 			<<set $activeSlave.pubicHStyle = "bushy">>
@@ -573,6 +576,7 @@
 			<<set $activeSlave.boobsImplantType = "normal">>
 			<<set $activeSlave.butt = either(2, 3)>>
 			<<set $activeSlave.buttImplant = 1>>
+			<<set $activeSlave.buttImplantType = "normal">>
 			<<set $activeSlave.preg = -3>>
 			<<set $activeSlave.hStyle = "in twin tails">>
 			<<set $activeSlave.pubicHStyle = "waxed">>
@@ -630,6 +634,7 @@
 				<<set $activeSlave.boobsImplantType = "none">>
 				<<set $activeSlave.butt = either(2, 3)>>
 				<<set $activeSlave.buttImplant = 0>>
+				<<set $activeSlave.buttImplantType = "none">>
 			<</if>>
 			<<set $activeSlave.preg = -1>>
 			<<set $activeSlave.hStyle = "in twin tails">>
@@ -685,6 +690,7 @@
 				<<set $activeSlave.boobsImplantType = "none">>
 				<<set $activeSlave.butt = either(2, 3)>>
 				<<set $activeSlave.buttImplant = 0>>
+				<<set $activeSlave.buttImplantType = "none">>
 			<</if>>
 			<<set $activeSlave.preg = 30>>
 			<<set $activeSlave.pregType = 2>>
@@ -1219,6 +1225,7 @@
 			<<set $activeSlave.boobsImplant = 0>>
 			<<set $activeSlave.boobsImplantType = "none">>
 			<<set $activeSlave.buttImplant = 0>>
+			<<set $activeSlave.buttImplantType = "none">>
 			<<if $familyTesting == 1>>
 			<<else>>
 				<<set $activeSlave.relation = "twin">>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index a457eaa93ac..3733a740186 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -657,6 +657,8 @@
 					deflated,
 				<<elseif $activeSlave.boobsImplant < 2200>>
 					underfilled,
+				<<elseif $activeSlave.boobsImplant > 10000>>
+					massively overfilled,
 				<<else>>
 					massive,
 				<</if>>
@@ -665,6 +667,8 @@
 					deflated,
 				<<elseif $activeSlave.boobsImplant < 800>>
 					underfilled,
+				<<elseif $activeSlave.boobsImplant > 1800>>
+					massively overfilled,
 				<<elseif $activeSlave.boobsImplant > 1000>>
 					massive,
 				<<elseif $activeSlave.boobsImplant >= 800>>
@@ -1055,29 +1059,54 @@
 
 	<<if $activeSlave.buttImplant > 0>>
 		$He has
-		<<if $activeSlave.buttImplant == 1>>
-			moderate
-		<<elseif $activeSlave.buttImplant == 2>>
-			enormous
-		<<elseif $activeSlave.buttImplant > 2>>
-			<<if $activeSlave.buttImplantType == 1>>
+		<<if $activeSlave.buttImplantType == "string">>
+			<<if $activeSlave.buttImplant > 2>>
 				massively engorged
+			<</if>>
+		<<elseif $activeSlave.buttImplantType == "normal">>
+			<<if $activeSlave.buttImplant == 1>>
+				moderate
+			<<elseif $activeSlave.buttImplant == 2>>
+				enormous
 			<<else>>
-				<<if $activeSlave.buttImplant > 8>>
-					hyper
-				<<elseif $activeSlave.buttImplant > 4>>
-					advanced
-				<</if>>
+				absurd
+			<</if>>
+		<<elseif $activeSlave.buttImplantType == "hyper fillable">>
+			<<if $activeSlave.buttImplant > 19>>
+				overfilled
+			<<elseif $activeSlave.buttImplant < 9>>
+				underfilled
+			<<elseif $activeSlave.buttImplant <= 5>>
+				deflated
+			<<else>>
+				absurd
+			<</if>>
+		<<elseif $activeSlave.buttImplantType == "advanced fillable">>
+			<<if $activeSlave.buttImplant > 8>>
+				overfilled
+			<<elseif $activeSlave.buttImplant < 5>>
+				underfilled
+			<<elseif $activeSlave.buttImplant <= 3>>
+				deflated
+			<<else>>
+				massive
+			<</if>>
+		<<elseif $activeSlave.buttImplantType == "fillable">>
+			<<if $activeSlave.buttImplant > 4>>
+				overfilled
+			<<elseif $activeSlave.buttImplant < 3>>
+				underfilled
+			<<elseif $activeSlave.buttImplant == 1>>
+				deflated
+			<<else>>
+				massive
 			<</if>>
 		<</if>>
-		butt
-		<<if $activeSlave.buttImplantType == 1>>
-			string
-		<<elseif $activeSlave.buttImplant >= 3>>
-			fillable
+		<<if $activeSlave.buttImplantType != "normal">>
+			$activeSlave.buttImplantType
 		<</if>>
-		implants.
-		<<if $activeSlave.buttImplant > 3 && $activeSlave.buttImplantType == 1>>
+		butt implants.
+		<<if $activeSlave.buttImplant > 3 && $activeSlave.buttImplantType == "string">>
 			<span class="yellow">Large string based implants are a risk to a slave's health.</span>
 		<</if>>
 	<</if>>
diff --git a/src/uncategorized/resFailure.tw b/src/uncategorized/resFailure.tw
index 1362a04cceb..2f8fea7aadf 100644
--- a/src/uncategorized/resFailure.tw
+++ b/src/uncategorized/resFailure.tw
@@ -239,6 +239,7 @@
 		<<set $activeSlave.height += 10>>
 		<<set $activeSlave.buttImplant = (4-$activeSlave.butt)>>
 		<<set $activeSlave.butt += $activeSlave.buttImplant>>
+		<<set $activeSlave.boobsImplantType = "normal">>
 		<<set $activeSlave.boobsImplant = (2000-$activeSlave.boobs)>>
 		<<set $activeSlave.boobs += $activeSlave.boobsImplant>>
 		<<set $activeSlave.boobsImplantType = "fillable">>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 276fee5e232..80f2249720e 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -3225,7 +3225,7 @@
 	<</if>>
 <</if>>
 
-<<if ($slaves[$i].buttImplantType == 1)>>
+<<if ($slaves[$i].buttImplantType == "string")>>
 	$His string implants absorb fluid @@.lime;slowly swelling $his ass.@@
 	<<set $slaves[$i].buttImplant += .25, $slaves[$i].butt += .25>>
 	<<if ($slaves[$i].butt+$slaves[$i].buttImplant > 10 && $slaves[$i].buttImplant > 1)>>
diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw
index 3c1a7286802..9d8f813a6e1 100644
--- a/src/uncategorized/seCoursing.tw
+++ b/src/uncategorized/seCoursing.tw
@@ -143,6 +143,7 @@ You lead your lurcher $activeLurcher.slaveName out on a leash, naked just like t
 	<<set $activeSlave.boobsImplantType = "normal">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.face = 55>>
 	<<set $activeSlave.faceImplant += 20>>
 	<<set $activeSlave.anus = 1>>
@@ -215,6 +216,7 @@ You lead your lurcher $activeLurcher.slaveName out on a leash, naked just like t
 	<<set $activeSlave.boobsImplantType = "fillable">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.face = Math.clamp($activeSlave.face+20,-100,100)>>
 	<<set $activeSlave.faceImplant += 20>>
 	<<set $activeSlave.anus = 3>>
diff --git a/src/uncategorized/seRaiding.tw b/src/uncategorized/seRaiding.tw
index e5128751d4d..590a995e83d 100644
--- a/src/uncategorized/seRaiding.tw
+++ b/src/uncategorized/seRaiding.tw
@@ -82,6 +82,7 @@ target
 	<<set $activeSlave.boobsImplantType = "normal">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.face = 55>>
 	<<set $activeSlave.faceImplant += 20>>
 	<<set $activeSlave.anus = 1>>
@@ -334,6 +335,7 @@ target
 	<<set $activeSlave.boobsImplantType = "fillable">>
 	<<set $activeSlave.butt += 1>>
 	<<set $activeSlave.buttImplant += 1>>
+	<<set $activeSlave.buttImplantType = "normal">>
 	<<set $activeSlave.face = 55>>
 	<<set $activeSlave.faceImplant += 20>>
 	<<set $activeSlave.anus = 1>>
diff --git a/src/uncategorized/seRecruiterSuccess.tw b/src/uncategorized/seRecruiterSuccess.tw
index ad67ec1c4e0..26670aedb3a 100644
--- a/src/uncategorized/seRecruiterSuccess.tw
+++ b/src/uncategorized/seRecruiterSuccess.tw
@@ -183,10 +183,13 @@
 <<set $activeSlave.boobsImplant = random(0,3)*200>>
 <<set $activeSlave.boobs += $activeSlave.boobsImplant>>
 <<if $activeSlave.boobsImplant > 0>>
-	<<set $activeSlave.boobsImplant = "normal">>
+	<<set $activeSlave.boobsImplantType = "normal">>
 <</if>>
 <<set $activeSlave.buttImplant = random(0,2)>>
 <<set $activeSlave.butt = $activeSlave.buttImplant>>
+<<if $activeSlave.buttImplant > 0>>
+	<<set $activeSlave.buttImplantType = "normal">>
+<</if>>
 <<set $activeSlave.lipsImplant = either(0,10)>>
 <<set $activeSlave.lips += $activeSlave.lipsImplant>>
 <<set $activeSlave.lipsPiercing = random(0,1)>>
diff --git a/src/uncategorized/slaveShelter.tw b/src/uncategorized/slaveShelter.tw
index ac1da272899..718daf2afe0 100644
--- a/src/uncategorized/slaveShelter.tw
+++ b/src/uncategorized/slaveShelter.tw
@@ -169,7 +169,8 @@ You contact the Slave Shelter to review the profile of the slave the Shelter is
 	<<set $shelterSlave.trust = random(-100,-90)>>
 	<<run setHealth($shelterSlave, jsRandom(-60,-40), normalRandInt(10, 3), normalRandInt(20, 3))>>
 	<<set $shelterSlave.boobs = 0>>
-	<<set $shelterSlave.boobsImplant = "none">>
+	<<set $shelterSlave.boobsImplant = 0>>
+	<<set $shelterSlave.boobsImplantType = "none">>
 	<<set $shelterSlave.nipples = "tiny">>
 	<<set $shelterSlave.behavioralFlaw = either("anorexic", "anorexic", "anorexic", "odd")>>
 	<<set $shelterSlave.sexualFlaw = either("apathetic", "neglectful", "self hating")>>
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index e6cd844979c..f8aa30b32a0 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -1264,13 +1264,13 @@ $He's got a
 		<<elseif $activeSlave.buttImplant == 2>>
 			$His big butt implants make $his ass jut out curvaceously whatever pose $he's in.
 		<<elseif $activeSlave.buttImplant > 2>>
-			$He has <<if $activeSlave.buttImplantType == 1>>engorged string<<else>>fillable butt<</if>> implants, and it shows. Whatever $his position, $his ass looks just as artificially enticing.
+			$He has <<if $activeSlave.buttImplantType == "string">>engorged string<<elseif $activeSlave.buttImplantType == "normal">>butt<<else>>fillable butt<</if>> implants, and it shows. Whatever $his position, $his ass looks just as artificially enticing.
 		<<elseif $activeSlave.buttImplant > 7>>
-			$He has oversized <<if $activeSlave.buttImplantType == 1>>engorged string<<else>>fillable butt<</if>> implants, and it is completely obvious. Whatever $his position, $his ass looks like someone shoved a pair of overinflated beachballs in $his buttcheeks.
+			$He has oversized <<if $activeSlave.buttImplantType == "string">>engorged string<<elseif $activeSlave.buttImplantType == "normal">>silicone butt<<else>>fillable butt<</if>> implants, and it is completely obvious. Whatever $his position, $his ass looks like someone shoved a pair of overinflated beachballs in $his buttcheeks.
 		<<elseif $activeSlave.buttImplant > 12>>
-			$He has oversized <<if $activeSlave.buttImplantType == 1>>engorged string<<else>>fillable butt<</if>> implants, and it is completely obvious. Whatever $his position, $his ass looks like someone shoved a pair of ready to burst weather balloons in $his buttcheeks.
+			$He has oversized <<if $activeSlave.buttImplantType == "string">>engorged string<<else>>fillable butt<</if>> implants, and it is completely obvious. Whatever $his position, $his ass looks like someone shoved a pair of ready to burst weather balloons in $his buttcheeks.
 		<<elseif $activeSlave.buttImplant > 17>>
-			$He has oversized <<if $activeSlave.buttImplantType == 1>>engorged string<<else>>fillable butt<</if>> implants, and it is completely obvious. Whatever $his position, $his immense ass dominates $his surroundings with its unyielding mass.
+			$He has oversized <<if $activeSlave.buttImplantType == "string">>engorged string<<else>>fillable butt<</if>> implants, and it is completely obvious. Whatever $his position, $his immense ass dominates $his surroundings with its unyielding mass.
 		<</if>>
 	<</if>>
 	<<if $arcologies[0].FSTransformationFetishist != "unset">>
-- 
GitLab