From c73789846142c34a752abe74873d604c0012d245 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Sat, 1 Jul 2017 17:29:03 -0400
Subject: [PATCH] Bodyswapping, some bug fixes and other things.

---
 slave variables documentation - Pregmod.txt |  10 +-
 src/gui/Encyclopedia/encyclopedia.tw        |  25 ++-
 src/init/storyInit.tw                       |   1 +
 src/pregmod/generateChild.tw                |  16 ++
 src/pregmod/huskSlave.tw                    |  45 +++---
 src/pregmod/huskSlaveSwap.tw                |  21 ++-
 src/pregmod/huskSlaveSwapWorkaround.tw      |  38 +++--
 src/pregmod/seHuskSlaveDelivery.tw          |  14 +-
 src/pregmod/widgets/bodyswapWidgets.tw      | 163 ++++++++++++++++++++
 src/pregmod/widgets/pregmodWidgets.tw       |  82 ----------
 src/uncategorized/storyCaption.tw           |   2 +-
 src/utility/assayWidgets.tw                 |   2 +-
 src/utility/slaveCreationWidgets.tw         |   2 +-
 13 files changed, 273 insertions(+), 148 deletions(-)
 create mode 100644 src/pregmod/widgets/bodyswapWidgets.tw

diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 8a653bd2494..e023146516c 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -660,6 +660,7 @@ accepts string
 eyes:
 
 slave eyesight
+-3 - empty (no descriptions)
 -2 - blind
 -1 - nearsighted
  1 - normal
@@ -1444,7 +1445,7 @@ has navel piercing
 
 cosmeticPiercing:
 
-???????
+??????? This got removed, I think.
 
 shouldersTat:
 
@@ -2064,6 +2065,11 @@ bellySag:
 How saggy her belly is after being distended for too long.
 1+ changes belly description
 
+bellySagPreg:
+
+How saggy her belly is from being too pregnant.
+1+ changes belly description and overides/coincides with bellySag
+
 induce:
 
 Slave will give birth this week.
@@ -2315,7 +2321,7 @@ How to set up your own hero slave.
 
 -The default slave template used:
 
-	<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0}>>
+	<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0}>>
 
 Making your slave; add their name to the following, then go down the documentation adding in your changes.
 -each variable must be seperated from the last by a comma followed by a space
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 05df83dae33..818ee01aa1e 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -1578,14 +1578,13 @@ Money can be expended to directly advance future societies; the spending level c
 &nbsp;&nbsp;&nbsp;&nbsp;Drives an increase in the ratio of slaves to citizens.
 &nbsp;&nbsp;&nbsp;&nbsp;Can be developed to massively improve value of milk and semen.
 &nbsp;&nbsp;&nbsp;&nbsp;Provides demand for production focused asset expansion from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]].
-&nbsp;&nbsp;&nbsp;&nbsp;Mutually exclusive with [[Physical Idealism|Encyclopedia][$encyclopedia = "Physical Idealism"]].
 \
 <<case "Physical Idealism">>\
 ''Physical Idealism'' is a future society model which approves of musculature, height, and health.
 &nbsp;&nbsp;&nbsp;&nbsp;Improves value of slaves with muscles.
 &nbsp;&nbsp;&nbsp;&nbsp;Can be developed to affect goods seen in the slave market.
 &nbsp;&nbsp;&nbsp;&nbsp;Provides demand for muscular slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]].
-&nbsp;&nbsp;&nbsp;&nbsp;Mutually exclusive with [[Pastoralism|Encyclopedia][$encyclopedia = "Pastoralism"]].
+&nbsp;&nbsp;&nbsp;&nbsp;Mutually exclusive with [[Hedonistic Decadence|Encyclopedia][$encyclopedia = "Hedonistic Decadence"]].
 \
 <<case "Chattel Religionism">>\
 ''Chattel Religionism'' is a future society model which approves of appropriate clothing, high devotion, and [[slave marriages|Encyclopedia][$encyclopedia = "Slave Marriages"]]; it disapproves of slutty clothing.
@@ -1820,6 +1819,8 @@ The game starts with 3 basic default rule settings but more can be added and/or
 &nbsp;&nbsp;&nbsp;&nbsp;Approves of pregnant slaves and slaves that have given birth.
 &nbsp;&nbsp;&nbsp;&nbsp;Improves value and beauty of pregnant slaves.
 &nbsp;&nbsp;&nbsp;&nbsp;Can be developed to radically affect goods seen in the slave market.
+&nbsp;&nbsp;&nbsp;&nbsp;Provides demand for lactating slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]].
+&nbsp;&nbsp;&nbsp;&nbsp;Provides demand for young slaves from the corporation.
 &nbsp;&nbsp;&nbsp;&nbsp;Is mutually exclusive with [[Eugenics|Encyclopedia][$encyclopedia to "Eugenics Focus"]].
 \
 <<case "Eugenics Focus">>\
@@ -1827,9 +1828,21 @@ The game starts with 3 basic default rule settings but more can be added and/or
 &nbsp;&nbsp;&nbsp;&nbsp;Disapproves of slave reproduction.
 &nbsp;&nbsp;&nbsp;&nbsp;Drastically reduces value and beauty of pregnant slaves.
 &nbsp;&nbsp;&nbsp;&nbsp;Opens benefits exclusive to the connections made by the powerful individuals attracted to the arcology.
+&nbsp;&nbsp;&nbsp;&nbsp;Provides demand for gelded slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]].
+&nbsp;&nbsp;&nbsp;&nbsp;Provides demand for skilled slaves from the corporation.
+&nbsp;&nbsp;&nbsp;&nbsp;Provides demand for smart slaves from the corporation.
 &nbsp;&nbsp;&nbsp;&nbsp;Is mutually exclusive with [[Repopulation Focus|Encyclopedia][$encyclopedia to "Repopulationism"]].
 It is made up of four to five social classes: Slaves, low class citizens, chosen slaves, elite citizens, and the Societal Elite; a group of individuals with vast connections and wealth attracted by the promises of a society built around them. Low class citizens are encouraged to face testing and join the ranks of the elite, though the cost of failing the test is sterilization; a detail that is not revealed until after the test is complete.
 \
