diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index 9e6c1ba024684453ee3faf7f4bf18347abaf2a26..09f3c7ff7c881736a9bb67fd03c8428a5637be6d 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -3,6 +3,7 @@ Pregmod
 0.10.7.1-2.2.x
 
 	0
+	-overhauled chastity
 	-overhauled reputation tracking
 	-reputation is now harder to build the higher it gets
 	-ear shaping surgeries
@@ -14,6 +15,7 @@ Pregmod
 	-added abortion tracking tattoos
 	-added bulk incubator retrieval
 	-added "albinism", "pFace" and "uFace" genetic traits
+	-added sexy Santa outfit
 	-fixes
 
 0.10.7.1-2.1.x
diff --git a/src/SecExp/weaponsManufacturing.tw b/src/SecExp/weaponsManufacturing.tw
index 787e3cb9511cce3546c47bdb4f81714bed9057ae..02c30b35092600b008ae03520e6354443fe0b96b 100644
--- a/src/SecExp/weaponsManufacturing.tw
+++ b/src/SecExp/weaponsManufacturing.tw
@@ -29,7 +29,7 @@ many small old world nations as the advanced technology that free cities have av
 	There's a large lab attached to the complex. The complement of equipment and personnel makes it a great beacon of military science in an otherwise ignorant world.
 <</if>>
 <br>
-<<if $weapMenials> 0>>Assigned here are $weapMenials slaves working to produce as much equipment as possible<<else>>There are no assigned menial slaves here. The spaces is manned exclusively by low rank citizens.<</if>>
+<<if $weapMenials> 0>>Assigned here are $weapMenials slaves working to produce as much equipment as possible.<<else>>There are no assigned menial slaves here. The spaces is manned exclusively by low rank citizens.<</if>>
 You own <<print commaNum($menials)>> free menial slaves. This manufacturing complex can house 500 at most, with <<print 500 - $weapMenials>> free slots.
 <br>
 <<silently>><<= MenialPopCap()>><</silently>>
