diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java
index 6ebf66afad..c8c3702a17 100644
--- a/core/src/mindustry/game/Universe.java
+++ b/core/src/mindustry/game/Universe.java
@@ -217,8 +217,10 @@ public class Universe{
 
                     //queue random invasions
                     if(!sector.isAttacked() && turn > invasionGracePeriod && sector.info.hasSpawns){
+                        int count = sector.near().count(Sector::hasEnemyBase);
+
                         //invasion chance depends on # of nearby bases
-                        if(Mathf.chance(baseInvasionChance * Math.min(sector.near().count(Sector::hasEnemyBase), 1))){
+                        if(count > 0 && Mathf.chance(baseInvasionChance * (0.75f + (count - 1) * 0.3f))){
                             int waveMax = Math.max(sector.info.winWave, sector.isBeingPlayed() ? state.wave : sector.info.wave + sector.info.wavesPassed) + Mathf.random(2, 4) * 5;
 
                             //assign invasion-related things