+<<case "Hedonistic Decadence">>\
+''Hedonistic Decadence'' is a future society model. It:
+&nbsp;&nbsp;&nbsp;&nbsp;Approves of overindulgance and luxury.
+&nbsp;&nbsp;&nbsp;&nbsp;Improves value and beauty of heavyset slaves.
+&nbsp;&nbsp;&nbsp;&nbsp;Can be developed to radically affect goods seen in the slave market.
+&nbsp;&nbsp;&nbsp;&nbsp;Provides demand for pampered slaves from [[the corporation|Encyclopedia][$encyclopedia = "The Corporation"]].
+&nbsp;&nbsp;&nbsp;&nbsp;Provides demand for skilled slaves from the corporation.
+&nbsp;&nbsp;&nbsp;&nbsp;Mutually exclusive with [[Physical Idealism|Encyclopedia][$encyclopedia = "Physical Idealism"]].
+\
 <<case "Gender Radicalism research">>\
 Advanced Gender Radicalist societies can fund research to produce modified uteri and ovaries designed to be implanted into male slaves to grant them the ability to become pregnant, thus leaving no gender specific traits remaining.
 \
@@ -1846,6 +1859,9 @@ They include:
 &nbsp;&nbsp;&nbsp;&nbsp;Redistributors to draw fat from oversized assets and settle them aroudn the slave's core for easy removal.
 &nbsp;&nbsp;&nbsp;&nbsp;Atrophiers to shrink non-fat based assets.
 \
+<<case "Hedonistic Decadence research">>\
+Advanced Hedonistic Decadence societies can purchase plans for specialized slave food. Said food is shaped to resemble actual food and flavored accordingly, however, its texture can only be described as gooey or gummy. A plus if that is how the food should be, but a shocker otherwise, given how tantalizing that steak looks after nothing but liquid slave food for so long. Since the food is essentially compacted liquid slave food, it is highly addictive thanks to the, typically, low presence of aohrodisiacs and can easily lead to excessive weight gain as slaves are driven to gorge themselves on it. They'll be happy, at least, as they steadily outgrow their clothes. Alterations to the recipe exist to prevent weight gain for Slimness Enthusiast societies and to cause gastric distress in Degradationist societies.
+\
 <<case "Escort">>\
 ''Escort'' is a [[Player Character Customization|Encyclopedia][$encyclopedia to "PC Customization"]] choice for the career background option. It provides a one time bonus to a slave's entertainment, whoring, and two sexual skills when a new slave is acquired. Furthermore, society will not take lightly to being run by an ex-whore, and you will receive heavy rep losses each week. You can spend your free time selling your body for top-dollar, at the cost of a large amount of reputation.
 \
@@ -1918,6 +1934,9 @@ A facility used to rapdily age children kept within its aging tanks using a comb
 <<case "Organic Mesh Breast Implant">>\
 A specialized organic implant produced from the dispensary designed to be implanted into to a slave's natural breast tissue to maintain a slave's breast shape no matter how big her breasts may grow. An expensive and risky procudure  proportional to the size of the breasts the mesh will be implanted into. Should health become an issue, the slave in surgery may undergo an emergency mastectomy. Furthermore, once implanted, the mesh can not be safely removed from the breast. However, total breast removal will rid the slave of the implant; consider strongly when and if you want to implant the mesh before doing so. They are exceedingly difficult to identify once bound to the breast tissue, and combined with their natural shape, are often overlooked.
 \
+<<case "Ejaculation Boosting Prostate Implant">>\
+An additional prostate implant designed to hyperstimulate one's prostate and store the resulting fluid for release during ejaculation in a specialized resevoir. An easy way to tell if the precum soaked slave you are fucking is sporting this implant is the distinct swelling in her lower belly as she nears release. Due to the sheer amount of prostate fluid released, sperm per volume is greatly reduced, devastaing profits of those looking to sell cum. Remember to keep your slaves well hydrated!
+\
 <<case "FCTV">>\
 Free Cities TV, or ''FCTV'' as it is more commonly called, is a very popular streaming video service. A venture started not long after the first Free Cities were founded, it took advantage of the new lack of regulatory oversight to create and host content that had long been banned in the old world. Under the guidance of 8HGG Inc., FCTV has developed into a popular mixed-mode service, with a variety of live streaming channels as well as a large selection of readystream content ranging from hyper porn to contemporary broadcast series shows.
 <br><br>The successful service is largely supported by a combination of subscription and advertising revenue, and to a smaller extent on-demand content payments. Though still targeted at free citizens--or their slaves in the case of for-slave content--FCTV has become very popular in the old world. A combination of the service's eroticism, extreme content, and high production value has given it extraordinary popularity. Savvy execs at 8HGG and arcology owners alike have realized the benefits of exposing the old world populations to FCTV content, and a carefully-curated selection of content is kept available to old-worlders thanks to revenue from advertisements supporting immigration and voluntary enslavement. The content selection has a glamorized and often romanticized view of slavery, and typically displays common citizens and slaves alike living in opulence beyond the realm of posibility for most old-worlders.
@@ -2060,7 +2079,7 @@ Free Cities culture tomorrow: <<link "The Future of Society">><<set $encyclopedi
 Interviews: <<link "Slave Whore, Arcology K-2">><<set $encyclopedia = "Slave Whore, Arcology K-2">><<goto "Encyclopedia">><</link>> | <<link "Slave Acolyte, Arcology V-7">><<set $encyclopedia = "Slave Acolyte, Arcology V-7">><<goto "Encyclopedia">><</link>><<if $seeExtreme != 0>> | <<link "Public Slave, Arcology A-3">><<set $encyclopedia = "Public Slave, Arcology A-3">><<goto "Encyclopedia">><</link>><</if>> | <<link "Mercenary, Arcology B-2">><<set $encyclopedia = "Mercenary, Arcology B-2">><<goto "Encyclopedia">><</link>> | <<link "Slave Trainer, Arcology D-10">><<set $encyclopedia = "Slave Trainer, Arcology D-10">><<goto "Encyclopedia">><</link>>
 Buying slaves: <<link "Kidnapped Slaves">><<set $encyclopedia = "Kidnapped Slaves">><<goto "Encyclopedia">><</link>> | <<link "Slave Schools">><<set $encyclopedia = "Slave Schools">><<goto "Encyclopedia">><</link>> | <<link "Stables">><<set $encyclopedia = "Stables">><<goto "Encyclopedia">><</link>> | <<link "Household Liquidations">><<set $encyclopedia = "Household Liquidations">><<goto "Encyclopedia">><</link>> | <<link "Direct Sales">><<set $encyclopedia = "Direct Sales">><<goto "Encyclopedia">><</link>> | <<link "Gingering">><<set $encyclopedia = "Gingering">><<goto "Encyclopedia">><</link>>
 Incorporated Mods: <<link "Security Force">><<set $encyclopedia = "Security Force">><<goto "Encyclopedia">><</link>>