diff --git a/src/art/artJS.js b/src/art/artJS.js
index be8e73e416c900259354b8bee3af2fba5063c498..e350ea6bd265583464586d301e74266d9167d684 100644
--- a/src/art/artJS.js
+++ b/src/art/artJS.js
@@ -1,3 +1,28 @@
+/*
+Call as <<= SlaveArt(...)>> or <<print SlaveArt(...)>>
+Displays slave images. Currently passage-based.
+artSlave: Slave.
+artSize: Image size/center.
+	3: Large, right. Example: long slave description.
+	2: Medium, right. Example: random events.
+	1: Small, left. Example: lists.
+	0: Tiny, left. Example: facilities
+UIDisplay (optional, only used by legacy art): icon UI Display for vector art, 1 for on.
+*/
+window.SlaveArt = function(artSlave, artSize, UIDisplay) {
+	const imageChoice = State.variables.imageChoice;
+	if (artSlave.customImage !== 0)
+		return CustomArt(artSlave, artSize);
+	else if (imageChoice === 1) /* VECTOR ART BY NOX/DEEPMURK */
+		return VectorArt(artSlave, artSize);
+	else if (imageChoice === 2) /* VECTOR ART BY NOX - Pregmod Legacy Version */
+		return LegacyVectorArt(artSlave, UIDisplay);
+	else if (imageChoice === 3) /* VECTOR ART REVAMP*/
+		return RevampedVectorArt(artSlave);
+	else /* RENDERED IMAGES BY SHOKUSHU */
+		return ArtControlRendered(artSlave, artSize);
+};
+
 window.ArtControlRendered = function ArtControlRendered(slave, sizePlacement) {
 	const V = State.variables;
 	let fileName = "'resources/renders/";
diff --git a/src/art/artWidgets.tw b/src/art/artWidgets.tw
index 1f707f3d21dd8ac271773e3630be495813e43fd4..5c7529bfef3b141d4977db18f21ec21c8046bff9 100644
--- a/src/art/artWidgets.tw
+++ b/src/art/artWidgets.tw
@@ -13,464 +13,7 @@ $args[2]: icon UI Display for vector art, 1 for on.
 %/
 <<widget "SlaveArt">>
 
-<<if $args[0].customImage != 0>>
-
-<<= CustomArt($args[0], $args[1])>>
-
-<<elseif $imageChoice == 1>> /* VECTOR ART BY NOX*/
-
-<<= VectorArt($args[0], $args[1])>>
-
-<<elseif $imageChoice == 2>> /* VECTOR ART BY NOX - Pregmod Legacy Version */
-<<SVGFilters>>
-
-/* 000-250-006 */
-/* <div class="imageRef"> */
-/* 000-250-006 */
-
-<<set _folderLoc = "'resources/vector">>
-
-<<if $args[2] == 1>>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/test ui.svg'" + "/>">>
-<</if>>
-
-/% Set skin color %/
-<<set _skinFilter = "filter: url(#skin-" + _.kebabCase($args[0].skin) + ");">>
-/% Set hair color %/
-<<set _hairFilter = "filter: url(#hair-" + _.kebabCase($args[0].hColor) + ");">>
-<<set _underArmFilter = "filter: url(#hair-" + _.kebabCase($args[0].underArmHColor) + ");">>
-<<set _pubesFilter = "filter: url(#hair-" + _.kebabCase($args[0].pubicHColor) + ");">>
-<<set _axillaryFilter = "filter: url(#hair-" + _.kebabCase($args[0].underArmHColor) + ");">>
-<<if $args[0].customHairVector>>
-	<<set _hairStyle = $args[0].customHairVector>>
-<<else>>
-	<<set _hairStyle = ["afro", "braided", "bun", "buzzcut", "dreadlocks", "eary", "luxurious", "messy", "neat", "ponytail", "strip", "tails", "trimmed", "up"].includes($args[0].hStyle) ? $args[0].hStyle : "neat">>
-<</if>>
-<<set _underArmHStyle = $args[0].underArmHStyle>>
-
-<<set _imgSkinLoc = _folderLoc + "/body/white">>
-
-/% Shoulder width and arm or no arm %/
-<<if $args[0].amp != 1>>
-	<<if $args[0].devotion > 50>>
-		<<set _leftArmType = "high">>
-		<<set _rightArmType = "high">>
-	<<elseif $args[0].trust >= -20>>
-		<<if $args[0].devotion < -20>>
-			<<set _leftArmType = "rebel">>
-			<<set _rightArmType = "low">>
-		<<elseif $args[0].devotion <= 20>>
-			<<set _leftArmType = "low">>
-			<<set _rightArmType = "low">>
-		<<else>>
-			<<set _leftArmType = "mid">>
-			<<set _rightArmType = "high">>
-		<</if>>
-	<<else>>
-		<<set _leftArmType = "mid">>
-		<<set _rightArmType = "mid">>
-	<</if>>
-
-	<<if $args[0].fuckdoll == 0 && $args[0].clothes != "restrictive latex" && $args[0].clothes != "a latex catsuit">>
-		<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/arm right " + _rightArmType + ".svg'" + " style='"+ _skinFilter + "'>">>
-		<<if $args[0].underArmHStyle == "bushy">>
-			<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/underArm " + _underArmHStyle + " right.svg'" + " style='" + _underArmFilter + "'/>">>
-		<</if>>
-	<<else>>
-		<<if $args[0].fuckdoll != 0>>
-			<<set _rightArmType = "mid">>
-		<</if>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/arm right " + _rightArmType + " latex.svg'" + "/>">>
-	<</if>>
-
-<<else>>
-	<<if $args[0].fuckdoll == 0 && $args[0].clothes != "restrictive latex" && $args[0].clothes != "a latex catsuit" && $args[0].underArmHStyle == "bushy">>
-		<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/underArm " + _underArmHStyle + " right.svg'" + " style='" + _underArmFilter + "'/>">>
-	<</if>>
-<</if>>
-
-/% Hair Aft %/
-<<if $args[0].hStyle != "shaved" && $args[0].fuckdoll == 0>>
-	<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/" + _hairStyle + " back.svg'" + " style='" + _hairFilter + "'/>">>
-<</if>>
-
-/% Tailed Plug %/
-<<if $args[0].buttplugAttachment == "tail">>
-	<<= "<img class='paperdoll' src=" + _folderLoc + "/outfit/tail plug.svg'" + " style='" + _hairFilter + "'/>">>
-<</if>>
-
-/% Butt %/
-<<if $args[0].amp != 1>>
-<<if $args[0].butt > 6>>
-	<<set _buttSize = 3>>
-<<elseif $args[0].butt > 4>>
-	<<set _buttSize = 2>>
-<<elseif $args[0].butt > 2>>
-	<<set _buttSize = 1>>
-<<else>>
-	<<set _buttSize = 0>>
-<</if>>
-<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
-	<<set _buttSize = _buttSize + " latex">>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/butt " + _buttSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-<<else>>
-	<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/butt " + _buttSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-<</if>>
-<</if>>
-
-/% Leg + 1 size up when chubby or fat%/
-<<if $args[0].hips < 0>>
-	<<if $args[0].weight > 95>>/%Chubby%/
-		<<set _legSize = "normal">>
-	<<else>>
-		<<set _legSize = "narrow">>
-	<</if>>
-<<elseif $args[0].hips == 0>>
-	<<if $args[0].weight > 95>>/%Chubby%/
-		<<set _legSize = "wide">>
-	<<else>>
-		<<set _legSize = "normal">>
-	<</if>>
-<<elseif $args[0].hips > 0>>
-	<<set _legSize = "wide">>
-<</if>>
-<<if $args[0].amp == 1>>
-	<<set _legSize = "stump " + _legSize>>
-<</if>>
-<<if ($args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit") && $args[0].amp != 1>>
-	<<set _legSize = _legSize + " latex">>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/leg " + _legSize + ".svg'" + "/>">>
-<<else>>
-	<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/leg " + _legSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-<</if>>
-
-/% Feet %/
-<<if $args[0].amp != 1>>
-<<if $args[0].shoes == "heels">>
-	<<set _shoesType = "heel">>
-<<elseif $args[0].shoes == "extreme heels">>
-	<<if $args[0].weight > 95>>/%Chubby%/
-		<<set _shoesType = "extreme heel wide">>
-	<<else>>
-		<<set _shoesType = "extreme heel">>
-	<</if>>
-<<elseif $args[0].shoes == "boots">>
-	<<if $args[0].weight > 95>>/%Chubby%/
-		<<set _shoesType = "boot wide">>
-	<<else>>
-		<<set _shoesType = "boot">>
-	<</if>>
-<<elseif $args[0].shoes == "flats">>
-	<<set _shoesType = "flat">>
-<<else>>
-	<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/feet.svg'" + " style='"+ _skinFilter + "'>">>
-<</if>>
-<<if $args[0].shoes == "extreme heels" || $args[0].shoes == "boots">>
-	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
-		<<set _shoesType = _shoesType + " latex">>
-	<</if>>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/" + _shoesType + ".svg'" + "/>">>
-<</if>>
-<<if $args[0].shoes == "heels" || $args[0].shoes == "flats">>
-	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
-		<<set _shoesType = _shoesType + " latex">>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/" + _shoesType + ".svg'" + "/>">>
-	<<else>>
-		<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/" + _shoesType + ".svg'" + " style='"+ _skinFilter + "'>">>
-	<</if>>
-<</if>>
-<</if>>
-
-/% Torso %/
-<<if $args[0].waist < -40>>
-	<<if $args[0].weight > 30>>
-		<<set _torsoSize = "Hourglass">>
-	<<else>>
-		<<set _torsoSize = "Unnatural">>
-	<</if>>
-<<elseif $args[0].waist <= 10>>
-	<<if $args[0].weight > 30>>
-		<<set _torsoSize = "Normal">>
-	<<else>>
-		<<set _torsoSize = "Hourglass">>
-	<</if>>
-<<else>>
-	<<set _torsoSize = "Normal">>
-<</if>>
-<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/torso " + _torsoSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-<<set _torsoOutfit = false>>
-<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
-	<<set _torsoOutfit = " latex">>
-<<elseif $args[0].clothes == "uncomfortable straps">>
-	<<set _torsoOutfit = " straps">>
-<</if>>
-<<if _torsoOutfit>>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/torso " + _torsoSize + _torsoOutfit + ".svg'" + "/>">>
-<</if>>
-
-<<if $args[0].amp != 1>>
-	<<if $args[0].fuckdoll == 0 && $args[0].clothes != "restrictive latex" && $args[0].clothes != "a latex catsuit">>
-		<<if _leftArmType == "high">>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/arm left " + _leftArmType + ".svg'" + " style='"+ _skinFilter + "'>">>
-			<<if $args[0].underArmHStyle == "bushy">>
-				<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/underArm " + _underArmHStyle + " left.svg'" + " style='" + _underArmFilter + "'/>">>
-			<</if>>
-		<<else>>
-			<<if $args[0].underArmHStyle == "bushy">>
-				<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/underArm " + _underArmHStyle + " left.svg'" + " style='" + _underArmFilter + "'/>">>
-			<</if>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/arm left " + _leftArmType + ".svg'" + " style='"+ _skinFilter + "'>">>
-		<</if>>
-		<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/arm left " + _leftArmType + ".svg'" + " style='"+ _skinFilter + "'>">>
-	<<else>>
-		<<if $args[0].fuckdoll != 0>>
-			<<set _leftArmType = "mid">>
-		<</if>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/arm left " + _leftArmType + " latex.svg'" + "/>">>
-	<</if>>
-<<else>>
-	<<if $args[0].fuckdoll == 0 && $args[0].clothes != "restrictive latex" && $args[0].clothes != "a latex catsuit" && $args[0].underArmHStyle == "bushy">>
-		<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/underArm " + _underArmHStyle + " left.svg'" + " style='" + _underArmFilter + "'/>">>
-	<</if>>
-<</if>>
-
-/% Vagina %/
-<<if $args[0].vagina >= 0>>
-	<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/vagina.svg'" + " style='"+ _skinFilter + "'>">>
-	<<if $args[0].clitPiercing == 1>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/clit piercing.svg'" + "/>">>
-	<<elseif $args[0].clitPiercing == 2>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/clit piercing heavy.svg'" + "/>">>
-	<<elseif $args[0].clitPiercing == 3>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/clit piercing smart.svg'" + "/>">>
-	<</if>>
-	<<if $args[0].vaginaPiercing == 1>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/pussy piercing.svg'" + "/>">>
-	<<elseif $args[0].vaginaPiercing == 2>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/pussy piercing heavy.svg'" + "/>">>
-	<</if>>
-<</if>>
-
-/% Collar %/
-<<switch $args[0].collar>>
-<<case "bowtie">>
-<<case "ancient Egyptian">>
-<<case "nice retirement counter" "cruel retirement counter" "leather with cowbell" "pretty jewelry" "heavy gold" "satin choker" "stylish leather" "neck corset" "shock punishment" "tight steel" "uncomfortable leather" "dildo gag">>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/" + $args[0].collar + ".svg'" + "/>">>
-<</switch>>
-
-/% Head base image %/
-<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/head latex.svg'" + "/>">>
-<<else>>
-	<<print "<img class='paperdoll' src=" +_imgSkinLoc + "/head.svg'" + " style='"+ _skinFilter + "'>">>
-<</if>>
-
-/% Glasses %/
-<<if $args[0].eyewear == "corrective glasses" || $args[0].eyewear == "glasses" || $args[0].eyewear == "blurring glasses">>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/glasses.svg'" + "/>">>
-<</if>>
-
-/% Chastity belt or Pubic hair %/
-<<if ($args[0].chastityPenis == 1) || ($args[0].chastityVagina == 1) || ($args[0].chastityAnus == 1)>>
-	<<if ($args[0].chastityPenis == 1)>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/chastity male aft.svg'" + "/>">>
-	<</if>>
-	<<if ($args[0].chastityVagina == 1)>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/chastity female.svg'" + "/>">>
-	<</if>>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/chastity base.svg'" + "/>">>
-<<else>>
-	<<if $args[0].pubicHStyle != "waxed">>
-		<<set _pubicHStyle = ($args[0].pubicHStyle == "in a strip" ? "strip" : $args[0].pubicHStyle)>>
-		<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/pubes " + _pubicHStyle + ".svg' style='" + _pubesFilter + "'/>">>
-	<</if>>
-<</if>>
-
-/%if pregnant or has a belly%/
-<<if $args[0].belly >= 5000>>
-	<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/preg belly 5000.svg'" + " style='"+ _skinFilter + "'>">>
-	<<if $args[0].navelPiercing >= 1>>/*Navel Piercing*/
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/preg navel piercing.svg'" + "/>">>
-	<</if>>
-	<<if $args[0].navelPiercing == 2>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/preg navel piercing heavy.svg'" + "/>">>
-	<</if>>
-<<elseif $args[0].belly <= -100>> /* condition is currently reversed until the vector can be fixed */
-	<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/preg belly 100.svg'" + " style='"+ _skinFilter + "'>">>
-	/*
-	<<if $args[0].navelPiercing >= 1>>/Navel Piercing/
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/preg navel piercing.svg'" + "/>">>
-	<</if>>
-	<<if $args[0].navelPiercing == 2>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/preg navel piercing heavy.svg'" + "/>">>
-	<</if>>
-	*/
-<<else>>
-	/*Navel Piercing*/
-	<<if $args[0].navelPiercing >= 1>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/navel piercing.svg'" + "/>">>
-	<</if>>
-	<<if $args[0].navelPiercing == 2>>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/navel piercing heavy.svg'" + "/>">>
-	<</if>>
-<</if>>
-
-/% Boob %/
-<<if $args[0].boobs < 300>>
-	<<set _boobSize = 0>>
-<<elseif $args[0].boobs < 500>>
-	<<set _boobSize = 1>>
-<<elseif $args[0].boobs < 800>>
-	<<set _boobSize = 2>>
-<<elseif $args[0].boobs < 1600>>
-	<<set _boobSize = 3>>
-<<elseif $args[0].boobs < 3200>>
-	<<set _boobSize = 4>>
-<<elseif $args[0].boobs < 6400>>
-	<<set _boobSize = 5>>
-<<elseif $args[0].boobs < 12000>>
-	<<set _boobSize = 6>>
-<<else>>
-	<<set _boobSize = 7>>
-<</if>>
-
-/% Scrotum %/
-<<if $args[0].scrotum > 0>>
-	<<if $args[0].scrotum >= 6>>
-		<<set _ballSize = 4>>
-	<<elseif $args[0].scrotum >= 4>>
-		<<set _ballSize = 3>>
-	<<elseif $args[0].scrotum >= 3>>
-		<<set _ballSize = 2>>
-	<<elseif $args[0].scrotum >= 2>>
-		<<set _ballSize = 1>>
-	<<else>>
-		<<set _ballSize = 0>>
-	<</if>>
-<</if>>
-
-/% Penis %/
-<<if $args[0].dick > 0>>
-	<<if $args[0].dick >= 8>>
-		<<set _penisSize = 6>>
-	<<elseif $args[0].dick >= 7>>
-		<<set _penisSize = 5>>
-	<<elseif $args[0].dick >= 6>>
-		<<set _penisSize = 4>>
-	<<elseif $args[0].dick >= 5>>
-		<<set _penisSize = 3>>
-	<<elseif $args[0].dick >= 4>>
-		<<set _penisSize = 2>>
-	<<elseif $args[0].dick >= 2>>
-		<<set _penisSize = 1>>
-	<<else>>
-		<<set _penisSize = 0>>
-	<</if>>
-<</if>>
-
-/% Boob %/
-<<set _needBoobs = 1>>
-<<if $args[0].dick > 0>>
-<<if canAchieveErection($args[0])>>
-<<if _boobSize < 6>>
-	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
-		/* normal case: outfit hides boobs */
-		<<set _boobOutfit = " latex" >>
-	<</if>>
-	<<if _boobOutfit >>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/boob " +_boobSize + _boobOutfit + ".svg'" + "/>">>
-		<<if $args[0].lactation > 0>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + " style='"+ _skinFilter + "'>">>
-		<</if>>
-	<<else>>
-		<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/boob " +_boobSize +".svg'" + " style='"+ _skinFilter + "'>">>
-		<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + " style='"+ _skinFilter + "'>">>
-	<</if>>
-	/* special case: straps are actually dawn over the boobs */
-	<<if $args[0].clothes == "uncomfortable straps">>
-		<<set _boobOutfit = " straps" >>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/boob " +_boobSize + _boobOutfit + ".svg'" + "/>">>
-	<</if>>
-	<<set _needBoobs = 0>>
-<</if>>
-<</if>>
-<</if>>
-<<if $args[0].vagina > 0>>
-	<<if $args[0].dick > 0>>
-		<div class="highPenis">
-		<<if $args[0].scrotum > 0>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/ball " + _ballSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-		<</if>>
-		<<if canAchieveErection($args[0])>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/penis " + _penisSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-		<<else>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/flaccid " + _penisSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-			<<if ($args[0].chastityPenis == 1)>>
-				<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/chastity male fore " + _penisSize + ".svg'" + "/>">>
-			<</if>>
-		<</if>>
-		</div>
-	<</if>>
-<<else>>
-	<<if $args[0].dick > 0>>
-		<div class="lowPenis">
-		<<if $args[0].scrotum > 0>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/ball " + _ballSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-		<</if>>
-		<<if canAchieveErection($args[0])>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/penis " + _penisSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-		<<else>>
-			<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/flaccid " + _penisSize + ".svg'" + " style='"+ _skinFilter + "'>">>
-			<<if ($args[0].chastityPenis == 1)>>
-				<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/chastity male fore " + _penisSize + ".svg'" + "/>">>
-			<</if>>
-		<</if>>
-		</div>
-	<</if>>
-<</if>>
-<<if _needBoobs>>
-	<<if $args[0].fuckdoll != 0 || $args[0].clothes == "restrictive latex" || $args[0].clothes == "a latex catsuit">>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/boob " +_boobSize +" latex.svg'" + "/>">>
-		<<if $args[0].lactation > 0>><<print "<img class='paperdoll' src=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + " style='"+ _skinFilter + "'>">><</if>>
-	<<else>>
-		<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/boob " +_boobSize +".svg'" + " style='"+ _skinFilter + "'>">>
-		<<print "<img class='paperdoll' src=" + _imgSkinLoc + "/boob " +_boobSize + " areola.svg'" + " style='"+ _skinFilter + "'>">>
-	<</if>>
-	/* special case: straps are actually dawn over the boobs */
-	<<if $args[0].clothes == "uncomfortable straps">>
-		<<set _boobOutfit = " straps" >>
-		<<print "<img class='paperdoll' src=" + _folderLoc + "/outfit/boob " +_boobSize + _boobOutfit + ".svg'" + "/>">>
-	<</if>>
-<</if>>
-
-/% piercings %/
-<<if $args[0].nipplesPiercing == 1>>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/boob " +_boobSize +" piercing.svg'" + "/>">>
-<<elseif $args[0].nipplesPiercing == 2>>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/boob " +_boobSize +" piercing heavy.svg'" + "/>">>
-<</if>>
-<<if $args[0].areolaePiercing == 1>>
-	<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/boob " +_boobSize +" areola piercing.svg'" + "/>">>
-<</if>>
-
-/% clavicle %/
-<<print "<img class='paperdoll' src=" + _folderLoc + "/body/addon/clavicle.svg'" + "/>">>
-
-/% Hair Foreground %/
-<<if $args[0].hStyle != "shaved" && $args[0].fuckdoll == 0>>
-	<<= "<img class='paperdoll' src=" + _folderLoc + "/hair/" + _hairStyle + " front.svg'" + " style='" + _hairFilter + "'/>">>
-<</if>>
-
-<<elseif $imageChoice == 3>> /* VECTOR ART REVAMP*/
-
-<<= RevampedVectorArt($args[0])>>
-
-<<else>> /* RENDERED IMAGES BY SHOKUSHU */
-
-	<<= ArtControlRendered($args[0], $args[1])>>
-
-<</if>> /* CLOSES IMAGE CHOICE */
+<<= SlaveArt($args[0], $args[1], $args[2])>>
 
 <</widget>>
 
diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js
index 55013b9c6246ee0807f9ce8f9dba58ffcc0c8adf..fe6ebc59ad2dcb011fd928d0e7c145bc2838ce6b 100644
--- a/src/art/vector/VectorArtJS.js
+++ b/src/art/vector/VectorArtJS.js
@@ -2,7 +2,7 @@ window.VectorArt = (function () {
 	"use strict";
 	let V, T, slave;
 	let r;
-	let leftArmType, rightArmType, legSize, torsoSize, buttSize, penisSize, hairLength;
+	let leftArmType, rightArmType, legSize, torsoSize, buttSize, penisSize, hairLength, wearingLatex;
 	let bellyScaleFactor, artBoobScaleFactor, heightScaleFactor;
 	let artTranslationX, artTranslationY;
 	let penisDrawtime, penisArtString;
@@ -12,6 +12,7 @@ window.VectorArt = (function () {
 		V = State.variables;
 		T = State.temporary;
 		slave = artSlave;
+		wearingLatex = slave.clothes === "a Fuckdoll suit" || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit";
 		/* reset/initialize some variables */
 		T.artTransformBelly = "";
 		T.artTransformBoob = "";
@@ -37,7 +38,8 @@ window.VectorArt = (function () {
 		ArtVectorAnalAccessories();
 		ArtVectorButt();
 		ArtVectorLeg();
-		ArtVectorFeet(); /* includes shoes and leg outfits*/
+		if (slave.amp !== 1)
+			ArtVectorFeet(); /* includes shoes and leg outfits*/
 		ArtVectorTorso();
 		ArtVectorPussy();
 		ArtVectorPubicHair();
@@ -512,7 +514,7 @@ window.VectorArt = (function () {
 			}
 			/* shiny clothing */
 			if (V.seeVectorArtHighlights === 1) {
-				if (slave.fuckdoll !== 0 || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit" || slave.clothes === "body oil") {
+				if (wearingLatex === true || slave.clothes === "body oil") {
 					/* only some arm positions have art (feel free to add more) */
 					if (leftArmType === "High")
 						r += jsInclude("Art_Vector_Arm_Outfit_Shine_Left_High");
@@ -704,7 +706,7 @@ window.VectorArt = (function () {
 			}
 			/* shiny clothing */
 			if (V.seeVectorArtHighlights === 1) {
-				if (slave.fuckdoll !== 0 || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit" || slave.clothes === "body oil") {
+				if (wearingLatex === true || slave.clothes === "body oil") {
 					r += jsInclude("Art_Vector_Belly_Outfit_Shine");
 				}
 			}
@@ -1046,7 +1048,7 @@ window.VectorArt = (function () {
 
 		function setOutfitColor() {
 			/* TODO: rewrite all textual descriptions not to explicitly mention the latex being of black color. */
-			if (slave.clothes === "a Fuckdoll suit" || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit" || slave.clothes === "a cybersuit")
+			if (wearingLatex === true || slave.clothes === "a cybersuit")
 				outfitBaseColour = slave.clothingBaseColor || "#515351"; /* use custom color, or use default latex color */
 			else if (slave.clothes == "a comfortable bodysuit")
 				outfitBaseColour = slave.clothingBaseColor || "#464646"; /* use custom color, or use default bodysuit color */
@@ -1735,7 +1737,7 @@ window.VectorArt = (function () {
 		r += jsInclude("Art_Vector_Head");
 		/* shiny clothing */
 		if (V.seeVectorArtHighlights === 1) {
-			if (slave.fuckdoll !== 0 || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit")
+			if (wearingLatex === true)
 				r += jsInclude("Art_Vector_Head_Outfit_Shine");
 		}
 		if (slave.clothes !== "restrictive latex") {
@@ -2385,7 +2387,7 @@ window.VectorArt = (function () {
 				r += jsInclude(`Art_Vector_Torso_Outfit_${clothing2artSuffix(slave.clothes)}_${torsoSize}`);
 		}
 		if (V.seeVectorArtHighlights === 1) {
-			if (slave.fuckdoll !== 0 || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit") {
+			if (wearingLatex === true) {
 				if (slave.amp !== 0)
 					r += jsInclude("Art_Vector_Torso_Outfit_Shine_Shoulder");
 				if (slave.preg <= 0)
@@ -2396,3 +2398,401 @@ window.VectorArt = (function () {
 
 	return VectorArt;
 })();
+
+window.LegacyVectorArt = function(slave, artSize) {
+	const filePath = "'resources/vector";
+	const skinFilePath = filePath + "/body/white";
+	const wearingLatex = slave.clothes === "a Fuckdoll suit" || slave.clothes === "restrictive latex" || slave.clothes === "a latex catsuit";
+	let hairStyle, underArmHStyle, leftArmType, rightArmType, buttSize, legSize, shoesType, torsoSize, boobSize, ballSize, penisSize;
+	let needBoobs = true;
+	let r = jsInclude("SVG filters");
+
+	/* Set skin color */
+	let skinFilter = `filter: url(#skin-${_.kebabCase(slave.skin)});`;
+	/* Set hair color */
+	let hairFilter = `filter: url(#hair-${_.kebabCase(slave.hColor)});`;
+	let underArmFilter = `filter: url(#hair-${_.kebabCase(slave.underArmHColor)});`;
+	let pubesFilter = `filter: url(#hair-${_.kebabCase(slave.pubicHColor)});`;
+
+	if (artSize === 1)
+		r += `<img class='paperdoll' src=${filePath}/test ui.svg'/`;
+
+	if (slave.customHairVector)
+		hairStyle = slave.customHairVector;
+	else
+		hairStyle = (["afro", "braided", "bun", "buzzcut", "dreadlocks", "eary", "luxurious", "messy", "neat", "ponytail", "strip", "tails", "trimmed", "up"].includes(slave.hStyle) ? slave.hStyle : "neat");
+
+	underArmHStyle = slave.underArmHStyle;
+
+	/* Shoulder width and arm or no arm */
+	if (slave.amp !== 1) {
+		if (slave.devotion > 50) {
+			leftArmType = "high";
+			rightArmType = "high";
+		} else if (slave.trust >= -20) {
+			if (slave.devotion < -20) {
+				leftArmType = "rebel";
+				rightArmType = "low";
+			} else if (slave.devotion <= 20) {
+				leftArmType = "low";
+				rightArmType = "low";
+			} else {
+				leftArmType = "mid";
+				rightArmType = "high";
+			}
+		} else {
+			leftArmType = "mid";
+			rightArmType = "mid";
+		}
+
+		if (wearingLatex === false) {
+			r += `<img class='paperdoll' src=${skinFilePath}/arm right ${rightArmType}.svg' style='${skinFilter}'>`;
+			if (slave.underArmHStyle === "bushy")
+				r += `<img class='paperdoll' src=${filePath}/hair/underArm ${underArmHStyle} right.svg' style='{underArmFilter}'/>`;
+		} else {
+			if (slave.fuckdoll !== 0)
+				rightArmType = "mid";
+			r += `<img class='paperdoll' src=${filePath}/outfit/arm right ${rightArmType} latex.svg'/>`;
+		}
+	} else if (wearingLatex === false && slave.underArmHStyle === "bushy") {
+			r += `<img class='paperdoll' src=${filePath}/hair/underArm ${underArmHStyle} right.svg' style='{underArmFilter}'/>`;
+	}
+
+	/* Hair Aft */
+	if (slave.fuckdoll === 0) {
+		switch (slave.hStyle) {
+			case "eary":
+			case "luxurious":
+			case "messy":
+			case "neat":
+			case "tails":
+			case "trimmed":
+				r += `<img class='paperdoll' src=${filePath}/hair/${hairStyle} back.svg' style='${hairFilter}'/>`;
+		}
+	}
+
+	/* Tailed Plug */
+	if (slave.buttplugAttachment === "tail")
+		r += `<img class='paperdoll' src=${filePath}/outfit/tail plug.svg' style='${hairFilter}'/>`;
+
+	/* Butt */
+	if (slave.amp !== 1) {
+		if (slave.butt > 6)
+			buttSize = 3;
+		else if (slave.butt > 4)
+			buttSize = 2;
+		else if (slave.butt > 2)
+			buttSize = 1;
+		else
+			buttSize = 0;
+
+		if (wearingLatex === true)
+			r += `<img class='paperdoll' src=${filePath}/outfit/butt ${buttSize} latex.svg' style='${skinFilter}'>`;
+		else
+			r += `<img class='paperdoll' src=${skinFilePath}/butt ${buttSize}.svg' style='${skinFilter}'>`;
+	}
+
+	/* Leg + 1 size up when chubby or fat */
+	if (slave.hips < 0) {
+		if (slave.weight > 95) /* Chubby */
+			legSize = "normal";
+		else
+			legSize = "narrow";
+	} else if (slave.hips === 0) {
+		if (slave.weight > 95) /* Chubby */
+			legSize = "wide";
+		else
+			legSize = "normal";
+	} else {
+		legSize = "wide";
+	}
+	if (slave.amp === 1)
+		legSize = "stump " + legSize;
+
+	if (wearingLatex === true && slave.amp !== 1)
+		r += `<img class='paperdoll' src=${filePath}/outfit/leg ${legSize} latex.svg'/>`;
+	else
+		r += `<img class='paperdoll' src=${skinFilePath}/leg ${legSize}.svg' style='${skinFilter}'>`;
+
+	/* Feet */
+	if (slave.amp !== 1) {
+		if (slave.shoes === "heels") {
+			shoesType = "heel";
+		} else if (slave.shoes === "extreme heels") {
+			if (slave.weight > 95 ) /* Chubby */
+				shoesType = "extreme heel wide";
+			else
+				shoesType = "extreme heel";
+		} else if (slave.shoes === "boots") {
+			if (slave.weight > 95) /* Chubby */
+				shoesType = "boot wide";
+			else
+				shoesType = "boot";
+		} else if (slave.shoes === "flats") {
+			shoesType = "flat";
+		} else {
+			r += `<img class='paperdoll' src=${skinFilePath}/feet.svg' style='${skinFilter}'>`;
+		}
+		if (slave.shoes === "extreme heels" || slave.shoes === "boots") {
+			if (wearingLatex === true)
+				r += `<img class='paperdoll' src=${filePath}/outfit/${shoesType} latex.svg'/>`;
+			else
+				r += `<img class='paperdoll' src=${filePath}/outfit/${shoesType}.svg'/>`;
+		} else if (slave.shoes === "heels" || slave.shoes === "flats") {
+			if (wearingLatex === true)
+				r += `<img class='paperdoll' src=${filePath}/outfit/${shoesType} latex.svg'/>`;
+			else
+				r += `<img class='paperdoll' src=${skinFilePath}/${shoesType}.svg' style='${skinFilter}'>`;
+		}
+	}
+
+	/* Torso */
+	if (slave.waist < -40) {
+		if (slave.weight > 30)
+			torsoSize = "Hourglass";
+		else
+			torsoSize = "Unnatural";
+	} else if (slave.waist <= 10) {
+		if (slave.weight > 30)
+			torsoSize = "Normal";
+		else
+			torsoSize = "Hourglass";
+	} else {
+		torsoSize = "Normal";
+	}
+	r += `<img class='paperdoll' src=${skinFilePath}/torso ${torsoSize}.svg' style='${skinFilter}'>`;
+	if (wearingLatex === true)
+		r += `<img class='paperdoll' src=${filePath}/outfit/torso ${torsoSize} latex.svg'/>`;
+	else if (slave.clothes === "uncomfortable straps")
+		r += `<img class='paperdoll' src=${filePath}/outfit/torso ${torsoSize} straps.svg'/>`;
+
+	if (slave.amp !== 1) {
+		if (wearingLatex === false) {
+			if (leftArmType === "high") {
+				r += `<img class='paperdoll' src=${skinFilePath}/arm left ${leftArmType}.svg' style='${skinFilter}'>`;
+				if (slave.underArmHStyle === "bushy")
+					r += `<img class='paperdoll' src=${filePath}/hair/underArm ${underArmHStyle} left.svg' style='${underArmFilter}'/>`;
+			} else {
+				if (slave.underArmHStyle === "bushy")
+					r += `<img class='paperdoll' src=${filePath}/hair/underArm ${underArmHStyle} left.svg' style='${underArmFilter}'/>`;
+				r += `<img class='paperdoll' src=${skinFilePath}/arm left ${leftArmType}.svg' style='${skinFilter}'>`;
+			}
+			r += `<img class='paperdoll' src=${skinFilePath}/arm left ${leftArmType}.svg' style='${skinFilter}'>`;
+		} else {
+			if (slave.fuckdoll !== 0)
+				leftArmType = "mid";
+			r += `<img class='paperdoll' src=${filePath}/outfit/arm left ${leftArmType} latex.svg'/>`;
+		}
+	} else if (wearingLatex === false && slave.underArmHStyle === "bushy") {
+		r += `<img class='paperdoll' src=${filePath}/hair/underArm ${underArmHStyle} left.svg' style='${underArmFilter}'/>`;
+	}
+
+	/* Vagina */
+	if (slave.vagina >= 0) {
+		r += `<img class='paperdoll' src=${skinFilePath}/vagina.svg' style='${skinFilter}'>`;
+		if (slave.clitPiercing === 1)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/clit piercing.svg'/>`;
+		else if (slave.clitPiercing === 2)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/clit piercing heavy.svg'/>`;
+		else if (slave.clitPiercing === 3)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/clit piercing smart.svg'/>`;
+
+		if (slave.vaginaPiercing === 1)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/pussy piercing.svg'/>`;
+		else if (slave.vaginaPiercing === 2)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/pussy piercing heavy.svg'/>`;
+	}
+
+	/* Collar */
+	switch (slave.collar) {
+		case "nice retirement counter":
+		case "cruel retirement counter":
+		case "leather with cowbell":
+		case "pretty jewelry":
+		case "heavy gold":
+		case "satin choker":
+		case "stylish leather":
+		case "neck corset":
+		case "shock punishment":
+		case "tight steel":
+		case "uncomfortable leather":
+		case "dildo gag":
+			r += `<img class='paperdoll' src=${filePath}/outfit/${slave.collar}.svg'/>`;
+	}
+
+	/* Head base image */
+	if (wearingLatex === true)
+		r += `<img class='paperdoll' src=${filePath}/outfit/head latex.svg'/>`;
+	else
+		r += `<img class='paperdoll' src=${skinFilePath}/head.svg' style='${skinFilter}'>`;
+
+	/* Glasses */
+	if (slave.eyewear === "corrective glasses" || slave.eyewear === "glasses" || slave.eyewear === "blurring glasses")
+		r += `<img class='paperdoll' src=${filePath}/outfit/glasses.svg'/>`;
+
+	/* Chastity belt or Pubic hair */
+	if (slave.chastityPenis === 1 || slave.chastityVagina === 1 || slave.chastityAnus === 1) {
+		if (slave.chastityPenis === 1)
+			r += `<img class='paperdoll' src=${filePath}/outfit/chastity male aft.svg'/>`;
+		if (slave.chastityVagina === 1)
+			r += `<img class='paperdoll' src=${filePath}/outfit/chastity female.svg'/>`;
+		r += `<img class='paperdoll' src=${filePath}/outfit/chastity base.svg'/>`;
+	} else if (slave.pubicHStyle !== "waxed" && slave.pubicHStyle !== "bald" && slave.pubicHStyle !== "hairless") {
+		let pubicHStyle = (slave.pubicHStyle == "in a strip" ? "strip" : slave.pubicHStyle);
+		r += `<img class='paperdoll' src=${filePath}/hair/pubes ${pubicHStyle}.svg' style='${pubesFilter}'/>`;
+	}
+
+	/* if pregnant or has a belly */
+	if (slave.belly >= 5000) {
+		r += `<img class='paperdoll' src=${skinFilePath}/preg belly 5000.svg' style='${skinFilter}'>`;
+		if (slave.navelPiercing >= 1) /*Navel Piercing*/
+			r += `<img class='paperdoll' src=${filePath}/body/addon/preg navel piercing.svg'/>`;
+		if (slave.navelPiercing === 2)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/preg navel piercing heavy.svg'/>`;
+	} else if (slave.belly <= -100) { /* condition is currently reversed until the vector can be fixed */
+		r += `<img class='paperdoll' src=${skinFilePath}/preg belly 100.svg' style='${skinFilter}'>`;
+		/*
+		if (slave.navelPiercing >= 1)/Navel Piercing/
+			r += `<img class='paperdoll' src=${filePath}/body/addon/preg navel piercing.svg'/>`;
+		if (slave.navelPiercing === 2)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/preg navel piercing heavy.svg'/>`;
+		*/
+	} else {
+		if (slave.navelPiercing >= 1) /*Navel Piercing*/
+			r += `<img class='paperdoll' src=${filePath}/body/addon/navel piercing.svg'/>`;
+		if (slave.navelPiercing === 2)
+			r += `<img class='paperdoll' src=${filePath}/body/addon/navel piercing heavy.svg'/>`;
+	}
+
+	/* Boob */
+	if (slave.boobs < 300)
+		boobSize = 0;
+	else if (slave.boobs < 500)
+		boobSize = 1;
+	else if (slave.boobs < 800)
+		boobSize = 2;
+	else if (slave.boobs < 1600)
+		boobSize = 3;
+	else if (slave.boobs < 3200)
+		boobSize = 4;
+	else if (slave.boobs < 6400)
+		boobSize = 5;
+	else if (slave.boobs < 12000)
+		boobSize = 6;
+	else
+		boobSize = 7;
+
+	/* Scrotum */
+	if (slave.scrotum > 0) {
+		if (slave.scrotum >= 6)
+			ballSize = 4;
+		else if (slave.scrotum >= 4)
+			ballSize = 3;
+		else if (slave.scrotum >= 3)
+			ballSize = 2;
+		else if (slave.scrotum >= 2)
+			ballSize = 1;
+		else
+			ballSize = 0;
+	}
+
+	/* Penis */
+	if (slave.dick > 0) {
+		if (slave.dick >= 8)
+			penisSize = 6;
+		else if (slave.dick >= 7)
+			penisSize = 5;
+		else if (slave.dick >= 6)
+			penisSize = 4;
+		else if (slave.dick >= 5)
+			penisSize = 3;
+		else if (slave.dick >= 4)
+			penisSize = 2;
+		else if (slave.dick >= 2)
+			penisSize = 1;
+		else
+			penisSize = 0;
+	}
+
+	/* Boob */
+	if (slave.dick > 0) {
+		if (canAchieveErection(slave)) {
+			if (boobSize < 6) {
+				if (wearingLatex === true) {
+					/* normal case: outfit hides boobs */
+					r += `<img class='paperdoll' src=${filePath}/outfit/boob ${boobSize} latex.svg'/>`;
+					if (slave.lactation > 0)
+						r += `<img class='paperdoll' src=${skinFilePath}/boob ${boobSize} areola.svg' style='${skinFilter}'>`;
+				} else {
+					r += `<img class='paperdoll' src=${skinFilePath}/boob ${boobSize}.svg' style='${skinFilter}'>`;
+					r += `<img class='paperdoll' src=${skinFilePath}/boob ${boobSize} areola.svg' style='${skinFilter}'>`;
+				}
+				/* special case: straps are actually dawn over the boobs */
+				if (slave.clothes === "uncomfortable straps")
+					r += `<img class='paperdoll' src=${filePath}/outfit/boob ${boobSize} straps.svg'/>`;
+
+				needBoobs = false;
+			}
+		}
+	}
+	if (slave.vagina > 0) {
+		if (slave.dick > 0) {
+			r += '<div class="highPenis">';
+			if (slave.scrotum > 0) 
+				r += `<img class='paperdoll' src=${skinFilePath}/ball ${ballSize}.svg' style='${skinFilter}'>`;
+			if (canAchieveErection(slave)) {
+				r += `<img class='paperdoll' src=${skinFilePath}/penis ${penisSize}.svg' style='${skinFilter}'>`;
+			} else {
+				r += `<img class='paperdoll' src=${skinFilePath}/flaccid ${penisSize}.svg' style='${skinFilter}'>`;
+				if (slave.chastityPenis === 1)
+					r += `<img class='paperdoll' src=${filePath}/outfit/chastity male fore ${penisSize}.svg'/>`;
+			}
+			r += '</div>';
+		}
+	} else {
+		if (slave.dick > 0) {
+			r += '<div class="lowPenis">';
+			if (slave.scrotum > 0) 
+				r += `<img class='paperdoll' src=${skinFilePath}/ball ${ballSize}.svg' style='${skinFilter}'>`;
+			if (canAchieveErection(slave)) {
+				r += `<img class='paperdoll' src=${skinFilePath}/penis ${penisSize}.svg' style='${skinFilter}'>`;
+			} else {
+				r += `<img class='paperdoll' src=${skinFilePath}/flaccid ${penisSize}.svg' style='${skinFilter}'>`;
+				if (slave.chastityPenis === 1)
+					r += `<img class='paperdoll' src=${filePath}/outfit/chastity male fore ${penisSize}.svg'/>`;
+			}
+			r += '</div>';
+		}
+	}
+	if (needBoobs === true) {
+		if (wearingLatex === true) {
+			r += `<img class='paperdoll' src=${filePath}/outfit/boob ${boobSize} latex.svg'/>`;
+			if (slave.lactation > 0)
+				r += `<img class='paperdoll' src=${skinFilePath}/boob ${boobSize} areola.svg' style='${skinFilter}'>`;
+		} else {
+			r += `<img class='paperdoll' src=${skinFilePath}/boob ${boobSize}.svg' style='${skinFilter}'>`;
+			r += `<img class='paperdoll' src=${skinFilePath}/boob ${boobSize} areola.svg' style='${skinFilter}'>`;
+		}
+		/* special case: straps are actually dawn over the boobs */
+		if (slave.clothes === "uncomfortable straps")
+			r += `<img class='paperdoll' src=${filePath}/outfit/boob ${boobSize} straps.svg'/>`;
+	}
+
+	/* piercings */
+	if (slave.nipplesPiercing === 1)
+		r += `<img class='paperdoll' src=${filePath}/body/addon/boob ${boobSize} piercing.svg'/>`;
+	else if (slave.nipplesPiercing === 2)
+		r += `<img class='paperdoll' src=${filePath}/body/addon/boob ${boobSize} piercing heavy.svg'/>`;
+
+	if (slave.areolaePiercing === 1)
+		r += `<img class='paperdoll' src=${filePath}/body/addon/boob ${boobSize} areola piercing.svg'/>`;
+
+	/* clavicle */
+	r += `<img class='paperdoll' src=${filePath}/body/addon/clavicle.svg'/>`;
+
+	/* Hair Foreground */
+	if (slave.hStyle !== "shaved" && slave.fuckdoll === 0)
+		r += `<img class='paperdoll' src=${filePath}/hair/${hairStyle} front.svg' style='${hairFilter}'/>`;
+
+	return r;
+};
diff --git a/src/gui/svgFilters.tw b/src/gui/svgFilters.tw
index c6700a29224dfa3783dc0cbae9cd2f124a9355e4..42e0b12951599b547d7562aeff5ca1a93c23ba12 100644
--- a/src/gui/svgFilters.tw
+++ b/src/gui/svgFilters.tw
@@ -1,5 +1,5 @@
-:: SVG filters [widget]
-<<widget "SVGFilters">>
+:: SVG filters
+
 <html>
 <svg class="defs-only" style="width: 0; height: 0; position: absolute;">
 	<filter id="skin-black" color-interpolation-filters="sRGB">
@@ -214,4 +214,3 @@
 	</filter>
 </svg>
 </html>
-<</widget>>
\ No newline at end of file
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index beb5c34920ca91dff7363e8ab887b39159430892..28e29af6d747d17c13245c9e5ba9cc86c0467994 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -601,7 +601,7 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		if (typeof slave.customTitleLisp !== "string") {
 			slave.customTitleLisp = "";
 		}
-		if (typeof slave.customImage !== "string") {
+		if (typeof slave.customImage !== "string" || slave.customImage === "") {
 			slave.customImage = 0;
 		}
 	}
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 87fc308ecc7c2c1821f0aac1a4e39f3ba27cb306..2997056c24cd1faaa8dce4c845c819729d29578d 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -18779,6 +18779,32 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 				<</if>>
 				$He loves being on top, even if $he's the one who's getting fucked. $He rides you happily,
 				<<set _fucked = 1>>
+			<<case "sadist">>
+				turns around and hesitantly sits on <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>>, letting
+				<<if canDoVaginal($activeSlave) && ($activeSlave.vagina > 0)>>
+					it slide into $his cunt.
+					<<= VaginalVCheck()>>
+				<<elseif canDoAnal($activeSlave) && ($activeSlave.anus > 0)>>
+					it slide up $his butt.
+					<<= AnalVCheck()>>
+				<<else>>
+					it slide between $his thighs.
+				<</if>>
+				$He prefers to be rough, but settles for just directing how $he gets used. $He rides you cautiously,
+				<<set _fucked = 1>>
+			<<case "masochist">>
+				turns around and carefully perches $himself on <<if $PC.dick == 1>>your cock<<else>>the phallus<</if>>,
+				<<if canDoVaginal($activeSlave) && ($activeSlave.vagina > 0)>>
+					letting $his weight slide it inside $his wet pussy at an uncomfortable angle.
+					<<= VaginalVCheck()>>
+				<<elseif canDoAnal($activeSlave) && ($activeSlave.anus > 0)>>
+					letting $his weight push it up $his asshole at an uncomfortable angle.
+					<<= AnalVCheck()>>
+				<<else>>
+					putting it between $his thighs at an uncomfortable angle.
+				<</if>>
+				$He does $his best to please you while making sex as unpleasant as $he can for $himself. $He pays close attention to your comfort versus $his own,
+				<<set _fucked = 1>>
 			<</switch>>
 		<</if>>
 		<<if _fucked == 1>>
diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw
index beef4bed5b85befbdaf91a7207cba441195e1940..579e73cd46e8ed961fdb47b7f56ab3158bbfe944 100644
--- a/src/utility/descriptionWidgetsStyle.tw
+++ b/src/utility/descriptionWidgetsStyle.tw
@@ -5719,6 +5719,13 @@ $His
 		<<else>>
 			is made to be easily liftable for access to $his anus.
 		<</if>>
+	<<case "a nice maid outfit">>
+		As conservative as $his dress is,
+		<<if ($activeSlave.chastityAnus)>>
+			$his anal chastity accessory still hides under it.
+		<<else>>
+			$his anus is still bare beneath it.
+		<</if>>
 	<<case "a kimono">>
 		As demure as the kimono is,
 		<<if ($activeSlave.chastityAnus)>>