diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm
index ba1d2cd566..a34ad9a7be 100644
--- a/code/modules/vore/eating/belly_obj_vr.dm
+++ b/code/modules/vore/eating/belly_obj_vr.dm
@@ -16,6 +16,7 @@
desc = "It's a belly! You're in it!" // Flavor text description of inside sight/sound/smells/feels.
var/vore_sound = "Gulp" // Sound when ingesting someone
var/vore_verb = "ingest" // Verb for eating with this in messages
+ var/release_verb = "expels" // Verb for releasing something from a stomach
var/human_prey_swallow_time = 100 // Time in deciseconds to swallow /mob/living/carbon/human
var/nonhuman_prey_swallow_time = 30 // Time in deciseconds to swallow anything else
var/nutrition_percent = 100 // Nutritional percentage per tick in digestion mode
@@ -30,7 +31,7 @@
var/escapechance = 0 // % Chance of prey beginning to escape if prey struggles.
var/transferchance = 0 // % Chance of prey being trasnsfered, goes from 0-100%
var/transferchance_secondary = 0 // % Chance of prey being transfered to transferchance_secondary, also goes 0-100%
- var/save_digest_mode = TRUE // Whether this belly's digest mode persists across rounds
+ var/save_digest_mode = TRUE // Whether this belly's digest mode persists across rounds
var/can_taste = FALSE // If this belly prints the flavor of prey when it eats someone.
var/bulge_size = 0.25 // The minimum size the prey has to be in order to show up on examine.
var/display_absorbed_examine = FALSE // Do we display absorption examine messages for this belly at all?
@@ -169,6 +170,7 @@
"absorbed_desc",
"vore_sound",
"vore_verb",
+ "release_verb",
"human_prey_swallow_time",
"nonhuman_prey_swallow_time",
"emote_time",
@@ -403,7 +405,7 @@
//Print notifications/sound if necessary
if(!silent && count)
- owner.visible_message("[owner] expels everything from their [lowertext(name)]!")
+ owner.visible_message("[owner] [release_verb] everything from their [lowertext(name)]!")
var/soundfile
if(!fancy_vore)
soundfile = classic_release_sounds[release_sound]
@@ -473,7 +475,7 @@
if(istype(M, /mob/observer)) //CHOMPEdit
silent = TRUE
if(!silent)
- owner.visible_message("[owner] expels [M] from their [lowertext(name)]!")
+ owner.visible_message("[owner] [release_verb] [M] from their [lowertext(name)]!")
var/soundfile
if(!fancy_vore)
soundfile = classic_release_sounds[release_sound]
@@ -1161,6 +1163,7 @@
dupe.absorbed_desc = absorbed_desc
dupe.vore_sound = vore_sound
dupe.vore_verb = vore_verb
+ dupe.release_verb = release_verb
dupe.human_prey_swallow_time = human_prey_swallow_time
dupe.nonhuman_prey_swallow_time = nonhuman_prey_swallow_time
dupe.emote_time = emote_time
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 2d6ef55987..1b560e9e69 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -1092,6 +1092,7 @@
to_chat(src, "Belly desc: [B.desc]")
to_chat(src, "Belly absorbed desc: [B.absorbed_desc]")
to_chat(src, "Vore verb: [B.vore_verb]")
+ to_chat(src, "Release verb: [B.release_verb]")
to_chat(src, "Struggle messages (outside):")
for(var/msg in B.struggle_messages_outside)
to_chat(src, "[msg]")
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index e79ddf9b2d..a4fd530d28 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -173,6 +173,7 @@
"mode" = selected.digest_mode,
"item_mode" = selected.item_digest_mode,
"verb" = selected.vore_verb,
+ "release_verb" = selected.release_verb,
"desc" = selected.desc,
"absorbed_desc" = selected.absorbed_desc,
"fancy" = selected.fancy_vore,
@@ -1078,6 +1079,15 @@
host.vore_selected.vore_verb = new_verb
. = TRUE
+ if("b_release_verb")
+ var/new_release_verb = html_encode(tgui_input_text(usr,"New verb when releasing from stomach (e.g. expels or coughs or drops):","New Release Verb"))
+
+ if(length(new_release_verb) > BELLIES_NAME_MAX || length(new_release_verb) < BELLIES_NAME_MIN)
+ tgui_alert_async(usr, "Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error")
+ return FALSE
+
+ host.vore_selected.release_verb = new_release_verb
+ . = TRUE
if("b_fancy_sound")
host.vore_selected.fancy_vore = !host.vore_selected.fancy_vore
host.vore_selected.vore_sound = "Gulp"
diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js
index 78f100229f..151c0839af 100644
--- a/tgui/packages/tgui/interfaces/VorePanel.js
+++ b/tgui/packages/tgui/interfaces/VorePanel.js
@@ -187,6 +187,7 @@ export const VorePanel = (props, context) => {
// Descriptions
verb,
+ release_verb,
desc,
absorbed_desc,
} = data.selected;
@@ -198,6 +199,7 @@ export const VorePanel = (props, context) => {
result += 'Item Mode:\n' + item_mode + '\n\n';
result += '== Descriptions ==\n\n';
result += 'Verb:\n' + verb + '\n\n';
+ result += 'Release Verb:\n' + release_verb + '\n\n';
result += 'Description:\n"' + desc + '"\n\n';
result += 'Absorbed Description:\n"' + absorbed_desc + '"\n\n';
@@ -487,7 +489,7 @@ const VoreSelectedBellyDescriptions = (props, context) => {
const { act } = useBackend(context);
const { belly } = props;
- const { verb, desc, absorbed_desc } = belly;
+ const { verb, release_verb, desc, absorbed_desc } = belly;
return (
@@ -504,6 +506,9 @@ const VoreSelectedBellyDescriptions = (props, context) => {
+
+