-Pregmod: <<link "Repopulationism">><<set $encyclopedia = "Repopulationism">><<goto "Encyclopedia">><</link>>| <<link "Eugenics Focus">><<set $encyclopedia = "Eugenics Focus">><<goto "Encyclopedia">><</link>> | <<link "Gender Radicalism research">><<set $encyclopedia = "Gender Radicalism research">><<goto "Encyclopedia">><</link>> | <<link "Transformation Fetishism research">><<set $encyclopedia = "Transformation Fetishism research">><<goto "Encyclopedia">><</link>> | <<link "Asset Expansionist research">><<set $encyclopedia = "Asset Expansionist research">><<goto "Encyclopedia">><</link>> | <<link "Slimness Enthusiast research">><<set $encyclopedia = "Slimness Enthusiast research">><<goto "Encyclopedia">><</link>> | <<link "Youth Preferentialism Research">><<set $encyclopedia = "Youth Preferentialism Research">><<goto "Encyclopedia">><</link>> | <<link "Eugenics Breeding Proposal">><<set $encyclopedia = "Eugenics Breeding Proposal">><<goto "Encyclopedia">><</link>> | <<link "Escort">><<set $encyclopedia = "Escort">><<goto "Encyclopedia">><</link>> | <<link "Servant">><<set $encyclopedia = "Servant">><<goto "Encyclopedia">><</link>> | <<link "Hyper-pregnancy">><<set $encyclopedia = "Hyper-pregnancy">><<goto "Encyclopedia">><</link>> | <<link "Super Fertility Drugs">><<set $encyclopedia = "Super Fertility Drugs">><<goto "Encyclopedia">><</link>> | <<link "Pregnancy Generator">><<set $encyclopedia = "Pregnancy Generator">><<goto "Encyclopedia">><</link>> | <<link "Childbirth and C-Secs">><<set $encyclopedia = "Childbirth and C-Secs">><<goto "Encyclopedia">><</link>> | <<link "Enemas and Force-Feeding">><<set $encyclopedia = "Enemas and Force-Feeding">><<goto "Encyclopedia">><</link>> | <<link "Belly Implants">><<set $encyclopedia = "Belly Implants">><<goto "Encyclopedia">><</link>> | <<link "Cervix Micropump Filter">><<set $encyclopedia = "Cervix Micropump Filter">><<goto "Encyclopedia">><</link>> | <<link "Organic Mesh Breast Implant">><<set $encyclopedia = "Organic Mesh Breast Implant">><<goto "Encyclopedia">><</link>> | <<link "Player Pregnancy">><<set $encyclopedia = "Player Pregnancy">><<goto "Encyclopedia">><</link>> | <<link "The Flesh Heap">><<set $encyclopedia = "The Flesh Heap">><<goto "Encyclopedia">><</link>> | <<link "Gestation Drugs and Labor Suppressants">><<set $encyclopedia = "Gestation Drugs and Labor Suppressants">><<goto "Encyclopedia">><</link>>
+Pregmod: <<link "Repopulationism">><<set $encyclopedia = "Repopulationism">><<goto "Encyclopedia">><</link>> | <<link "Eugenics Focus">><<set $encyclopedia = "Eugenics Focus">><<goto "Encyclopedia">><</link>> | <<link "Hedonistic Decadence">><<set $encyclopedia = "Hedonistic Decadence">><<goto "Encyclopedia">><</link>> | <<link "Gender Radicalism research">><<set $encyclopedia = "Gender Radicalism research">><<goto "Encyclopedia">><</link>> | <<link "Transformation Fetishism research">><<set $encyclopedia = "Transformation Fetishism research">><<goto "Encyclopedia">><</link>> | <<link "Asset Expansionist research">><<set $encyclopedia = "Asset Expansionist research">><<goto "Encyclopedia">><</link>> | <<link "Slimness Enthusiast research">><<set $encyclopedia = "Slimness Enthusiast research">><<goto "Encyclopedia">><</link>> | <<link "Youth Preferentialism Research">><<set $encyclopedia = "Youth Preferentialism Research">><<goto "Encyclopedia">><</link>> | <<link "Hedonistic Decadence Research">><<set $encyclopedia = "Hedonistic Decadence Research">><<goto "Encyclopedia">><</link>> | <<link "Eugenics Breeding Proposal">><<set $encyclopedia = "Eugenics Breeding Proposal">><<goto "Encyclopedia">><</link>> | <<link "Escort">><<set $encyclopedia = "Escort">><<goto "Encyclopedia">><</link>> | <<link "Servant">><<set $encyclopedia = "Servant">><<goto "Encyclopedia">><</link>> | <<link "Hyper-pregnancy">><<set $encyclopedia = "Hyper-pregnancy">><<goto "Encyclopedia">><</link>> | <<link "Super Fertility Drugs">><<set $encyclopedia = "Super Fertility Drugs">><<goto "Encyclopedia">><</link>> | <<link "Pregnancy Generator">><<set $encyclopedia = "Pregnancy Generator">><<goto "Encyclopedia">><</link>> | <<link "Childbirth and C-Secs">><<set $encyclopedia = "Childbirth and C-Secs">><<goto "Encyclopedia">><</link>> | <<link "Enemas and Force-Feeding">><<set $encyclopedia = "Enemas and Force-Feeding">><<goto "Encyclopedia">><</link>> | <<link "Belly Implants">><<set $encyclopedia = "Belly Implants">><<goto "Encyclopedia">><</link>> | <<link "Cervix Micropump Filter">><<set $encyclopedia = "Cervix Micropump Filter">><<goto "Encyclopedia">><</link>> | <<link "Organic Mesh Breast Implant">><<set $encyclopedia = "Organic Mesh Breast Implant">><<goto "Encyclopedia">><</link>> | <<link "Ejaculation Boosting Prostate Implant">><<set $encyclopedia = "Ejaculation Boosting Prostate Implant">><<goto "Encyclopedia">><</link>> | <<link "Player Pregnancy">><<set $encyclopedia = "Player Pregnancy">><<goto "Encyclopedia">><</link>> | <<link "The Flesh Heap">><<set $encyclopedia = "The Flesh Heap">><<goto "Encyclopedia">><</link>> | <<link "Gestation Drugs and Labor Suppressants">><<set $encyclopedia = "Gestation Drugs and Labor Suppressants">><<goto "Encyclopedia">><</link>>
 Lolimod: <<link "Lolis and the Free Cities">><<set $encyclopedia = "Lolis and the Free Cities">><<goto "Encyclopedia">><</link>> | <<link "Fertility Age">><<set $encyclopedia = "Fertility Age">><<goto "Encyclopedia">><</link>> | <<link "Male Fertility">><<set $encyclopedia = "Male Fertility">><<goto "Encyclopedia">><</link>> | <<link "Precocious Puberty">><<set $encyclopedia = "Precocious Puberty">><<goto "Encyclopedia">><</link>> | <<link "Cradle Robbers">><<set $encyclopedia = "Cradle Robbers">><<goto "Encyclopedia">><</link>> | <<link "The Inucbation Facility">><<set $encyclopedia = "The Inucbation Facility">><<goto "Encyclopedia">><</link>>
 FCTV mod: <<link "FCTV">><<set $encyclopedia = "FCTV">><<goto "Encyclopedia">><</link>> | <<link "FCTVReceiver">><<set $encyclopedia = "FCTVReceiver">><<goto "Encyclopedia">><</link>>
 
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index ea47d846ac5..37f8258eb38 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -1041,6 +1041,7 @@ FertilityAge($fertilityAge)
 <<set $disableLisping = 0>>
 /% End mod section: toggle whether slaves lisp. %/
 <<set $cheatMode = 0>>
