diff --git a/Robust.Shared/GameObjects/EntityManager.Components.cs b/Robust.Shared/GameObjects/EntityManager.Components.cs index 09dd5cdf5f5..a4b2d4cef25 100644 --- a/Robust.Shared/GameObjects/EntityManager.Components.cs +++ b/Robust.Shared/GameObjects/EntityManager.Components.cs @@ -838,18 +838,16 @@ public bool HasComponent([NotNullWhen(true)] EntityUid? uid, ushort netId, MetaD [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool EnsureComponent(ref Entity entity) where T : IComponent, new() { - if (entity.Comp != null) - { - // Check for deferred component removal. - if (entity.Comp.LifeStage <= ComponentLifeStage.Running) - { - DebugTools.AssertOwner(entity, entity.Comp); - return true; - } + if (entity.Comp == null) + return EnsureComponent(entity.Owner, out entity.Comp); - RemoveComponent(entity, entity.Comp); - } + DebugTools.AssertOwner(entity, entity.Comp); + + // Check for deferred component removal. + if (entity.Comp.LifeStage <= ComponentLifeStage.Running) + return true; + RemoveComponent(entity, entity.Comp); entity.Comp = AddComponent(entity); return false; }