diff --git a/Content.Server/Stunnable/Components/StunOnCollideComponent.cs b/Content.Server/Stunnable/Components/StunOnCollideComponent.cs
index cbf6b17af8..d38a74df4a 100644
--- a/Content.Server/Stunnable/Components/StunOnCollideComponent.cs
+++ b/Content.Server/Stunnable/Components/StunOnCollideComponent.cs
@@ -1,4 +1,5 @@
using Content.Server.Stunnable.Systems;
+using Content.Shared.Whitelist;
namespace Content.Server.Stunnable.Components;
@@ -62,5 +63,11 @@ public sealed partial class StunOnCollideComponent : Component
/// Fixture we track for the collision.
///
[DataField("fixture")] public string FixtureID = "projectile";
+
+ ///
+ /// Allows blacklisting of entities
+ ///
+ [DataField]
+ public EntityWhitelist Blacklist = new();
}
diff --git a/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs b/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs
index 990091b704..cc1aabf861 100644
--- a/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs
+++ b/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs
@@ -3,6 +3,7 @@ using Content.Shared.Movement.Systems;
using JetBrains.Annotations;
using Content.Shared.Throwing;
using Robust.Shared.Physics.Events;
+using Content.Shared.Whitelist;
namespace Content.Server.Stunnable.Systems;
@@ -11,6 +12,7 @@ internal sealed partial class StunOnCollideSystem : EntitySystem
{
[Dependency] private StunSystem _stunSystem = default!;
[Dependency] private MovementModStatusSystem _movementMod = default!;
+ [Dependency] private EntityWhitelistSystem _entityWhitelist = default!;
public override void Initialize()
{
@@ -22,6 +24,9 @@ internal sealed partial class StunOnCollideSystem : EntitySystem
private void TryDoCollideStun(Entity ent, EntityUid target)
{
+ if (_entityWhitelist.IsWhitelistPass(ent.Comp.Blacklist, target))
+ return;
+
_stunSystem.TryKnockdown(target, ent.Comp.KnockdownAmount, ent.Comp.Refresh, ent.Comp.AutoStand, ent.Comp.Drop, true);
if (ent.Comp.Refresh)
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml b/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml
index c4e2649550..ed3bbdd657 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/asteroid.yml
@@ -131,7 +131,10 @@
sprite: Mobs/Aliens/Asteroid/goliath.rsi
layers:
- state: goliath_tentacle_wiggle
- - type: StunOnContact
+ - type: StunOnCollide
+ stunAmount: 1
+ knockdownAmount: 5
+ fixture: fix
blacklist:
tags:
- Goliath