diff --git a/code/__defines/vore_prefs.dm b/code/__defines/vore_prefs.dm
index 2d926e3572..6ee1f10cfb 100644
--- a/code/__defines/vore_prefs.dm
+++ b/code/__defines/vore_prefs.dm
@@ -15,6 +15,7 @@
target.digest_pain = source.digest_pain; \
target.noisy_full = source.noisy_full; \
target.eating_privacy_global = source.eating_privacy_global; \
+ target.vore_death_privacy = source.vore_death_privacy; \
\
target.can_be_drop_prey = source.can_be_drop_prey; \
target.can_be_drop_pred = source.can_be_drop_pred; \
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 867d361761..eb98f42a43 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -88,9 +88,10 @@
var/area/A = get_area(src)
if(!(A?.flag_check(AREA_BLOCK_SUIT_SENSORS)) && isbelly(loc))
// SSgame_master.adjust_danger(gibbed ? 40 : 20) // We don't use SSgame_master yet.
- for(var/mob/observer/dead/O in GLOB.mob_list)
- if(O.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay))
- to_chat(O, span_deadsay(span_bold("[src]") + " has died in " + span_bold("[get_area(src)]") + ". [ghost_follow_link(src, O)] "))
+ if(!isbelly(loc) || !vore_death_privacy)
+ for(var/mob/observer/dead/O in GLOB.mob_list)
+ if(O.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay))
+ to_chat(O, span_deadsay(span_bold("[src]") + " has died in " + span_bold("[get_area(src)]") + ". [ghost_follow_link(src, O)] "))
if(!gibbed && !isbelly(loc))
playsound(src, pick(get_species_sound(get_gendered_sound(src))["death"]), src.species.death_volume, 1, 20, volume_channel = VOLUME_CHANNEL_DEATH_SOUNDS)
diff --git a/code/modules/vore/eating/mob_vr.dm b/code/modules/vore/eating/mob_vr.dm
index c98eec0bd8..e1bc66df3d 100644
--- a/code/modules/vore/eating/mob_vr.dm
+++ b/code/modules/vore/eating/mob_vr.dm
@@ -26,6 +26,7 @@
var/show_vore_fx = TRUE // Show belly fullscreens
var/selective_preference = DM_DEFAULT // Preference for selective bellymode
var/eating_privacy_global = FALSE // Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
+ var/vore_death_privacy = FALSE // Chooses whether to announce prey death when digested to ghosts.
var/allow_mimicry = TRUE // Allows mimicking their character
var/allow_mind_transfer = FALSE //Allows ones mind to be taken over or swapped
var/nutrition_message_visible = TRUE
diff --git a/code/modules/vore/eating/panel_databackend/vorepanel_pref_data.dm b/code/modules/vore/eating/panel_databackend/vorepanel_pref_data.dm
index 5cfeec8529..a1e2caf8ed 100644
--- a/code/modules/vore/eating/panel_databackend/vorepanel_pref_data.dm
+++ b/code/modules/vore/eating/panel_databackend/vorepanel_pref_data.dm
@@ -42,6 +42,7 @@
"consume_liquid_belly" = owner.consume_liquid_belly,
"digest_pain" = owner.digest_pain,
"eating_privacy_global" = owner.eating_privacy_global,
+ "vore_death_privacy" = owner.vore_death_privacy,
"allow_mimicry" = owner.allow_mimicry,
//Soulcatcher
"soulcatcher_allow_capture" = owner.soulcatcher_pref_flags & SOULCATCHER_ALLOW_CAPTURE,
diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm
index 38dfa3dab0..970a017dd0 100644
--- a/code/modules/vore/eating/vore_vr.dm
+++ b/code/modules/vore/eating/vore_vr.dm
@@ -47,6 +47,7 @@
var/permit_healbelly = TRUE
var/noisy = FALSE
var/eating_privacy_global = FALSE //Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
+ var/vore_death_privacy = FALSE //Makes it so that vore deaths don't get advertised to ghosts
var/allow_mimicry = TRUE
// These are 'modifier' prefs, do nothing on their own but pair with drop_prey/drop_pred settings.
@@ -216,6 +217,7 @@
weight_message_visible = json_from_file["weight_message_visible"]
weight_messages = json_from_file["weight_messages"]
eating_privacy_global = json_from_file["eating_privacy_global"]
+ vore_death_privacy = json_from_file["vore_death_privacy"]
allow_mimicry = json_from_file["allow_mimicry"]
vore_sprite_color = json_from_file["vore_sprite_color"]
allow_mind_transfer = json_from_file["allow_mind_transfer"]
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index 1cfb871a49..4511f59e2f 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -407,6 +407,12 @@
host.eating_privacy_global = host.eating_privacy_global
unsaved_changes = TRUE
return TRUE
+ if("toggle_death_privacy")
+ host.vore_death_privacy = !host.vore_death_privacy
+ if(host.client.prefs_vr)
+ host.vore_death_privacy = host.vore_death_privacy
+ unsaved_changes = TRUE
+ return TRUE
if("toggle_mimicry")
host.allow_mimicry = !host.allow_mimicry
if(host.client.prefs_vr)
diff --git a/tgui/packages/tgui/interfaces/VorePanel/VorePanelMainTabs/VoreUserPreferences.tsx b/tgui/packages/tgui/interfaces/VorePanel/VorePanelMainTabs/VoreUserPreferences.tsx
index 3dff43773b..1249e4d9ff 100644
--- a/tgui/packages/tgui/interfaces/VorePanel/VorePanelMainTabs/VoreUserPreferences.tsx
+++ b/tgui/packages/tgui/interfaces/VorePanel/VorePanelMainTabs/VoreUserPreferences.tsx
@@ -44,6 +44,7 @@ export const VoreUserPreferences = (props: {
allow_spontaneous_tf,
allow_mind_transfer,
eating_privacy_global,
+ vore_death_privacy,
allow_mimicry,
strip_mechanics_active,
autotransferable,
@@ -493,6 +494,19 @@ export const VoreUserPreferences = (props: {
disabled: 'Global Vore Privacy: Loud',
},
},
+ vore_death_privacy: {
+ action: 'toggle_death_privacy',
+ test: vore_death_privacy,
+ tooltip: {
+ main: 'Sets whether your vore deaths are announced to ghosts',
+ enable: ' Click here to prevent announcing vore deaths',
+ disable: ' Click here to allow announcing vore deaths',
+ },
+ content: {
+ enabled: 'Vore Death Privacy: Unannonced',
+ disabled: 'Vore Death Privacy: Announced',
+ },
+ },
allow_mimicry: {
action: 'toggle_mimicry',
test: allow_mimicry,
diff --git a/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesMechanical.tsx b/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesMechanical.tsx
index 27905e8921..95ba10e562 100644
--- a/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesMechanical.tsx
+++ b/tgui/packages/tgui/interfaces/VorePanel/VoreUserPreferencesTabs/VoreUserPreferencesMechanical.tsx
@@ -93,23 +93,29 @@ export const VoreUserPreferencesMechanical = (props: {
-
+
+
+
+