diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm
index 3578d18b99..f497e59897 100644
--- a/code/modules/clothing/under/miscellaneous_vr.dm
+++ b/code/modules/clothing/under/miscellaneous_vr.dm
@@ -1,3 +1,21 @@
+/obj/item/clothing/var/hides_bulges = FALSE // OwO wats this?
+
+/mob/living/carbon/human/proc/show_pudge()
+ //A uniform could hide it.
+ if(istype(w_uniform,/obj/item/clothing))
+ var/obj/item/clothing/under = w_uniform
+ if(under.hides_bulges)
+ return FALSE
+
+ //We return as soon as we find one, no need for 'else' really.
+ if(istype(wear_suit,/obj/item/clothing))
+ var/obj/item/clothing/suit = wear_suit
+ if(suit.hides_bulges)
+ return FALSE
+
+
+ return TRUE
+
/obj/item/clothing/under/permit
name = "public nudity permit"
desc = "This permit entitles the bearer to conduct their duties without a uniform. Normally issued to furred crewmembers or those with nothing to hide."
@@ -9,3 +27,81 @@
item_state = "golem" //This is dumb and hacky but was here when I got here.
worn_state = "golem" //It's basically just a coincidentally black iconstate in the file.
+
+/obj/item/clothing/under/bluespace
+ name = "bluespace jumpsuit"
+ icon_state = "lingchameleon"
+ item_icons = list(
+ slot_l_hand_str = 'icons/mob/items/lefthand_uniforms.dmi',
+ slot_r_hand_str = 'icons/mob/items/righthand_uniforms.dmi',
+ )
+ item_state = "lingchameleon"
+ worn_state = "lingchameleon"
+ desc = "Do you feel like warping spacetime today? Because it seems like that's on the agenda, now. \
+ Allows one to resize themselves at will, and conceals their true weight."
+ hides_bulges = TRUE
+ var/original_size
+
+/obj/item/clothing/under/bluespace/verb/resize()
+ set name = "Adjust Size"
+ set category = "Object"
+ set src in usr
+ bluespace_size(usr)
+ ..()
+
+/obj/item/clothing/under/bluespace/proc/bluespace_size(mob/usr as mob)
+ if (!ishuman(usr))
+ return
+
+ var/mob/living/carbon/human/H = usr
+
+ if (H.stat || H.restrained())
+ return
+
+ if (src != H.w_uniform)
+ to_chat(H,"You must be WEARING the uniform to use it for that...")
+ return
+
+ var/choice = alert(H,"Change which way?","Mass Alteration","Size Up","Cancel","Size Down")
+ if(choice == "Cancel")
+ return FALSE
+
+ if(choice == "Size Up")
+ switch(H.size_multiplier)
+ if(RESIZE_BIG to RESIZE_HUGE)
+ H.resize(RESIZE_HUGE)
+ if(RESIZE_NORMAL to RESIZE_BIG)
+ H.resize(RESIZE_BIG)
+ if(RESIZE_SMALL to RESIZE_NORMAL)
+ H.resize(RESIZE_NORMAL)
+ if((0 - INFINITY) to RESIZE_TINY)
+ H.resize(RESIZE_SMALL)
+
+ else if(choice == "Size Down")
+ switch(H.size_multiplier)
+ if(RESIZE_HUGE to INFINITY)
+ H.resize(RESIZE_BIG)
+ if(RESIZE_BIG to RESIZE_HUGE)
+ H.resize(RESIZE_NORMAL)
+ if(RESIZE_NORMAL to RESIZE_BIG)
+ H.resize(RESIZE_SMALL)
+ if((0 - INFINITY) to RESIZE_NORMAL)
+ H.resize(RESIZE_TINY)
+
+ H.visible_message("The space around [H] distorts as they change size!","The space around you distorts as you change size!")
+ H.update_icons()
+
+/obj/item/clothing/under/bluespace/mob_can_equip(M as mob, slot, disable_warning = 0)
+ . = ..()
+ if(. && ishuman(M)) //Looks like we're being put on after all.
+ var/mob/living/carbon/human/H = M
+ original_size = H.size_multiplier
+
+/obj/item/clothing/under/bluespace/mob_can_unequip(mob/M, slot, disable_warning = 0)
+ . = ..()
+ if(. && ishuman(M))
+ var/mob/living/carbon/human/H = M
+ H.resize(original_size)
+ H.update_icons()
+ original_size = null
+ H.visible_message("The space around [H] distorts as they return to their original size!","The space around you distorts as you return to your original size!")
diff --git a/code/modules/mob/living/carbon/human/examine_vr.dm b/code/modules/mob/living/carbon/human/examine_vr.dm
index a9b6390782..a53c543629 100644
--- a/code/modules/mob/living/carbon/human/examine_vr.dm
+++ b/code/modules/mob/living/carbon/human/examine_vr.dm
@@ -1,4 +1,6 @@
/mob/living/carbon/human/proc/examine_weight()
+ if(!show_pudge()) //Some clothing or equipment can hide this.
+ return ""
var/message = ""
var/weight_examine = round(weight)
var/t_He = "It" //capitalised for use at the start of each line.
@@ -58,6 +60,8 @@
return message //Credit to Aronai for helping me actually get this working!
/mob/living/carbon/human/proc/examine_nutrition()
+ if(!show_pudge()) //Some clothing or equipment can hide this.
+ return ""
var/message = ""
var/nutrition_examine = round(nutrition)
var/t_He = "It" //capitalised for use at the start of each line.
@@ -104,6 +108,9 @@
return message
/mob/living/carbon/human/proc/examine_bellies()
+ if(!show_pudge()) //Some clothing or equipment can hide this.
+ return ""
+
var/message = ""
for (var/I in src.vore_organs)
diff --git a/code/modules/research/designs_vr.dm b/code/modules/research/designs_vr.dm
index 64ed9b5d30..2d6b1c0351 100644
--- a/code/modules/research/designs_vr.dm
+++ b/code/modules/research/designs_vr.dm
@@ -29,6 +29,14 @@
build_path = /obj/item/weapon/gun/energy/sizegun
sort_string = "TAAAB"
+/datum/design/item/bluespace_jumpsuit
+ name = "Bluespace jumpsuit"
+ id = "bsjumpsuit"
+ req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 3, TECH_POWER = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ build_path = /obj/item/clothing/under/bluespace
+ sort_string = "TAAAC"
+
/datum/design/item/item/pressureinterlock
name = "APP pressure interlock"
id = "pressureinterlock"
diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm
index d496fb46fb..a143648793 100644
--- a/code/modules/vore/resizing/resize_vr.dm
+++ b/code/modules/vore/resizing/resize_vr.dm
@@ -79,6 +79,8 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2
/mob/living/carbon/human/dummy/mannequin/resize(var/new_size)
size_multiplier = new_size
+/* Removed due to too many 'magic' characters having resizing 100% of the time.
+ Replaced with bluespace jumpsuit, and mass altering NIFSoft.
/**
* Verb proc for a command that lets players change their size OOCly.
* Ace was here! Redid this a little so we'd use math for shrinking characters. This is the old code.
@@ -104,6 +106,8 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2
/hook/living_new/proc/resize_setup(mob/living/H)
H.verbs += /mob/living/proc/set_size
return 1
+*/
+
/**
* Attempt to scoop up this mob up into H's hands, if the size difference is large enough.