+<<set $cheatModeM = 1>>
 <<set $weightAffectsAssets = 1>>
 <<set $curativeSideEffects = 1>>
 
diff --git a/src/pregmod/generateChild.tw b/src/pregmod/generateChild.tw
index 0669c3098ca..ab49c3daa49 100644
--- a/src/pregmod/generateChild.tw
+++ b/src/pregmod/generateChild.tw
@@ -510,6 +510,7 @@
 	<</if>>
 <</if>>
 
+<<set $activeSlave.areolaePiercing = 0>>
 <<set $activeSlave.face = Math.clamp($activeSlave.face, -100, 100)>>
 <<set $activeSlave.corsetPiercing = 0>>
 <<set $activeSlave.boobsImplant = 0>>
@@ -565,6 +566,21 @@
 <<set $activeSlave.devotion = 0>>
 <<set $activeSlave.trust = 0>>
 <<set $activeSlave.weekAcquired = $week>>
+<<if $activeSlave.nationality == "Stateless">>
+	<<if $arcologies[0].FSRomanRevivalist > 90>>
+		<<set $slaves[_i].nationality = "Roman Revivalist">>
+	<<elseif $arcologies[0].FSAztecRevivalist > 90>>
+		<<set $slaves[_i].nationality = "Aztec Revivalist">>
+	<<elseif $arcologies[0].FSEgyptianRevivalist > 90>>
+		<<set $slaves[_i].nationality = "Ancient Egyptian Revivalist">>
+	<<elseif $arcologies[0].FSEdoRevivalist > 90>>
+		<<set $slaves[_i].nationality = "Edo Revivalist">>
+	<<elseif $arcologies[0].FSArabianRevivalist > 90>>
+		<<set $slaves[_i].nationality = "Arabian Revivalist">>
+	<<elseif $arcologies[0].FSChineseRevivalist > 90>>
+		<<set $slaves[_i].nationality = "Ancient Chinese Revivalist">>
+	<</if>>
+<</if>>
 
 <<set $mergeMom = 0>>
 <<set $mergeDad = 0>>
diff --git a/src/pregmod/huskSlave.tw b/src/pregmod/huskSlave.tw
index fcb1a163187..8e42c4fed8a 100644
--- a/src/pregmod/huskSlave.tw
+++ b/src/pregmod/huskSlave.tw
@@ -1,11 +1,8 @@
 :: Husk Slave [nobr] 
- 
-<<set $nextButton = "Back">>\
-<<set $nextLink = "Buy Slaves">>\
-<<set $returnTo = "Buy Slaves">>\
-<<set $showEncyclopedia = 1>><<set $encyclopedia = "Kidnapped Slaves">>\
-<<if ($huskSlave.dick == 0) && ($huskSlave.vagina == -1)>><<set $huskSlave.vagina = 0>><</if>>\
-\
+
+<<set $nextButton = "Back", $nextLink = "Buy Slaves", $returnTo = "Buy Slaves", $showEncyclopedia = 1, $encyclopedia = "Kidnapped Slaves">>
+<<if ($huskSlave.dick == 0) && ($huskSlave.vagina == -1)>><<set $huskSlave.vagina = 0>><</if>>
+
 <<if $huskSlaveOrdered == 0>>You lay out a new order for a braindead slave to be put aside for your use.<<else>>You review your posted husk order.<</if>> Your order requests a body with the following characteristics:
 
 <<set $huskSlave.age = Math.clamp($huskSlave.age, $minimumSlaveAge, $retirementAge-1)>>
@@ -20,9 +17,9 @@ Sex:
 <<elseif $huskSlave.sex == 2>>Male.
 <<elseif $huskSlave.sex == 3>>Futanari.
 <</if>>
-<br>[Female|Husk Slave][$huskSlave.sex = 1]]
-| [Male|Husk Slave][$huskSlave.sex = 2]]
-| [Both|Husk Slave][$huskSlave.sex = 3]]
+<br>[[Female|Husk Slave][$huskSlave.sex = 1]]
+| [[Male|Husk Slave][$huskSlave.sex = 2]]
+| [[Both|Husk Slave][$huskSlave.sex = 3]]
 
 <br><br>
 Nationality:
@@ -30,26 +27,26 @@ Nationality:
 
 <br><br>
 <<textbox "$huskSlave.race" $huskSlave.race "Husk Slave">>
-<br>[White|Husk Slave][$huskSlave.race = "white"]]
-| [Asian|Husk Slave][$huskSlave.race = "asian"]]
-| [Latina|Husk Slave][$huskSlave.race = "latina"]]
-| [Middle Eastern|Husk Slave][$huskSlave.race = "middle eastern"]]
-| [Black|Husk Slave][$huskSlave.race = "black"]]
-| [Semetic|Husk Slave][$huskSlave.race = "semetic"]]
-| [Southern European|Husk Slave][$huskSlave.race = "southern european"]]
-| [Indo-aryan|Husk Slave][$huskSlave.race = "indo-aryan"]]
-| [Amerindian|Husk Slave][$huskSlave.race = "amerindian"]]
-| [Pacific Islander|Husk Slave][$huskSlave.race = "pacific islander"]]
-| [Malay|Husk Slave][$huskSlave.race = "malay"]]
-| [Mixed Race|Husk Slave][$huskSlave.race = "mixed race"]]
+<br>[[White|Husk Slave][$huskSlave.race = "white"]]
+| [[Asian|Husk Slave][$huskSlave.race = "asian"]]
+| [[Latina|Husk Slave][$huskSlave.race = "latina"]]
+| [[Middle Eastern|Husk Slave][$huskSlave.race = "middle eastern"]]
+| [[Black|Husk Slave][$huskSlave.race = "black"]]
+| [[Semetic|Husk Slave][$huskSlave.race = "semetic"]]
+| [[Southern European|Husk Slave][$huskSlave.race = "southern european"]]
+| [[Indo-aryan|Husk Slave][$huskSlave.race = "indo-aryan"]]
+| [[Amerindian|Husk Slave][$huskSlave.race = "amerindian"]]
+| [[Pacific Islander|Husk Slave][$huskSlave.race = "pacific islander"]]
+| [[Malay|Husk Slave][$huskSlave.race = "malay"]]
+| [[Mixed Race|Husk Slave][$huskSlave.race = "mixed race"]]
 
 <br><br>
 Virginity:
 <<if $huskSlave.virgin == 0>>Virgin.
 <<else>>Not important.
 <</if>>
