diff --git a/Content.Client/Instruments/InstrumentSystem.cs b/Content.Client/Instruments/InstrumentSystem.cs index 11ceb36df5..009fa6bcc5 100644 --- a/Content.Client/Instruments/InstrumentSystem.cs +++ b/Content.Client/Instruments/InstrumentSystem.cs @@ -87,7 +87,7 @@ public sealed class InstrumentSystem : SharedInstrumentSystem if (!Resolve(uid, ref instrument) || instrument.Renderer == null) return; - instrument.Renderer.TrackingEntity = instrument.Owner; + instrument.Renderer.TrackingEntity = uid; instrument.Renderer.DisablePercussionChannel = !instrument.AllowPercussion; instrument.Renderer.DisableProgramChangeEvent = !instrument.AllowProgramChange; @@ -127,7 +127,9 @@ public sealed class InstrumentSystem : SharedInstrumentSystem // We dispose of the synth two seconds from now to allow the last notes to stop from playing. // Don't use timers bound to the entity in case it is getting deleted. - Timer.Spawn(2000, () => { renderer?.Dispose(); }); + if (renderer != null) + Timer.Spawn(2000, () => { renderer.Dispose(); }); + instrument.Renderer = null; instrument.MidiEventBuffer.Clear();