From 928e6c807903e511a1d20592226406a7e0dec69c Mon Sep 17 00:00:00 2001
From: Princess Cheeseballs
<66055347+Princess-Cheeseballs@users.noreply.github.com>
Date: Fri, 12 Sep 2025 14:49:12 -0700
Subject: [PATCH] Edible Sound Specifier Override (#40312)
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
---
Content.Shared/Nutrition/Components/EdibleComponent.cs | 8 ++++++++
Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/Content.Shared/Nutrition/Components/EdibleComponent.cs b/Content.Shared/Nutrition/Components/EdibleComponent.cs
index 4fcd9770eb..bff56984a1 100644
--- a/Content.Shared/Nutrition/Components/EdibleComponent.cs
+++ b/Content.Shared/Nutrition/Components/EdibleComponent.cs
@@ -2,6 +2,7 @@
using Content.Shared.FixedPoint;
using Content.Shared.Nutrition.EntitySystems;
using Content.Shared.Nutrition.Prototypes;
+using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
@@ -78,6 +79,13 @@ public sealed partial class EdibleComponent : Component
[DataField]
public bool RequireDead = true;
+ ///
+ /// An optional override for the sound made when consuming this item.
+ /// Useful for if an edible type doesn't justify a new prototype, like with plushies.
+ ///
+ [DataField]
+ public SoundSpecifier? UseSound;
+
///
/// Verb, icon, and sound data for our edible.
///
diff --git a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs
index 470747fa3f..284bb866f7 100644
--- a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs
+++ b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.cs
@@ -449,7 +449,7 @@ public sealed partial class IngestionSystem : EntitySystem
var edible = _proto.Index(entity.Comp.Edible);
- _audio.PlayPredicted(edible.UseSound, args.Target, args.User);
+ _audio.PlayPredicted(entity.Comp.UseSound ?? edible.UseSound, args.Target, args.User);
var flavors = _flavorProfile.GetLocalizedFlavorsMessage(entity.Owner, args.Target, args.Split);
--
2.51.2