# How to Change the Mob Spawn Rate on Your Minecraft Server (/docs/minecraft/change-mob-spawn-rate)



import { Step, Steps } from 'fumadocs-ui/components/steps';

Mob spawn rates control how many mobs can spawn naturally on your server. **Lowering them is one of the most effective performance fixes** for entity-heavy servers — fewer mobs mean fewer entities to tick. **Raising them** makes the world feel busier or more challenging, at a CPU cost.

The relevant settings live in `bukkit.yml` and `spigot.yml`, which are only present on Bukkit-derived servers (Spigot, Paper, Purpur, Pufferfish, etc.).

Spawn Limits Explained [#spawn-limits-explained]

These are **per-player chunk caps**, not per-world totals. The cap applies to mobs in chunks loaded around each player.

| Category                     | Default | What it includes                                                    |
| ---------------------------- | ------- | ------------------------------------------------------------------- |
| `monsters`                   | 70      | Hostile mobs (zombies, skeletons, creepers, spiders, witches, etc.) |
| `animals`                    | 10      | Passive mobs (cows, pigs, sheep, chickens, horses)                  |
| `water-animals`              | 5       | Squid, dolphins                                                     |
| `water-ambient`              | 20      | Tropical fish, salmon, cod                                          |
| `water-underground-creature` | 5       | Glow squid                                                          |
| `axolotls`                   | 5       | Axolotls                                                            |
| `ambient`                    | 15      | Bats                                                                |

Change Spawn Limits [#change-spawn-limits]

<Steps>
  <Step>
    Stop the server [#stop-the-server]

    In the [XGamingServer Panel](https://panel.xgamingserver.com), open **Console** and stop your server.
  </Step>

  <Step>
    Edit bukkit.yml [#edit-bukkityml]

    Click **Files** in the sidebar and open `bukkit.yml`. Find the `spawn-limits` section:

    ```yaml
    spawn-limits:
      monsters: 50
      animals: 8
      water-animals: 5
      water-ambient: 15
      water-underground-creature: 5
      axolotls: 5
      ambient: 10
    ```

    Lower the numbers to reduce spawns; raise them to increase. Click **Save Content**.
  </Step>

  <Step>
    (Optional) Adjust mob spawn range [#optional-adjust-mob-spawn-range]

    Open `spigot.yml`. Find:

    ```yaml
    mob-spawn-range: 6
    ```

    Default is `8`. Lower values concentrate spawning closer to players, which can:

    * Make mob farms more reliable
    * Reduce the number of "wasted" spawn attempts in chunks players don't visit
    * Improve mob density in active areas
  </Step>

  <Step>
    (Paper only) Adjust per-chunk entity caps [#paper-only-adjust-per-chunk-entity-caps]

    On Paper, you can also set hard per-chunk caps in `config/paper-world-defaults.yml`:

    ```yaml
    entity-per-chunk-save-limit:
      experience_orb: 16
      arrow: 16
      snowball: 16
      ender_pearl: 16
    ```

    This caps **how many of each entity type can be saved per chunk**, preventing pathological accumulation.
  </Step>

  <Step>
    Start the server [#start-the-server]

    Start from **Console**. New spawn limits take effect immediately.
  </Step>
</Steps>

Recommended Settings by Use Case [#recommended-settings-by-use-case]

Performance Server (Lag Reduction) [#performance-server-lag-reduction]

```yaml
spawn-limits:
  monsters: 35
  animals: 5
  water-animals: 3
  water-ambient: 10
  ambient: 5
```

Reduces total mob count by \~50%. Mob farms still work but are slower. TPS often improves significantly.

Vanilla-Like Balance [#vanilla-like-balance]

Use the default values (70 / 10 / 5 / 20 / 15). This matches singleplayer feel.

Hardcore / High-Difficulty Server [#hardcore--high-difficulty-server]

```yaml
spawn-limits:
  monsters: 100
  animals: 15
```

More mobs, more pressure. Watch TPS — this only works on a server with CPU headroom.

Build / Creative Server [#build--creative-server]

```yaml
spawn-limits:
  monsters: 0
  animals: 0
  water-animals: 0
  ambient: 0
```

Zero spawning. Combine with `gamemode=creative` and `difficulty=peaceful` for a pure-build experience.

Other Mob Controls [#other-mob-controls]

| Control                   | File                | Effect                                                     |
| ------------------------- | ------------------- | ---------------------------------------------------------- |
| `spawn-monsters=false`    | `server.properties` | Disable hostile spawning entirely                          |
| `difficulty=peaceful`     | `server.properties` | Removes hostile mobs and despawns existing ones            |
| `entity-activation-range` | `spigot.yml`        | Distance at which mobs become "active" (closer = less CPU) |
| `merge-radius`            | `spigot.yml`        | Auto-merge nearby items / XP orbs to reduce entity count   |
| `nerf-spawner-mobs`       | `spigot.yml`        | Spawner mobs don't AI — saves CPU on grinders              |

Reduce Lag from Mob Farms [#reduce-lag-from-mob-farms]

Mob farms with hundreds of mobs are the **biggest entity-related lag source** on most servers. Don't just lower spawn limits — also:

1. **Tune `entity-activation-range`** in `spigot.yml`:

```yaml
world-settings:
  default:
    entity-activation-range:
      animals: 16
      monsters: 24
      misc: 8
      water: 12
```

Mobs outside this range stop ticking AI/pathfinding.

2. **Enable spawner nerfing**:

```yaml
nerf-spawner-mobs: true
```

Spawner-spawned mobs won't AI — they fall when pushed but don't pathfind.

3. **Install [FarmControl](https://www.spigotmc.org/resources/farmcontrol.86923/)** for per-farm caps.

4. **Install [ClearLagg](https://www.spigotmc.org/resources/clearlagg.68271/)** to auto-clear ground items.

See [Optimize Server](/docs/minecraft/optimize-server) for the full performance guide.

Common Mistakes [#common-mistakes]

| Mistake                                      | Fix                                                                   |
| -------------------------------------------- | --------------------------------------------------------------------- |
| Setting monsters to 0 expecting peaceful     | Use `difficulty=peaceful` instead — `0` doesn't despawn existing mobs |
| Wondering why mob farms broke                | You lowered spawn caps below what the farm needs                      |
| Editing `bukkit.yml` while server is running | Stop server first — file is overwritten on shutdown                   |
| Editing on Vanilla/Forge servers             | These files don't exist on Vanilla/Forge — only Bukkit-derived        |
| Not restarting after change                  | Spawn limits load at startup                                          |
| Thinking lower = always better               | Below 30 monsters can break gameplay (no nighttime mobs)              |

Tips [#tips]

* **Profile first.** Run [Spark](/docs/minecraft/setup-spark) before tuning. If `EntityType.tick` for one mob is huge, lower that specific category.
* **Adjust one variable at a time.** Easier to see what worked.
* **Test with players online.** Spawn behavior depends on player count.
* **Don't go below 30 monsters** unless you genuinely don't want survival difficulty.
* **Combine spawn-limits with activation-range** for the biggest gains.

Related Guides [#related-guides]

* [Optimize Server](/docs/minecraft/optimize-server)
* [Setup Spark](/docs/minecraft/setup-spark)
* [Server Tick Loop](/docs/minecraft/fix-server-tick-loop)
* [Toggle Monsters](/docs/minecraft/toggle-monsters)
* [Set Difficulty](/docs/minecraft/set-difficulty)
* [Server Properties](/docs/minecraft/server-properties)