-<br>[Important|Husk Slave][$huskSlave.virgin = 0]]
-| [Not Important|Husk Slave][$huskSlave.virgin = 1]]
+<br>[[Important|Husk Slave][$huskSlave.virgin = 0]]
+| [[Not Important|Husk Slave][$huskSlave.virgin = 1]]
 
 
 <br><br><br>
diff --git a/src/pregmod/huskSlaveSwap.tw b/src/pregmod/huskSlaveSwap.tw
index 33a36826bb5..2631cd590d6 100644
--- a/src/pregmod/huskSlaveSwap.tw
+++ b/src/pregmod/huskSlaveSwap.tw
@@ -1,16 +1,21 @@
 :: Husk Slave Swap [nobr]
 
-<<set $nextButton = "Continue", $nextLink = "AS Dump">>
+<<set $nextButton = "Continue">>
+<<set _oldSlave = clone($swappingSlave)>>
+<<set _m = $slaves.findIndex(function(s) { return s.ID == $swappingSlave.ID; })>>
 
-You strap $oldSlave.slaveName, and the body to which $pronoun will be transferred, into the remote surgery and stand back as it goes to work.
-<<BodySwap $activeSlave $oldSlave>>
-After an honestly impressive procedure, $activeSlave.slaveName is released and allowed to explore her new body.
+You strap $slaves[_m].slaveName, and the body to which $pronoun will be transferred, into the remote surgery and stand back as it goes to work.
+<<BodySwap $slaves[_m] $activeSlave>>
+<<set _gps = $genePool.findIndex(function(s) { return s.ID == $slaves[_m].ID; })>>
+<<set $genePool[_gps].race = $slaves[_m].race, $genePool[_gps].skin = $slaves[_m].skin, $genePool[_gps].markings = $slaves[_m].markings, $genePool[_gps].origEye = $slaves[_m].origEye, $genePool[_gps].origHColor = $slaves[_m].origHColor, $genePool[_gps].face = $slaves[_m].face, $genePool[_gps].pubicHStyle = $slaves[_m].pubicHStyle, $genePool[_gps].underArmHStyle = $slaves[_m].underArmHStyle>> /* special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call the widget using the genePool entries */
+After an honestly impressive procedure, $slaves[_m].slaveName is released and allowed to explore her new body.
 
 <br><br>
 //To do - Reactions//
 
 <br><br>
-<<slaveCost $oldSlave>>
-$oldSlave.slaveName's body was bought by the Flesh Heap for ¤<<print Math.trunc($slaveCost/3)>>
-<<$cash += Math.trunc($slaveCost/3)>>
-<<set $oldSlave = 0>>
\ No newline at end of file
+<<slaveCost _oldSlave>>
+<<set _payout = Math.trunc($slaveCost/3)>>
+$slaves[_m].slaveName's body was bought by the Flesh Heap for ¤_payout.
+<<set $cash += _payout>>
+<<set $activeSlave = 0, $swappingSlave = 0>>
diff --git a/src/pregmod/huskSlaveSwapWorkaround.tw b/src/pregmod/huskSlaveSwapWorkaround.tw
index 8984cce4508..533e6bb6543 100644
--- a/src/pregmod/huskSlaveSwapWorkaround.tw
+++ b/src/pregmod/huskSlaveSwapWorkaround.tw
@@ -1,29 +1,27 @@
-:: husk Slave Swap Workaround
+:: husk Slave Swap Workaround [nobr]
  
 <<set $nextButton = "Abort Operation", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event">>
 
-<<nobr>>
-
-<<set $oldSlave = 0>>
 <<set $swapFailure = random(1,1000)>>
 
 "This operation is neither simple nor is it perfected. There are extreme health risks involved and no guarantee of success. Strap a slave into your remote surgery to consent to the operation. Indentured servants<<if $incubator > 0>> and slaves with reserved children<</if>> not eligible."
-
+<br>
 //Select the slave whose brain will be transferred into the waiting husk.<<if $cyberMod == 1>> Amputated slaves must not be wearing prosthetics.<</if>>//
 
-<</nobr>>
-
+<br><br>
 __Select an eligible slave:__
-<<for _i = 0; _i < $slaves.length; _i++>>\
-	<<if $slaves[_i].PLimb == 0 || ($slaves[_i].PLimb == 1 && $slaves[_i].amp == 1)>>
-	<<if ($slaves[_i].indenture == 0)>>\
-	<<if ($slaves[_i].breedingMark == 0)>>\
-	<<if ($slaves[_i].reservedChildren == 0)>>\
-	<<if ($slaves[_i].ID != $activeSlave.ID)>>\
-		<<print "[[$slaves[_i].slaveName|Husk Slave Swap][$oldSlave = $slaves[" + _i + "]]]">>
-	<</if>>\
-	<</if>>\
-	<</if>>\
-	<</if>>\
-	<</if>>\
-<</for>>\
+<<for _i = 0; _i < $slaves.length; _i++>>
+	<<if isSlaveAvailable($slaves[_i])>>
+	<<if ($slaves[_i].PLimb == 0) || ($slaves[_i].PLimb == 1 && $slaves[_i].amp == 1)>>
+	<<if ($slaves[_i].indenture == -1)>>
+	<<if ($slaves[_i].breedingMark == 0)>>
+	<<if ($slaves[_i].reservedChildren == 0)>>
+	<<if ($slaves[_i].ID != $activeSlave.ID)>>
+		<br><<print "[[$slaves[_i].slaveName|Husk Slave Swap][$swappingSlave = $slaves[" + _i + "]]]">>
+	<</if>>
+	<</if>>
+	<</if>>
+	<</if>>
+	<</if>>
+	<</if>>
+<</for>>
diff --git a/src/pregmod/seHuskSlaveDelivery.tw b/src/pregmod/seHuskSlaveDelivery.tw
index 3cc82f1221f..d245bfa5438 100644
--- a/src/pregmod/seHuskSlaveDelivery.tw
+++ b/src/pregmod/seHuskSlaveDelivery.tw
@@ -13,8 +13,10 @@
 	<<include "Generate XX Slave">>
 <</if>>
 
