diff --git a/Content.Server/Procedural/DungeonJob.PostGen.cs b/Content.Server/Procedural/DungeonJob.PostGen.cs index 9ee326ffb9..9f1e410a60 100644 --- a/Content.Server/Procedural/DungeonJob.PostGen.cs +++ b/Content.Server/Procedural/DungeonJob.PostGen.cs @@ -501,9 +501,11 @@ public sealed partial class DungeonJob if (!dungeon.RoomTiles.Contains(neighbor)) continue; - foreach (var ent in _lookup.GetEntitiesIntersecting(_gridUid, neighbor, flags)) + // Shrink by 0.01 to avoid polygon overlap from neighboring tiles. + foreach (var ent in _lookup.GetEntitiesIntersecting(_gridUid, new Box2(neighbor * grid.TileSize, (neighbor + 1) * grid.TileSize).Enlarged(-0.1f), flags)) { if (!physicsQuery.TryGetComponent(ent, out var physics) || + !physics.Hard || (CollisionMask & physics.CollisionLayer) == 0x0 && (CollisionLayer & physics.CollisionMask) == 0x0) {