diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm
index c6d78ed734..9b542b7c7f 100644
--- a/code/modules/vore/eating/belly_obj_vr.dm
+++ b/code/modules/vore/eating/belly_obj_vr.dm
@@ -49,6 +49,7 @@
var/egg_type = "Egg" // Default egg type and path.
var/egg_path = /obj/item/weapon/storage/vore_egg
var/egg_name = null // CHOMPAdd. Custom egg name
+ var/egg_size = 0 // CHOMPAdd. Custom egg size
var/list/list/emote_lists = list() // Idle emotes that happen on their own, depending on the bellymode. Contains lists of strings indexed by bellymode
var/emote_time = 60 // How long between stomach emotes at prey (in seconds)
var/emote_active = TRUE // Are we even giving emotes out at all or not?
@@ -439,6 +440,7 @@
"sound_volume",
"speedy_mob_processing",
"egg_name",
+ "egg_size",
"recycling",
"storing_nutrition",
"is_feedable",
@@ -2489,6 +2491,7 @@
dupe.slow_brutal = slow_brutal
dupe.sound_volume = sound_volume
dupe.egg_name = egg_name
+ dupe.egg_size = egg_size
dupe.recycling = recycling
dupe.storing_nutrition = storing_nutrition
dupe.is_feedable = is_feedable
diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm
index 3756793e4f..e0c8361d95 100644
--- a/code/modules/vore/eating/bellymodes_datum_vr.dm
+++ b/code/modules/vore/eating/bellymodes_datum_vr.dm
@@ -276,8 +276,12 @@ GLOBAL_LIST_INIT(digest_modes, list())
B.ownegg.w_class = I.w_class
B.ownegg.max_storage_space = B.ownegg.w_class
I.forceMove(B.ownegg)
- B.ownegg.icon_scale_x = 0.2 * B.ownegg.w_class
- B.ownegg.icon_scale_y = 0.2 * B.ownegg.w_class
+ if(B.egg_size)
+ B.ownegg.icon_scale_x = B.egg_size
+ B.ownegg.icon_scale_y = B.egg_size
+ else
+ B.ownegg.icon_scale_x = 0.2 * B.ownegg.w_class
+ B.ownegg.icon_scale_y = 0.2 * B.ownegg.w_class
B.ownegg.update_transform()
egg_contents -= I
B.ownegg = null
@@ -305,8 +309,12 @@ GLOBAL_LIST_INIT(digest_modes, list())
B.ownegg.calibrate_size()
B.ownegg.orient2hud()
B.ownegg.w_class = clamp(B.ownegg.w_class * 0.25, 1, 8) //A total w_class of 16 will result in a backpack sized egg.
- B.ownegg.icon_scale_x = clamp(0.25 * B.ownegg.w_class, 0.25, scale_clamp)
- B.ownegg.icon_scale_y = clamp(0.25 * B.ownegg.w_class, 0.25, scale_clamp)
+ if(B.egg_size)
+ B.ownegg.icon_scale_x = B.egg_size
+ B.ownegg.icon_scale_y = B.egg_size
+ else
+ B.ownegg.icon_scale_x = clamp(0.25 * B.ownegg.w_class, 0.25, scale_clamp)
+ B.ownegg.icon_scale_y = clamp(0.25 * B.ownegg.w_class, 0.25, scale_clamp)
B.ownegg.update_transform()
if(B.ownegg.w_class > 4)
B.ownegg.slowdown = 4 //CHOMPEdit End
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index 1fb24cd076..302e906f46 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -226,6 +226,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
"is_feedable" = selected.is_feedable, //CHOMPAdd
"egg_type" = selected.egg_type,
"egg_name" = selected.egg_name, //CHOMPAdd
+ "egg_size" = selected.egg_size, //CHOMPAdd
"recycling" = selected.recycling, //CHOMPAdd
"storing_nutrition" = selected.storing_nutrition, //CHOMPAdd
"entrance_logs" = selected.entrance_logs, //CHOMPAdd
@@ -321,6 +322,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
selected_list["egg_type"] = selected.egg_type
selected_list["egg_name"] = selected.egg_name //CHOMPAdd
+ selected_list["egg_size"] = selected.egg_size //CHOMPAdd
selected_list["recycling"] = selected.recycling //CHOMPAdd
selected_list["storing_nutrition"] = selected.storing_nutrition //CHOMPAdd
selected_list["item_digest_logs"] = selected.item_digest_logs //CHOMPAdd
@@ -1080,6 +1082,13 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
if(length(new_egg_name) >= BELLIES_NAME_MIN && length(new_egg_name) <= BELLIES_NAME_MAX)
new_belly.egg_name = new_egg_name
+ if(istext(belly_data["egg_size"]))
+ var/new_egg_size = belly_data["egg_size"]
+ if(new_egg_size == 0)
+ new_belly.egg_size = 0
+ else
+ new_belly.egg_size = CLAMP(new_egg_size,0.25,2)
+
if(isnum(belly_data["recycling"]))
var/new_recycling = belly_data["recycling"]
if(new_recycling == 0)
@@ -2623,6 +2632,19 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
return FALSE
host.vore_selected.egg_name = new_egg_name
. = TRUE
+ if("b_egg_size")
+ var/new_egg_size = tgui_input_number(usr,"Custom Egg Size 25% to 200% (0 for automatic item depending egg size from 25% to 100%)","New Egg Size", 0, 200)
+ if(new_egg_size == null)
+ return FALSE
+ if(new_egg_size == 0) //Disable.
+ host.vore_selected.egg_size = 0
+ to_chat(user,"Eggs will automatically calculate size depending on contents.")
+ else if (!ISINRANGE(new_egg_size,25,200))
+ host.vore_selected.egg_size = 0.25 //Set it to the default.
+ to_chat(user,"Invalid size.")
+ else if(new_egg_size)
+ host.vore_selected.egg_size = (new_egg_size/100)
+ . = TRUE
if("b_recycling")
host.vore_selected.recycling = !host.vore_selected.recycling
. = TRUE
diff --git a/modular_chomp/code/modules/vore/eating/exportpanel_ch.dm b/modular_chomp/code/modules/vore/eating/exportpanel_ch.dm
index 2d900b68e5..52a8ee350d 100644
--- a/modular_chomp/code/modules/vore/eating/exportpanel_ch.dm
+++ b/modular_chomp/code/modules/vore/eating/exportpanel_ch.dm
@@ -275,6 +275,7 @@
belly_data["vorespawn_blacklist"] = B.vorespawn_blacklist
belly_data["egg_type"] = B.egg_type
belly_data["egg_name"] = B.egg_name
+ belly_data["egg_size"] = B.egg_size
belly_data["selective_preference"] = B.selective_preference
belly_data["recycling"] = B.recycling
belly_data["storing_nutrition"] = B.storing_nutrition
diff --git a/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSelectedBellyOptions.tsx b/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSelectedBellyOptions.tsx
index 097455b886..6c0dc78e80 100644
--- a/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSelectedBellyOptions.tsx
+++ b/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSelectedBellyOptions.tsx
@@ -27,6 +27,7 @@ export const VoreSelectedBellyOptions = (props) => {
contaminate_color,
egg_type,
egg_name,
+ egg_size,
recycling,
storing_nutrition,
entrance_logs,
@@ -233,6 +234,12 @@ export const VoreSelectedBellyOptions = (props) => {
content={egg_name ? egg_name : 'Default'}
/>
+
+