-<<set $activeSlave.slaveName = "irrelavant">>
+<<set $activeSlave.slaveName = "Doll">>
 <<set $activeSlave.birthName = "">>
+<<set $activeSlave.slaveSurname = "">>
+<<set $activeSlave.surname = "">>
 <<set $activeSlave.nationality = $huskSlave.nationality>>
 <<set $activeSlave.race = $huskSlave.race>>
 <<set $activeSlave.origin = "You reserved a mindless slave like her from the Flesh Heap.">>
@@ -51,6 +53,7 @@
 <<set $activeSlave.fetish = "mindbroken">>
 <<set $activeSlave.fetishStrength = 10>>
 <<set $activeSlave.fetishKnown = 1>>
+<<set $activeSlave.career = "a fuckdoll">>
 <<set $activeSlave.behavioralFlaw = "none">>
 <<set $activeSlave.behavioralQuirk = "none">>
 <<set $activeSlave.sexualFlaw = "none">>
@@ -67,6 +70,7 @@
 <<if $huskSlave.sex == 3>>
 	<<set $activeSlave.dick = 1>>
 	<<set $activeSlave.foreskin = 2>>
+	<<set $activeSlave.prostate = 1>>
 	<<set $activeSlave.balls = 1>>
 	<<if $activeSlave.physicalAge >= $potencyAge>>
 		<<set $activeSlave.pubertyXY = 1>>
@@ -85,8 +89,6 @@
 	<</if>>
 <</if>>
 
-\
-\
 
 A slave came in fitting the description you provided.
 <br>
@@ -95,10 +97,10 @@ A slave came in fitting the description you provided.
 <<set $saleDescription = 1, $applyLaw = 0>><<include "Long Slave Description">><<set $saleDescription = 0>>
 <br><br>
 <span id="result">
-<<if $cash >= $slaveCost>>\
+<<if $cash >= $slaveCost>>
 	[[Accept the offered slave and contact the bodyswap surgeon.|husk Slave Swap Workaround][$cash -= $slaveCost]]
-<<else>>\
+<<else>>
 	//You can't sustain her and thus must return her.//
