Skip to main content
← All Guides
Performance · 5 min read

Why Your TPS Drops at Night (Mob Spawning Explained)

Understand why tps drops at night minecraft servers experience. Learn how mob spawning works, why nighttime is expensive, and how to tune spawn rates for better performance.

The Night Cycle Performance Drop

If you have ever watched your server's TPS and noticed it consistently dips when the in-game clock hits night, you are not imagining things. This is one of the most common performance patterns, and it happens because hostile mob spawning ramps up dramatically when darkness falls. During the day, hostile mobs can only spawn in caves and dark enclosed spaces. At night, every valid surface block in every loaded chunk becomes a potential spawn location. The server must evaluate thousands of spawn attempts per tick, then tick every mob that successfully spawns. Understanding why tps drops at night minecraft servers face is the first step toward fixing it.

How Mob Spawning Works

Minecraft's natural mob spawning system runs every tick (20 times per second). For each loaded chunk within a player's simulation distance, the server:

  1. Counts existing mobs by category (hostile, passive, ambient, water creatures).
  2. Compares the count against the mob cap, which is calculated per player.
  3. If the cap is not reached, picks random positions in the chunk and checks whether a mob can spawn there (correct light level, valid block, not inside a wall, biome-appropriate mob type).
  4. Spawns the mob if all conditions pass.

During the day, step 3 fails for most surface positions because the light level is too high. The server still does the work of picking positions and checking conditions, but very few mobs actually spawn. At night, those checks succeed far more often, and the server ends up spawning and ticking hundreds of additional mobs. This is why tps drops at night minecraft servers show up so reliably.

The Mob Cap Explained

The mob cap controls the maximum number of hostile mobs that can exist per player. The formula in Bukkit is:

mobCap = (monsterSpawnLimit * playerCount) / chunkCount

The default monster-spawn-limit in bukkit.yml is 70 per player. With 30 players online, the server allows up to 2100 hostile mobs. Every one of those mobs runs pathfinding, target detection, and AI logic every tick. Reducing the mob cap is the single most impactful change you can make:

# bukkit.yml
spawn-limits:
  monsters: 40
  animals: 8
  water-animals: 3
  water-ambient: 3
  water-underground-creature: 3
  axolotls: 3
  ambient: 1

Lowering monsters from 70 to 40 reduces the maximum hostile mob count by 43%. Players will still encounter plenty of mobs, but the server breathes easier, especially at night.

Spawn Rate and Tick Intervals

Beyond the cap, you can control how frequently the server attempts to spawn mobs. In bukkit.yml:

ticks-per:
  monster-spawns: 2    # default: 1 (every tick)
  animal-spawns: 400
  water-spawns: 400

Setting monster-spawns to 2 means the server only attempts hostile spawns every other tick instead of every tick. This halves the CPU cost of spawn calculations. A value of 4 is still playable and cuts spawning overhead to 25% of vanilla. Most players will not notice the difference.

Paper-Specific Optimizations

Paper adds several mob spawning optimizations that directly address the nighttime TPS problem:

# paper-world-defaults.yml
entities:
  spawning:
    per-player-mob-spawns: true       # already default, keep it on
    despawn-ranges:
      monster:
        soft: 28    # blocks, start random despawn
        hard: 96    # blocks, instant despawn
    creative-arrow-despawn-rate: 60
    non-player-arrow-despawn-rate: 60

The per-player-mob-spawns setting ensures the mob cap is calculated per player rather than globally. This prevents the scenario where one AFK player in a mob farm consumes the entire server's mob cap, leaving other players in empty worlds. The despawn ranges control how far from a player mobs can exist before they are removed. Tightening the hard despawn range from 128 to 96 blocks reduces the total number of mobs that exist at any time.

Also check the Paper settings guide for alt-item-despawn-rate and entity activation ranges, which further reduce mob processing overhead.

Mob Farm Impact

Player-built mob farms amplify the night TPS problem. A well-designed mob farm spawns mobs at the cap rate, meaning the server fills the mob cap for that player almost instantly. If the farm does not kill mobs fast enough, entities pile up and each one runs full AI processing. Common fixes:

  • Limit mob farm chunk loading with simulation distance.
  • Use entity-per-chunk limits to cap how many mobs can exist in a farm's chunks. See our entity limits guide.
  • Encourage players to use kill mechanisms that process mobs quickly (lava, fall damage, cacti) rather than letting them accumulate.

Sleeping and /gamerule

On smaller SMPs, using a sleep plugin (like HarvestMoon or BetterSleeping) that requires only a percentage of players to sleep lets the server skip the night cycle entirely. Skipping night means skipping the surface spawn surge. For larger servers, a voting system where 30% of players must sleep is a fair compromise. Alternatively, /gamerule doMobSpawning false is a nuclear option that disables all spawning. This breaks survival gameplay but can be useful in event worlds or creative plots.

Once you understand why tps drops at night minecraft servers show, the fix is a combination of lower mob caps, wider spawn intervals, and Paper's per-player mob spawning. These changes recover 2-5 TPS on busy servers during nighttime cycles. For the complete optimization checklist, see our 20 TPS guide.

Need a server built for performance? Astroworld Hosting runs NVMe SSDs with optimized Paper configs on every plan.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe