diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm
index c4149326e2..78e1d1cbdc 100644
--- a/code/modules/vore/eating/belly_obj_vr.dm
+++ b/code/modules/vore/eating/belly_obj_vr.dm
@@ -294,10 +294,21 @@
if(isliving(thing))
var/mob/living/M = thing
M.updateVRPanel()
+ var/raw_desc //Let's use this to avoid needing to write the reformat code twice
if(absorbed_desc && M.absorbed)
- to_chat(M, "[absorbed_desc]")
+ raw_desc = absorbed_desc
else if(desc)
- to_chat(M, "[desc]")
+ raw_desc = desc
+
+ //Was there a description text? If so, it's time to format it!
+ if(raw_desc)
+ //Replace placeholder vars
+ var/formatted_desc
+ formatted_desc = replacetext(raw_desc, "%belly", lowertext(name)) //replace with this belly's name
+ formatted_desc = replacetext(formatted_desc, "%pred", owner) //replace with this belly's owner
+ formatted_desc = replacetext(formatted_desc, "%prey", M) //replace with whatever mob entered into this belly
+ to_chat(M, "[formatted_desc]")
+
var/taste
if(can_taste && (taste = M.get_taste_message(FALSE)))
to_chat(owner, "[M] tastes of [taste].")
@@ -758,7 +769,12 @@
if(absorbed_desc)
- to_chat(M, "[absorbed_desc]")
+ //Replace placeholder vars
+ var/formatted_abs_desc
+ formatted_abs_desc = replacetext(absorbed_desc, "%belly", lowertext(name)) //replace with this belly's name
+ formatted_abs_desc = replacetext(formatted_abs_desc, "%pred", owner) //replace with this belly's owner
+ formatted_abs_desc = replacetext(formatted_abs_desc, "%prey", M) //replace with whatever mob entered into this belly
+ to_chat(M, "[formatted_abs_desc]")
//Update owner
owner.updateVRPanel()
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index 8123eba421..f7e3f270f7 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -118,6 +118,15 @@
else if(inside_belly.desc)
inside_desc = inside_belly.desc
+ //I'd rather not copy-paste this code twice into the previous if-statement
+ //Technically we could just format the text anyway, but IDK how demanding unnecessary text-replacements are
+ if((host.absorbed && inside_belly.absorbed_desc) || (inside_belly.desc))
+ var/formatted_desc
+ formatted_desc = replacetext(inside_desc, "%belly", lowertext(inside_belly.name)) //replace with this belly's name
+ formatted_desc = replacetext(formatted_desc, "%pred", pred) //replace with the pred of this belly
+ formatted_desc = replacetext(formatted_desc, "%prey", host) //replace with whoever's reading this
+ inside_desc = formatted_desc
+
inside = list(
"absorbed" = host.absorbed,
"belly_name" = inside_belly.name,
@@ -812,7 +821,7 @@
host.vore_selected.egg_type = new_egg_type
. = TRUE
if("b_desc")
- var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.desc) as message|null)
+ var/new_desc = html_encode(input(usr,"Belly Description, '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name. ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.desc) as message|null)
if(new_desc)
new_desc = readd_quotes(new_desc)
@@ -822,7 +831,7 @@
host.vore_selected.desc = new_desc
. = TRUE
if("b_absorbed_desc")
- var/new_desc = html_encode(input(usr,"Belly Description for absorbed prey ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.absorbed_desc) as message|null)
+ var/new_desc = html_encode(input(usr,"Belly Description for absorbed prey, '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name. ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.absorbed_desc) as message|null)
if(new_desc)
new_desc = readd_quotes(new_desc)