-<</if>>\
+<</if>>
 </span>
 
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
new file mode 100644
index 00000000000..f2cc21a6fcc
--- /dev/null
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -0,0 +1,163 @@
+:: bodyswap widgets [nobr widget]
+
+/* It's too fucking big jesus christ */
+
+/* first arg is slave getting swapped, second is body she is being swapped to */
+<<widget "BodySwap">>
+<<if $args[1].origin != "You reserved a mindless slave like her from the Flesh Heap.">>
+	<<if $args[0].origBodyOwner == "">>
+		<<set $args[0].origBodyOwner = ("The body of the slave " + $args[1].slaveName)>>
+	<<else>>
+		<<set $args[0].origBodyOwnder = $args[1].origBodyOwner>>
+	<</if>>
+<</if>>
+<<set $args[0].genes = $args[1].genes>>
+<<set $args[0].prestige = $args[1].prestige>>
+<<set $args[0].pornFame = $args[1].pornFame>>
+<<set $args[0].prestigeDesc = $args[1].prestigeDesc>>
+<<set $args[0].physicalAge = $args[1].physicalAge>>
+<<set $args[0].visualAge = $args[1].visualAge>>
+<<set $args[0].ageImplant = $args[1].ageImplant>>
+<<set $args[0].health = $args[1].health>>
+<<set $args[0].minorInjury = $args[1].minorInjury>>
+<<set $args[0].weight = $args[1].weight>>
+<<set $args[0].muscles = $args[1].muscles>>
+<<set $args[0].height = $args[1].height>>
+<<set $args[0].heightImplant = $args[1].heightImplant>>
+<<set $args[0].race = $args[1].race>>
+<<set $args[0].pubicHColor = $args[1].pubicHColor>>
+<<set $args[0].skin = $args[1].skin>>
+<<set $args[0].markings = $args[1].markings>>
+<<set $args[0].eyes = $args[1].eyes>>
+<<set $args[0].origEye = $args[1].origEye>>
+<<set $args[0].eyeColor = $args[1].eyeColor>>
+<<set $args[0].eyeWear = $args[1].eyeWear>>
+<<set $args[0].origHColor = $args[1].origHColor>>
+<<set $args[0].hColor = $args[1].hColor>>
+<<set $args[0].hLength = $args[1].hLength>>
+<<set $args[0].hStyle = $args[1].hStyle>>
+<<set $args[0].pubicHStyle = $args[1].pubicHStyle>>
+<<set $args[0].waist = $args[1].waist>>
+<<set $args[0].corsetPiercing = $args[1].corsetPiercing>>
+<<set $args[0].amp = $args[1].amp>>
+<<set $args[0].PLimb = $args[1].PLimb>>
+<<set $args[0].heels = $args[1].heels>>
+<<set $args[0].voice = $args[1].voice>>
+<<set $args[0].voiceImplat = $args[1].voiceImplant>>
+<<set $args[0].shoulders = $args[1].shoulders>>
+<<set $args[0].shouldersImplant = $args[1].shouldersImplant>>
+<<set $args[0].boobs = $args[1].boobs>>
+<<set $args[0].boobsImplant = $args[1].boobsImplant>>
+<<set $args[0].boobsImplantType = $args[1].boobsImplantType>>
+<<set $args[0].boobShape = $args[1].boobShape>>
+<<set $args[0].nipples = $args[1].nipples>>
+<<set $args[0].nipplesPiercing = $args[1].nipplesPiercing>>
+<<set $args[0].areolae = $args[1].areolae>>
+<<set $args[0].areolaePiercing = $args[1].areolaePiercing>>
+<<set $args[0].boobsTat = $args[1].boobsTat>>
+<<set $args[0].lactation = $args[1].lactation>>
+<<set $args[0].lactationAdaptation = $args[1].lactationAdaptation>>
+<<set $args[0].hips = $args[1].hips>>
+<<set $args[0].hipsImplant = $args[1].hipsImplant>>
+<<set $args[0].butt = $args[1].butt>>
+<<set $args[0].buttImplant = $args[1].buttImplant>>
+<<set $args[0].buttImplantType = $args[1].buttImplantType>>
+<<set $args[0].buttTat = $args[1].buttTat>>
+<<set $args[0].face = $args[1].face>>
+<<set $args[0].faceImplant = $args[1].faceImplant>>
+<<set $args[0].faceShape = $args[1].faceShape>>
+<<set $args[0].lips = $args[1].lips>>
+<<set $args[0].lipsImplants = $args[1].lipsImplants>>
+<<set $args[0].lipsPiercing = $args[1].lipsPiercing>>
+<<set $args[0].lipsTat = $args[1].lipsTat>>
+<<set $args[0].teeth = $args[1].teeth>>
+<<set $args[0].tonguePiercing = $args[1].tonguePiercing>>
+<<set $args[0].vagina = $args[1].vagina>>
+<<set $args[0].vaginaLube = $args[1].vaginaLube>>
+<<set $args[0].vaginaPiercing = $args[1].vaginaPiercing>>
+<<set $args[0].vaginaTat = $args[1].vaginaTat>>
+<<set $args[0].preg = $args[1].preg>>
+<<set $args[0].pregSource = $args[1].pregSource>>
+<<set $args[0].pregType = $args[1].pregType>>
+<<set $args[0].labor = $args[1].labor>>
+<<set $args[0].csec = $args[1].csec>>
+<<set $args[0].bellyAccessory = $args[1].bellyAccessory>>
+<<set $args[0].labia = $args[1].labia>>
+<<set $args[0].clit = $args[1].clit>>
+<<set $args[0].clitPiercing = $args[1].clitPiercing>>
+<<set $args[0].clitSetting = $args[1].clitSetting>>
+<<set $args[0].dick = $args[1].dick>>
+<<set $args[0].foreskin = $args[1].foreskin>>
+<<set $args[0].anus = $args[1].anus>>
+<<set $args[0].analArea = $args[1].analArea>>
+<<set $args[0].dickPiercing = $args[1].dickPiercing>>
+<<set $args[0].dickTat = $args[1].dickTat>>
+<<set $args[0].prostate = $args[1].prostate>>
+<<set $args[0].balls = $args[1].balls>>
+<<set $args[0].scrotum = $args[1].scrotum>>
+<<set $args[0].ovaries = $args[1].ovaries>>
+<<set $args[0].anusPiercing = $args[1].anusPiercing>>
+<<set $args[0].anusTat = $args[1].anusTat>>
+<<set $args[0].makeup = $args[1].makeup>>
+<<set $args[0].nails = $args[1].nails>>
+<<set $args[0].brand = $args[1].brand>>
+<<set $args[0].brandLocation = $args[1].brandLocation>>
+<<set $args[0].earsPiercing = $args[1].earsPiercing>>
+<<set $args[0].nosePiercing = $args[1].nosePiercing>>
+<<set $args[0].eyebrowPiercing = $args[1].eyebrowPiercing>>
+<<set $args[0].navelPiercing = $args[1].navelPiercing>>
+<<set $args[0].shouldersTat = $args[1].shouldersTat>>
+<<set $args[0].armsTat = $args[1].armsTat>>
+<<set $args[0].legsTat = $args[1].legsTat>>
+<<set $args[0].backTat = $args[1].backTat>>
+<<set $args[0].stampTat = $args[1].stampTat>>
+<<set $args[0].diet = $args[1].diet>>
+<<set $args[0].dietCum = $args[1].dietCum>>
+<<set $args[0].dietMilk = $args[1].dietMilk>>
+<<set $args[0].hormones = $args[1].hormones>>
+<<set $args[0].drugs = $args[1].drugs>>
+<<set $args[0].aphrodisiacs = $args[1].aphrodisiacs>>
+<<set $args[0].curatives = $args[1].curatives>>
+<<set $args[0].chem = $args[1].chem>>
+<<set $args[0].clothes = $args[1].clothes>>
+<<set $args[0].collar = $args[1].collar>>
+<<set $args[0].shoes = $args[1].shoes>>
+<<set $args[0].vaginalChastity = $args[1].vaginalChastity>>
+<<set $args[0].dickAccessory = $args[1].dickAccessory>>
+<<set $args[0].buttplug = $args[1].buttplug>>
+<<set $args[0].customTat = $args[1].customTat>>
+<<set $args[0].bellyTat = $args[1].bellyTat>>
+<<set $args[0].bellySag = $args[1].bellySag>>
+<<set $args[0].bellySagPreg = $args[1].bellySagPreg>>
+<<set $args[0].induce = $args[1].induce>>
+<<set $args[0].mpreg = $args[1].mpreg>>
+<<set $args[0].inflation = 0, $args[0].inflationType = "none", $args[0].inflationMethod = 0, $args[0].milkSource = 0, $args[0].cumSource = 0>>
+<<set $args[0].bellyImplant = $args[1].bellyImplant>>
+<<set $args[0].bellyPain = $args[1].bellyPain>>
+<<set $args[0].cervixImplant = $args[1].cervixImplant>>
+<<set $args[0].pubertyAgeXX = $args[1].pubertyAgeXX>>
+<<set $args[0].pubertyXX = $args[1].pubertyXX>>
+<<set $args[0].pubertyAgeXY = $args[1].pubertyAgeXY>>
+<<set $args[0].pubertyXY = $args[1].pubertyXY>>
+<<set $args[0].scars = $args[1].scars>>
+<<set $args[0].breedingMark = $args[1].breedingMark>>
+<<set $args[0].underArmHColor = $args[1].underArmHColor>>
+<<set $args[0].underArmHStyle = $args[1].underArmHStyle>>
+<<set $args[0].publicCount = $args[1].publicCount>>
+<<set $args[0].ballType = $args[1].ballType>>
+<<set $args[0].eggType = $args[1].eggType>>
+<<set $args[0].pregControl = $args[1].pregControl>>
+<<set $args[0].readyLimbs = $args[1].readyLimbs>>
+<<set $args[0].bald = $args[1].bald>>
+<<set $args[0].hormoneBalance = $args[1].hormoneBalance>>
+<<set $args[0].breastMesh = $args[1].breastMesh>>
+
+<<set $args[0].canRecruit = 0>>
+
+<<if $swapFailure > 600>>
+	<<set $args[0].bodySwap = 1>>
+<<elseif $args[0].bodySwap == 0>>
+	<<set $args[0].bodySwap = 2>>
+<</if>>
+
+<</widget>>
\ No newline at end of file
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index 021da570f47..700b920ed58 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -1517,88 +1517,6 @@ Of her $slaves[$i].pregType children; $slaves[$i].reservedChildren were taken to
 
 <</widget>>
 
