diff --git a/game/02-CSS/base.css b/game/02-CSS/base.css
index aef516fcef38939ccb1ca3988d401ae5617a3289..b0d451691b31f541818f555055cc83416c3aa827 100644
--- a/game/02-CSS/base.css
+++ b/game/02-CSS/base.css
@@ -510,7 +510,7 @@ body.has-images #story-caption .storyCaptionDivExtended {
 }
 
 .shopImg {
-	height: 128px;
+	height: 192px;
 	width: 128px;
 	overflow: hidden;
 	background-color: #222;
@@ -518,13 +518,14 @@ body.has-images #story-caption .storyCaptionDivExtended {
 
 .shopImg > * {
 	position: absolute;
-	height: 128px;
+	height: 192px;
+	left:-32px;
 	overflow: hidden;
 }
 
 .hideImageOverflow {
 	overflow: hidden;
-	height: 128px;
+	height: 160px;
 	width: 128px;
 	position: relative;
 }
diff --git a/game/base-clothing/clothing-under-upper.twee b/game/base-clothing/clothing-under-upper.twee
index 43421a549eef281b33663c9c4674f514bb6395b8..5f99cf72faf0e93b0232eb706d4fe8150d730ee5 100644
--- a/game/base-clothing/clothing-under-upper.twee
+++ b/game/base-clothing/clothing-under-upper.twee
@@ -393,7 +393,8 @@
 	cursed: 0,
 	location: 0,
 	iconFile: "Catgirl bra.png",
-	accIcon: 0
+	accIcon: 0,
+	mainImage: 0,
 },
 
 	{index: 10,
diff --git a/game/base-combat/init.twee b/game/base-combat/init.twee
index aa03ad711f5113e5412fc87472789034f5eda505..18e48ea212cad029d694fa8e84b4dd6be349f191 100644
--- a/game/base-combat/init.twee
+++ b/game/base-combat/init.twee
@@ -36,6 +36,12 @@
 
 <<set $combattype to "gang">>
 
+<<if $NPCList[0].monster is "monster">>
+	<<set $monster to 1>>
+<<else>>
+	<<set $monster to 0>>
+<</if>>
+
 <<combatinit>>
 <</nobr>><</widget>>
 
diff --git a/game/base-combat/missionary-images.twee b/game/base-combat/missionary-images.twee
index c2cf3d15b4b740591dc82dc4937582b44f7d5b69..0c8007f6371ec35a42ea16211ce6d6b413086c3c 100644
--- a/game/base-combat/missionary-images.twee
+++ b/game/base-combat/missionary-images.twee
@@ -481,7 +481,7 @@ and _stanceCheck isnot "top">>
 <<elseif $rightarm is "grappled">>
 	<img @class="'layer-sexarmsbound anim-doggy-4f-'+_animspeed" @src="_img.activearmsbound" @style="'filter: '+_filters.body">
 <<elseif $rightarmstate is "tentacle">>
-<<elseif $enemytype is "beast" and $monster isnot 1 and _stanceCheck is "top" or true>>
+<<elseif $enemytype is "beast" and $monster isnot 1 and _stanceCheck is "top">>
 	<img @class="'layer-sexaboveclothes anim-doggy-4f-'+_animspeed" @src="_img.activebaserightarmstroke" @style="'filter: '+_filters.body">
 <<else>>
 	<img @class="'layer-sexaboveclothes anim-doggy-4f-'+_animspeed" @src="_img.activebaserightarm" @style="'filter: '+_filters.body">
diff --git a/game/base-combat/struggle.twee b/game/base-combat/struggle.twee
index 64ac5d35e34e19a99350c60d052ec52c30bec5f2..05d7e46f73f588b5fb33fa5ebe2a4e533d3f2691 100644
--- a/game/base-combat/struggle.twee
+++ b/game/base-combat/struggle.twee
@@ -1443,6 +1443,14 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>>
 		The <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> pushes down your throat. <<if $underwater isnot 1>><span class="purple">You can't breathe!</span><</if>><<neutral 5>>
 	<<case 7>>
 		The <<print $struggle.mouth.creature>> <span class="pink">shudders as it begins to pump a sweet fluid down your throat.</span><<neutral 5>><<struggle_fluid mouth>><<purity -1>><<internalejac>><<set $mouthgoo += 1>><<oralejacstat>><<ejacstat>>
+	<<case 13>>
+		<<impregnate "Lurker" 400>><<fertilise>>
+		<<if $struggle.creature is "lurker" and _impreg is true>>
+			The <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> <span class="red">expands again</span>, but the extra pressure disappears quickly. It feels like it left something behind. <<neutral 5>><<struggle_fluid mouth>><<purity -1>><<internalejac>><<set $mouthgoo += 1>>
+			<<set _impreg to false>>
+		<<else>>
+			The <<print $struggle.mouth.creature>> pumps a sweet fluid down your throat.<<neutral 5>><<struggle_fluid mouth>><<purity -1>><<internalejac>><<set $mouthgoo += 1>>
+		<</if>>
 	<<case 14>>
 		The <<print $struggle.mouth.creature>> shudders, <span class="blue">and withdraws its <<struggle_appendage mouth>> from your throat.</span> It leaps from your face.<<neutral 5>><<struggle_fluid mouth>>
 		<<set $mouthuse to 0>>
@@ -1594,6 +1602,14 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>>
 		The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> begins to thrust into your <<bottom>>.<<neutral 5>>
 	<<case 7>>
 		The <<print $struggle.anus.creature>> <span class="pink">shudders as it pumps a warm fluid into your <<bottom>>.</span><<neutral 5>><<struggle_fluid anus>><<purity -1>><<internalejac>><<set $anusgoo += 1>><<analejacstat>><<ejacstat>>
+	<<case 13>>
+		<<impregnate $struggle.anus.creature 50>>
+		<<if _impreg is true>>
+			The <<print $struggle.anus.creature>>'s <<struggle_appendage mouth>> <span class="red">expands again</span>, but the extra pressure disappears quickly. It feels like it left something behind.<<neutral 5>><<set $anusgoo += 1>><<struggle_fluid anus>><<purity -1>><<internalejac>><<set $anusgoo += 1>>
+			<<set _impreg to false>>
+		<<else>>
+			The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> thrusts into your <<bottom>>.<<neutral 5>><<set $anusgoo += 1>><<struggle_fluid anus>><<purity -1>><<internalejac>><<set $anusgoo += 1>>
+		<</if>>
 	<<case 14>>
 		The <<print $struggle.anus.creature>> shudders <span class="blue">and withdraws its <<struggle_appendage anus>>,</span> leaping from your <<bottom>><<neutral 5>><<struggle_fluid anus>>
 		<<set $anususe to 0>>
diff --git a/game/base-combat/swarms.twee b/game/base-combat/swarms.twee
index 2d1ff0c30ad05afae0e14733aa1cab28544d772c..303c6610ecd5ca31ff933ca79a33655e212b1bc8 100644
--- a/game/base-combat/swarms.twee
+++ b/game/base-combat/swarms.twee
@@ -392,8 +392,8 @@
 
 <<if _swarmamounts.butt[1] gte 1>>
 	<<neutral 10>><<impregnate $swarm["type"] _swarmamounts.butt[1]>>
-	They writhe inside your lower intestine<<if $penisexist is 1>>, blindly teasing your prostate<</if>><<if $impreg is true>>, and <span class="red">attempt to move further inside you</span><</if>>.
-	<<set $impreg to false>>
+	They writhe inside your lower intestine<<if $penisexist is 1>>, blindly teasing your prostate<</if>><<if _impreg is true>>, and <span class="red">attempt to move further inside you</span><</if>>.
+	<<set _impreg to false>>
 	<<arousal `_swarmamounts.butt[1] * 20`>>
 <</if>>
 
diff --git a/game/base-system/creatures/pregnancy.twee b/game/base-system/creatures/pregnancy.twee
index 6c9a443974a40d2df389e1e743f2256f8c117908..9f21cd581e18cc3c9c186b664c8d56c76b757f32 100644
--- a/game/base-system/creatures/pregnancy.twee
+++ b/game/base-system/creatures/pregnancy.twee
@@ -38,6 +38,14 @@
 						<<if _creatureType is "Tentacle">>
 							<<set _egg.stats.speed to clone(_egg.stats.speed * 0.9)>>
 						<</if>>
+						<<if _creatureType is "Lurker">>
+							<<run _egg.stats.growth += 14>>
+							<<for _l to 0; _l lt 3; _l++>>
+								<<if _egg.stats.speed gte 100>>
+									<<run _egg.stats.speed -= 50>>
+								<</if>>
+							<</for>>
+						<</if>>
 					<</if>>
 
 					<<set _genderCheck to Math.random()>>
@@ -56,7 +64,7 @@
 
 					<<if $args[2] is undefined>>
 						<<set _pregnancy.fertile to true>>
-						<<set $impreg to true>>
+						<<set _impreg to true>>
 					<</if>>
 					<<break>>
 				<</if>>
diff --git a/game/base-system/named-npcs.twee b/game/base-system/named-npcs.twee
index cbcb485fd673bbdac4cbc7d4ecfea8bfbe9d5aad..544befc14a80949bbf537e81ee236ba2d1adb0b2 100644
--- a/game/base-system/named-npcs.twee
+++ b/game/base-system/named-npcs.twee
@@ -456,6 +456,12 @@ Zohar
 
 <<if $enemyno lt 6>><<set $enemyno += 1>><</if>>
 
+<<if $NPCList[0].monster is "monster">>
+	<<set $monster to 1>>
+<<else>>
+	<<set $monster to 0>>
+<</if>>
+
 <</nobr>><</widget>>
 
 <<widget "npcrelationship">><<nobr>>
diff --git a/game/overworld-town/loc-cafe/main.twee b/game/overworld-town/loc-cafe/main.twee
index 9bd560b3d6c6372684206306db36ad058769fd40..4d811f9e049fd197699ccffad33a735ae617827d 100644
--- a/game/overworld-town/loc-cafe/main.twee
+++ b/game/overworld-town/loc-cafe/main.twee
@@ -1559,7 +1559,7 @@ You take a seat outside and order a fruit salad. It arrives promptly; fresh stra
 		You close your legs tightly, not wanting to give the pervert any more of a view than you already have.
 		<<stress +5>><<gstress>>
 		<br><br>
-		<<link [[Ignore the pervert and finish your food|Ocean Breeze]]>><</link>>
+		<<link [[Ignore the pervert and finish your food|Ocean Breeze]]>><<endevent>><</link>>
 		<br>
 	<</if>>
 
diff --git a/game/overworld-town/loc-shop/widgets.twee b/game/overworld-town/loc-shop/widgets.twee
index 4404d0dde6edf3c656af785942f3518f44465496..9adb157b212b5307a4318b94a4c50fd77b644902 100644
--- a/game/overworld-town/loc-shop/widgets.twee
+++ b/game/overworld-town/loc-shop/widgets.twee
@@ -675,7 +675,8 @@ Name: <input id="colorName" type="text" value="Custom" onfocus="SugarCube.State.
 /*Args: slot, itemName, outfit*/
 <<widget "shopFullImage">><<nobr>>
 <<if $args[0] and $args[1] isnot undefined>>
-	<a value="Refresh" onclick="Wikifier.wikifyEval('<<replace #shopFullImage>><<shopFullImage SugarCube.State.temporary.shopFullImageVar[0] SugarCube.State.temporary.shopFullImageVar[1]>><</replace>>');">Refresh</a>
+	<<set _shopFullImageVar to [$args[0], $args[1]]>>
+	<a value="Refresh" onclick="Wikifier.wikifyEval('<<replace #shopFullImage>><<shopFullImage $clothingShopSlot $clothes_choice>><</replace>>');">Refresh</a>
 	<br>
 	<div class="hideImageOverflow">
 		<div class="shopImg">
@@ -689,12 +690,32 @@ Name: <input id="colorName" type="text" value="Custom" onfocus="SugarCube.State.
 
 <<widget "shopFullImageSlot">><<nobr>>
 <<if $args[0] and $args[1]>>
-	<<run console.log($args[0], $args[1])>>
 	<<set $_slot to $args[0]>>
 	<<set $_item to $args[1]>>
 	<<if setup.clothes[$_slot][$_item].mainImage isnot 0>>
 		<<shopFullImagePart $_slot $_item "full" $colouraction _customPrimary>>
 	<</if>>
+	<<if setup.clothes[$_slot][$_item].breast_img is 1>>
+		<<switch $breastsize>>
+			<<case 12>>
+				<<set _breastSize to 6>>
+			<<case 8 9 10 11>>
+				<<set _breastSize to 5>>
+			<<case 6 7>>
+				<<set _breastSize to 4>>
+			<<case 4 5>>
+				<<set _breastSize to 3>>
+			<<case 3>>
+				<<set _breastSize to 2>>
+			<<case 0 1 2>>
+				<<set _breastSize to 1>>
+		<</switch>>
+		<<shopFullImagePart $_slot $_item `(_breastSize - 1)` $colouraction _customPrimary>>
+	<</if>>
+	<<if setup.clothes[$_slot][$_item].sleeve_img is 1>>
+		<<shopFullImagePart $_slot $_item "right" $colouraction _customPrimary>>
+		<<shopFullImagePart $_slot $_item "left" $colouraction _customPrimary>>
+	<</if>>
 	<<if setup.clothes[$_slot][$_item].leftImage is 1>>
 		<<shopFullImagePart $_slot $_item "left" $colouraction _customPrimary>>
 	<</if>>
@@ -705,11 +726,9 @@ Name: <input id="colorName" type="text" value="Custom" onfocus="SugarCube.State.
 		<<shopFullImagePart $_slot $_item "acc" $accessorycolouraction _customSecondary>>
 	<</if>>
 	<<set $_outfitPrimary to setup.clothes[$_slot][$_item].outfitPrimary>>
-	<<run console.log($_outfitPrimary)>>
 	<<if $_outfitPrimary isnot undefined>>
 		<<for $_label, $_value range $_outfitPrimary>>
 			<<for $_i to 0; $_i < setup.clothes[$_label].length; $_i++>>
-				<<run console.log(setup.clothes[$_label][$_i].name)>>
 				<<if setup.clothes[$_label][$_i].name is $_value>>
 					<<shopFullImageSlot $_label $_i>>
 					<<break>>