Change mob spawn rates and limits
Edit the spawn limits in bukkit.yml and spigot.yml on Paper, or switch natural spawning off with the right game rule for your version.
Mob spawning has three separate dials: how many mobs of each kind are allowed, how often the server tries to spawn one, and how far from a player they can appear. On Paper and Purpur all three are in config files you edit in the File Manager. Natural spawning can also be switched off with a game rule.
Checked against the Paper 26.3 documentation, October 2026.
What the settings are
Paper keeps bukkit.yml and spigot.yml in the server's top folder. Purpur's own configuration page links to the documentation for both files. Paper writes both files when the server starts, so if you cannot see them, start the server once and refresh the File Manager.
The Bukkit API describes each limit as the number of that kind of mob that can spawn in a chunk. A ticks-per value of -1 returns that category to Minecraft's own timing. The same section also lists water-ambient, water-underground-creature and axolotls.
Change a limit
- Press Stop on the Console tab and wait for the server to go offline.
- Open the File Manager and click
bukkit.yml. - Change the number, for example
monsters: 70tomonsters: 40. Keep the indentation exactly as it is. - Press Save, then press Start.
Edit mob-spawn-range the same way in spigot.yml. It sits under world-settings and then default. If the server will not start afterwards, Find and fix YAML and JSON config errors shows how to spot a stray space or tab.
Change one value at a time, and check the TPS reading in the left rail after each change before you touch the next one.
Set limits per world
Paper lets a world override bukkit.yml. config/paper-world-defaults.yml holds the defaults for every world. In it, the section entities then spawning then spawn-limits has the keys monster, creature, ambient, axolotls, underground_water_creature, water_ambient and water_creature. Each defaults to -1, which means use the bukkit.yml value. Note the names differ: monster here is monsters in bukkit.yml, and creature is animals.
To change one world only, leave the defaults file alone. Add just the keys you want to that world's own paper-world.yml, in the folder world/dimensions/<namespace>/<key>/. For the Nether that is world/dimensions/minecraft/the_nether/paper-world.yml. Any key you leave out is inherited from paper-world-defaults.yml.
The setting per-player-mob-spawns in the same section is true by default. It decides whether the bukkit.yml limit is counted per player or for the entire server.
Turn natural spawning off
These are vanilla game rules. Send them from the Console.
The spawn_mobs rule is for natural spawning. Spawner blocks have their own rule, spawner_blocks_work on 1.21.11 and newer.
The Config Editor still lists Hostile mobs, Animals and Villagers. Mojang removed spawn-animals and spawn-npcs in 1.21.2 and spawn-monsters in 1.21.9. On those versions the game rules above are the replacement for hostile mobs and for natural spawning as a whole. No game rule covers Animals or Villagers on their own, so spawn_mobs (or doMobSpawning) is the only vanilla switch that stops them.
More on the file layout is in the guide to editing bukkit.yml, spigot.yml and Paper config. If a busy server is lagging, see Why is my server lagging? Find the cause.
Was this guide helpful?
Related guides
Turn off PvP on your Minecraft server
Stop players damaging each other. Use the pvp game rule on 1.21.9 and newer, or the Config Editor PvP switch on older servers.
Turn off Minecraft advancement messages
Stop advancement announcements in chat with one game rule from the Console, using the right name for your version, and turn them back on later.
Teleport and home commands with EssentialsX
Give players tpa, sethome, home and back with EssentialsX on Paper or Purpur, grant the permissions with LuckPerms and set teleport delays and limits.