-/* first arg is new body, second is old body */
-<<widget "BodySwap">>
-<<if $args[0].origin != "You reserved a mindless slave like her from the Flesh Heap.">>
-	<<if $args[0].origBodyOwner == "">>
-		<<set $args[0].origBodyOwner = ("The body of the slave " + $args[0].slaveName)>>
-	<</if>>
-<</if>>
-<<set $args[0].slaveName = $args[1].slaveName>>
-<<set $args[0].birthName = $args[1].birthName>>
-<<set $args[0].weekAcquired = $args[1].weekAcquired>>
-<<set $args[0].origin = $args[1].origin>>
-<<set $args[0].career = $args[1].career>>
-<<set $args[0].ID = $args[1].ID>>
-<<set $args[0].relation = $args[1].relation>>
-<<set $args[0].relationTarget = $args[1].relationTarget>>
-<<set $args[0].relationship = $args[1].relationship>>
-<<set $args[0].relationTarget = $args[1].relationTarget>>
-<<set $args[0].rivalry = $args[1].rivalry>>
-<<set $args[0].rivalryTarget = $args[1].rivalryTarget>>
-<<set $args[0].subTarget = $args[1].subTarget>>
-<<removeJob $args[1] $args[1].assignment>>
-<<set $args[0].assignment = $args[1].assignment>>
-<<set $args[0].sentance = 0>>
-<<set $args[0].toyHole = $args[1].toyHole>>
-<<set $args[0].birthWeek = $args[1].birthWeek>>
-<<set $args[0].actualAge = $args[1].actualAge>>
-<<set $args[0].trust = $args[1].trust>>
-<<set $args[0].oldTrust = $args[1].oldTrust>>
-<<set $args[0].devotion = $args[1].devotion>>
-<<set $args[0].oldDevotion = $args[1].oldDevotion>>
-<<set $args[0].accent = $args[1].accent>>
-<<set $args[0].vaginalSkill = $args[1].vaginalSkill>>
-<<set $args[0].oralSkill = $args[1].oralSkill>>
-<<set $args[0].analSkill = $args[1].analSkill>>
-<<set $args[0].whoreSkill = $args[1].whoreSkill>>
-<<set $args[0].entertainSkill = $args[1].entertainSkill>>
-<<set $args[0].combatSkill = $args[1].combatSkill>>
-<<set $args[0].livingRules = $args[1].livingRules>>
-<<set $args[0].speechRules = $args[1].speechRules>>
-<<set $args[0].releaseRules = $args[1].releaseRules>>
-<<set $args[0].relationshipRules = $args[1].relationshipRules>>
-<<set $args[0].standardPunishment = $args[1].standardPunishment>>
-<<set $args[0].standardReward = $args[1].standardReward>>
-<<set $args[0].useRulesAssistant = $args[1].useRulesAssistant>>
-<<set $args[0].diet = $args[1].diet>>
-<<set $args[0].dietCum = $args[1].dietCum>>
-<<set $args[0].dietMilk = $args[1].dietMilk>>
-<<set $args[0].choosesOwnClothes = $args[1].choosesOwnClothes>>
-<<set $args[0].clothes = $args[1].clothes>>
-<<set $args[0].collar = $args[1].collar>>
-<<set $args[0].shoes = $args[1].shoes>>
-<<set $args[0].intelligence = $args[1].intelligence>>
-<<set $args[0].intelligenceImplant = $args[1].intelligenceImplant>>
-<<set $args[0].attrXX = $args[1].attrXX>>
-<<set $args[0].attrXY = $args[1].attrXY>>
-<<set $args[0].attrKnown = $args[1].attrKnown>>
-<<set $args[0].fetish = $args[1].fetish>>
-<<set $args[0].fetishStrength = $args[1].fetishStrength>>
-<<set $args[0].fetishKnown = $args[1].fetishKnown>>
-<<set $args[0].behavioralFlaw = $args[1].behavioralFlaw>>
-<<set $args[0].behavioralQuirk = $args[1].behavioralQuirk>>
-<<set $args[0].sexualFlaw = $args[1].sexualFlaw>>
-<<set $args[0].sexualQuirk = $args[1].sexualQuirk>>
-<<set $args[0].pitKills = $args[1].pitKills>>
-<<set $args[0].customLabel = $args[1].customLabel>>
-<<set $args[0].customDesc = ($args[1].customDesc)>>
-<<set $args[0].birthsTotal = $args[1].birthsTotal>>
-<<set $args[0].bodySwap = $args[1].bodySwap>>
-<<set $args[0].mother = $args[1].mother>>
-<<set $args[0].father = $args[1].father>>
-<<set $args[0].sisters = $args[1].sisters>>
-<<set $args[0].daughters = $args[1].daughters>>
-<<set $args[0].canRecruit = 0>>
-
-<<if $swapFailure > 600>>
-	<<set $args[0].bodySwap = 1>>
-<<elseif $args[0].bodySwap == 0>>
-	<<set $args[0].bodySwap = 2>>
-<</if>>
-
-<</widget>>
-
 /* 
  Penetrative ability, ability to become pregnant, and canBreed() must be checked outside of this. Designed to assume .eggType == "human".
  $args[0] is the target to get pregnant.
diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw
index bbffc695e1c..7adf0eb7983 100644
--- a/src/uncategorized/storyCaption.tw
+++ b/src/uncategorized/storyCaption.tw
@@ -525,7 +525,7 @@
 	<<else>>
 		<br><span id="manageArcology"><<link "Manage Arcology">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Arcology">><</link>></span> @@.cyan;[C]@@
 		<br><span id="managePenthouse"><<link "Manage Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></span> @@.cyan;[P]@@
-		<br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[A]@@
+		<br><span id="managePerson"><<link "Manage Personal Affairs">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Personal Affairs">><</link>></span> @@.cyan;[X]@@
 		<br><span id="policyButton"><<link [[Policies]]>><</link>></span> @@.cyan;[Y]@@
 		<br>
 		<<if $FSAnnounced>>
diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw
index 5a952daeba1..f0afd0c4194 100644
--- a/src/utility/assayWidgets.tw
+++ b/src/utility/assayWidgets.tw
@@ -135,7 +135,7 @@
 <</if>>
 <</if>>
 <<if $arcologies[0].FSChineseRevivalist != "unset">>
-<<if ($args[0].nationality == "Chinese") || ($args[0].nationality == "Chinese Revivalist")>>
+<<if ($args[0].nationality == "Chinese") || ($args[0].nationality == "Ancient Chinese Revivalist")>>
 	<<set $beauty += ($arcologies[0].FSChineseRevivalist/2)>>
 <<elseif $args[0].race == "asian" || $args[0].race == "surgically altered to look asian">>
 	<<set $beauty += ($arcologies[0].FSChineseRevivalist/5)>>
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index 654363af0a2..d9ebbc5b6f4 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -6,7 +6,7 @@
 	Called from Gen XX, Gen XY, CheatMode DB, InitNationalities.
 %/
 <<widget "BaseSlave">>
-	<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0}>>
+	<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, bellyImplant: 0, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0}>>
 <</widget>>
 
 /%
-- 
GitLab