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;
// 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();