diff --git a/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs b/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs index 488e01fb79..7e1cae798a 100644 --- a/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/BuckleComponent.cs @@ -212,8 +212,12 @@ namespace Content.Server.GameObjects.Components.Mobs .PlayFromEntity(strap.UnbuckleSound, Owner); } - Owner.Transform.DetachParent(); - Owner.Transform.WorldRotation = BuckledTo.Owner.Transform.WorldRotation; + if (Owner.Transform.Parent == BuckledTo.Owner.Transform) + { + Owner.Transform.DetachParent(); + Owner.Transform.WorldRotation = BuckledTo.Owner.Transform.WorldRotation; + } + BuckledTo = null; if (Owner.TryGetComponent(out AppearanceComponent appearance)) @@ -268,12 +272,12 @@ namespace Content.Server.GameObjects.Components.Mobs base.Startup(); BuckleStatus(); } - public override void OnRemove() { base.OnRemove(); - if (BuckledTo != null && BuckledTo.Owner.TryGetComponent(out StrapComponent strap)) + if (BuckledTo != null && + BuckledTo.Owner.TryGetComponent(out StrapComponent strap)) { strap.Remove(this); }