diff --git a/Content.Server/RequiresGrid/RequiresGridComponent.cs b/Content.Server/RequiresGrid/RequiresGridComponent.cs
new file mode 100644
index 0000000000..0e956c9ad9
--- /dev/null
+++ b/Content.Server/RequiresGrid/RequiresGridComponent.cs
@@ -0,0 +1,11 @@
+namespace Content.Server.RequiresGrid;
+
+///
+/// Destroys an entity when they no longer are part of a Grid
+///
+[RegisterComponent]
+[Access(typeof(RequiresGridSystem))]
+public sealed partial class RequiresGridComponent : Component
+{
+
+}
diff --git a/Content.Server/RequiresGrid/RequiresGridSystem.cs b/Content.Server/RequiresGrid/RequiresGridSystem.cs
new file mode 100644
index 0000000000..16a20c9a8a
--- /dev/null
+++ b/Content.Server/RequiresGrid/RequiresGridSystem.cs
@@ -0,0 +1,29 @@
+using Content.Server.Destructible;
+
+namespace Content.Server.RequiresGrid;
+
+public sealed class RequiresGridSystem : EntitySystem
+{
+ [Dependency] private readonly DestructibleSystem _destructible = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnEntParentChanged);
+ }
+
+ private void OnEntParentChanged(EntityUid owner, RequiresGridComponent component, EntParentChangedMessage args)
+ {
+ if (args.OldParent == null)
+ return;
+
+ if (args.Transform.GridUid != null)
+ return;
+
+ if (TerminatingOrDeleted(owner))
+ return;
+
+ _destructible.DestroyEntity(owner);
+ }
+}