diff --git a/src/cheats/PCCheatMenu.tw b/src/cheats/PCCheatMenu.tw
index 2080a5037f90d368b9981ac8519bc4fec0223a5d..6980a938e823ff2e4c7e59181ba66a197bb1685b 100644
--- a/src/cheats/PCCheatMenu.tw
+++ b/src/cheats/PCCheatMenu.tw
@@ -3,6 +3,10 @@
 <<set $nextButton = "Apply", $nextLink = "PCCheatMenuCheatDatatypeCleanup", $encyclopedia = "Design Your Master">>
 <<set $tempSlave = clone($PC)>>
 
+<h1>DOM</h1>
+<<includeDOM App.UI.Player.design()>>
+<h1>SC</h1>
+
 ''Cheat Editing Player Character'' <<link "[Cancel]" "Manage Personal Affairs">><<unset $tempSlave, $customEvalCode>><</link>>
 
 <br><br>
diff --git a/src/events/intro/pcAppearance.js b/src/events/intro/pcAppearance.js
index 19e41c6a708d2dd93284a337bda435a602f112ba..430f85c3d80bb4f5457ff44863f79dc15d6f76e9 100644
--- a/src/events/intro/pcAppearance.js
+++ b/src/events/intro/pcAppearance.js
@@ -8,9 +8,19 @@ App.UI.Player.appearance = function(options) {
 	options.addOption("Your race is", "race", V.PC).showTextBox()
 		.addValueList(Array.from(setup.filterRaces, (k => [k, k.toLowerCase()])));
 
+	if (V.cheatMode) {
+		options.addOption("Your race is", "origRace", V.PC).showTextBox()
+			.addValueList(Array.from(setup.filterRaces, (k => [k, k.toLowerCase()])));
+	}
+
 	options.addOption("Your skin tone is", "skin", V.PC).showTextBox()
 		.addValueList(makeAList(setup.naturalSkins));
 
+	if (V.cheatMode) {
+		options.addOption("Your genetic skin tone is", "origSkin", V.PC).showTextBox()
+			.addValueList(makeAList(setup.naturalSkins));
+	}
+
 	options.addOption("Your body", "markings", V.PC)
 		.addValueList([["Is clear of blemishes", "none"], ["Has light freckling", "freckles"], ["Has heavy freckling", "heavily freckled"]]);
 
@@ -20,6 +30,11 @@ App.UI.Player.appearance = function(options) {
 	options.addOption("Your hair is", "hColor", V.PC).showTextBox()
 		.addValueList(makeAList(App.Medicine.Modification.Color.Primary.map(color => color.value)));
 
+	if (V.cheatMode) {
+		options.addOption("Your original hair is", "origHColor", V.PC).showTextBox()
+			.addValueList(makeAList(App.Medicine.Modification.Color.Primary.map(color => color.value)));
+	}
+
 	function makeAList(iterable) {
 		return Array.from(iterable, (k => [capFirstChar(k), k]));
 	}
@@ -49,7 +64,6 @@ App.UI.Player.names = function(options) {
 	options.addOption("Your given name is", "slaveName", V.PC).showTextBox();
 
 	if (V.cheatMode) {
-		options.addOption("Name", "slaveName", V.PC).showTextBox();
 		options.addOption("Birth Name", "birthName", V.PC).showTextBox();
 		options.addOption("Surname", "slaveSurname", V.PC).showTextBox();
 		options.addOption("Birth Surname", "birthSurname", V.PC).showTextBox();
@@ -72,10 +86,10 @@ App.UI.Player.design = function() {
 	let option;
 	let r;
 	let linkArray;
-	const freshStart = (V.freshPC === 1 || V.saveImported === 0);
+	const allowEdits = (V.freshPC === 1 || V.saveImported === 0 || V.cheatMode);
 
 	// Title / age
-	if (freshStart || V.cheatMode) {
+	if (allowEdits) {
 		options.addOption("You are a", "title", V.PC)
 			.addValue("Masculine Master", 1, () => V.PC.genes = "XY").addValue("Feminine Mistress", 0, () => V.PC.genes = "XX");
 
@@ -89,7 +103,6 @@ App.UI.Player.design = function() {
 			options.addOption("Visual Age", "visualAge", V.PC).showTextBox();
 			options.addOption("Ovary Age", "ovaryAge", V.PC).showTextBox();
 			options.addOption("Age Implant", "ageImplant", V.PC).showTextBox().addComment("0: no surgery, 1: age altering surgery");
-			options.addOption("Player Aging", "playerAging", V).showTextBox().addComment("0: no aging, 1: no aging, but birthdays, 2: aging");
 		} else {
 			options.addOption("You are", "actualAge", V.PC).showTextBox()
 				.addRange(25, 35, "<", "Surprisingly young").addRange(40, 50, "<", "Entering middle age")
@@ -136,7 +149,7 @@ App.UI.Player.design = function() {
 	}
 
 	// Appearance
-	if (freshStart) {
+	if (allowEdits) {
 		App.UI.Player.appearance(options);
 
 		options.addOption("Your face is", "faceShape", V.PC)
@@ -167,7 +180,7 @@ App.UI.Player.design = function() {
 	App.UI.Player.refreshmentChoice(options);
 
 	// History
-	if (freshStart) {
+	if (allowEdits) {
 		option = options.addOption("Before you came to the Free Cities, you were a", "career", V.PC);
 		if (V.PC.career === "arcology owner") {
 			option.addValue("Arcology owner", "arcology owner");
@@ -303,7 +316,7 @@ App.UI.Player.design = function() {
 	// Sexuality
 	App.UI.DOM.appendNewElement("h2", el, "Sexuality");
 
-	if (freshStart) {
+	if (allowEdits) {
 		options = new App.UI.OptionsGroup();
 
 		if (V.PC.vagina !== -1 && V.PC.dick !== 0) {
@@ -347,6 +360,20 @@ App.UI.Player.design = function() {
 			option.addComment("Sex scene variations; more difficult reputation maintenance; some unique opportunities, especially with breasts.");
 		}
 
+		if (V.cheatMode) {
+			options.addOption("Vagina", "vagina", V.PC).showTextBox();
+			options.addOption("New vagina", "newVag", V.PC).showTextBox();
+			options.addOption("Dick", "dick", V.PC).showTextBox();
+			options.addOption("Balls", "balls", V.PC).addValueList([
+				["Normal", 3],
+				["Big", 5],
+				["Huge", 9],
+				["Monstrous", 30]
+			])
+				.showTextBox();
+			options.addOption("Balls implant", "ballsImplant", V.PC).showTextBox();
+		}
+
 		if (V.PC.vagina !== -1) {
 			option = options.addOption("You are", "preg", V.PC)
 				.addValue("Taking contraceptives", -1, () => { V.PC.pregType = 0; V.PC.labor = 0; })
@@ -354,6 +381,10 @@ App.UI.Player.design = function() {
 				.addRange(16, 37, "<=", "Pregnant").addCallback(() => { V.PC.pregType = 1; V.PC.labor = 0; })
 				.addRange(40, 42, "<=", "Ready to drop").addCallback(() => { V.PC.pregType = 1; V.PC.labor = 0; })
 				.addRange(43, 42, ">", "Ready to drop with octuplets").addCallback(() => { V.PC.pregType = 8; V.PC.labor = 1; });
+			if (V.cheatMode) {
+				option.showTextBox();
+				option.addComment(`how far along your pregnancy is (pregMood kicks in at 24+ weeks) - -2: infertile, -1: contraceptives, 0: not pregnant, 1 - 42: pregnant, 43+: giving birth`);
+			}
 			if (V.PC.preg === -1) {
 				option.addComment("You can't get pregnant, however there will be a slight increase to living expenses.");
 			}
@@ -373,6 +404,23 @@ App.UI.Player.design = function() {
 			} else if (V.PC.pregMood === 2) {
 				option.addComment("Sex scene alterations; slaves will fear you more, but will become more submissive to you.");
 			}
+
+			if (V.cheatMode) {
+				option = options.addOption("Fetus Count", "pregType", V.PC).showTextBox().addComment(`how many you're having (1-8)`);
+				option = options.addOption("Pregnancy Source", "pregSource", V.PC)
+					.addValueList([
+						["Unknown", 0],
+						["Self-impregnation", -1],
+						["Citizen", -2],
+						["Former Master", -3],
+						["Male arc owner", -4],
+						["Client", -5],
+						["Societal Elite", -6],
+						["Designer baby", -7],
+						["Futanari Sister", -9],
+					])
+					.showTextBox();
+			}
 		}
 
 		if (V.PC.title === 1 && V.PC.boobs <= 100) {
@@ -386,15 +434,44 @@ App.UI.Player.design = function() {
 			["F-cups", 1100],
 			["G-cups", 1300]
 		]);
+		option.showTextBox();
 
 		if (V.PC.boobs >= 500) {
 			options.addOption("Your breasts are", "boobsImplant", V.PC)
 				.addValueList([
 					["All natural", 0],
 					["Fake", 400]
-				]);
+				])
+				.showTextBox("CCs");
+		}
+
+		if (V.cheatMode) {
+			if (V.PC.boobs >= 500) {
+				options.addOption("Your breasts are", "lactation", V.PC)
+					.addValueList([
+						["Lactating", 1],
+						["Not Lactating", 0]
+					]);
+			}
 		}
 
+		options.addOption("Your butt size", "butt", V.PC)
+			.addValueList([
+				["Normal", 2],
+				["Big", 3],
+				["Huge", 4],
+				["Enormous", 5],
+			])
+			.showTextBox();
+
+		options.addOption("Your butt is", "buttImplant", V.PC)
+			.addValueList([
+				["All natural", 0],
+				["Fake", 1]
+			])
+			.showTextBox("CCs");
+
+
 		options.addOption("You are genetically", "genes", V.PC)
 			.addValue("XY").addValue("XX");