diff --git a/Content.Client/Instruments/UI/InstrumentMenu.xaml.cs b/Content.Client/Instruments/UI/InstrumentMenu.xaml.cs index 7ab5e5f5fd..669d05622e 100644 --- a/Content.Client/Instruments/UI/InstrumentMenu.xaml.cs +++ b/Content.Client/Instruments/UI/InstrumentMenu.xaml.cs @@ -142,14 +142,18 @@ namespace Content.Client.Instruments.UI if (instrumentEnt == null || instrument == null) return false; - // If we're a handheld instrument, we might be in a container. Get it just in case. - instrumentEnt.Value.TryGetContainerMan(out var conMan); - var localPlayer = IoCManager.Resolve().LocalPlayer; // If we don't have a player or controlled entity, we return. if (localPlayer?.ControlledEntity == null) return false; + // By default, allow an instrument to play itself and skip all other checks + if (localPlayer.ControlledEntity == instrumentEnt) + return true; + + // If we're a handheld instrument, we might be in a container. Get it just in case. + instrumentEnt.Value.TryGetContainerMan(out var conMan); + // If the instrument is handheld and we're not holding it, we return. if ((instrument.Handheld && (conMan == null || conMan.Owner != localPlayer.ControlledEntity))) return false;