Skip to content

Mob Spawn Control

This mod gives you complete control over mob spawning with per-rule filters, category caps, loot/XP scaling, attribute multipliers, and mob replacement — no coding required, just edit the JSON config and reload. 🔌✨

Fabric
Loaders
Fabric
Downloads on Modrinth
3.4K
Followers on Modrinth
7
versions
15
Updated
October 7, 2026Oct 7
Published
in 2026
Example "Banning Panda" Command 👾 · swipe

At a glance

Runs on Fabric
For Minecraft 1.21–26.3
Server only — players don't need to install it
Latest version — 1.3 from October 7, 2026
License MIT — free
Where it's needed
In gamenot neededOn serverrequired

Install on the server only; players don't need it

Game versions1.21–26.3

Mob Spawn Control

Mob Spawn Control is a server-side Fabric mod for controlling Minecraft mob spawning through configuration and in-game admin commands. It supports per-mob spawn rules, global category caps, spawn replacement, attribute scaling, loot scaling, experience scaling, biome spawn additions, and hot-reloaded JSON configuration.

What this mod does

Mob Spawn Control intercepts mob spawning and applies configurable rules before a mob is allowed to enter the world. It can:

  • Allow or deny mobs globally, per dimension, per biome, or per spawn type.
  • Apply spawn-chance percentages globally, per dimension, or per biome.
  • Restrict spawning by Y height, light level, spawn block, time, world age, weather, player distance, and distance from world origin.
  • Replace one mob with another when the original mob would have spawned.
  • Remove all existing entities of a banned mob from loaded worlds.
  • Scale mob health, movement speed, and attack damage.
  • Scale loot drops and experience drops.
  • Disable experience for mobs created by specific spawn types, such as mob spawners.
  • Override vanilla spawn-category population caps.
  • Add mobs to biome spawn tables at startup.
  • Reload configuration without restarting the server.
  • Provide administrative commands with mob, dimension, biome, and spawn-type suggestions.

The mod is intended for survival servers, modpacks, minigame servers, and performance-oriented servers that need predictable mob spawning.

Supported versions

MinecraftJavaFabric LoaderStatus
1.21 through 1.21.11210.16.x or newer compatible releaseSupported
26.1 through 26.1.2250.17.x or newer compatible releaseSupported
26.2250.19.3 or newerSupported
26.3250.19.5 or newerSupported

Use the download whose Minecraft version matches your game or server. The 1.21 file will not work on 26.x, and 26.x files will not work on 1.21.

Installation

Client or single-player installation

  1. Install the correct version of Minecraft.
  2. Install Fabric Loader for that Minecraft version.
  3. Install the matching Fabric API release.
  4. Download the Mob Spawn Control file for your Minecraft version.
  5. Place the downloaded .jar file in the mods folder.
  6. Start Minecraft.
  7. For single-player testing, open a world and use commands with operator permission where needed.

Server installation

  1. Install the correct Minecraft server version.
  2. Install the matching Fabric Loader server.
  3. Install the matching Fabric API server file.
  4. Download the Mob Spawn Control file for your server's Minecraft version.
  5. Place the downloaded .jar file in the server's mods folder.
  6. Start the server once so the mod can generate its configuration file.
  7. Edit config/viper_spawn_control.json.
  8. Run /spawncontrol reload to apply changes without restarting.

The configuration file is created at:

config/viper_spawn_control.json

Configuration overview

The configuration has three top-level sections:

SectionTypePurpose
global_mob_capsObject mapping spawn-category names to integersOverrides population limits used for natural spawning categories.
spawn_rulesObject mapping mob IDs to rule objectsControls where, when, how often, and in what form each mob may spawn.
biome_spawn_additionsObject mapping biome IDs to spawn-entry listsAdds new biome spawn entries when the server starts.

Mob IDs use the form minecraft:zombie. Biome and dimension IDs also use namespaced IDs, such as minecraft:plains or minecraft:the_nether.

Complete configuration example

{
  "global_mob_caps": {
    "monster": 70,
    "creature": 10,
    "ambient": 15,
    "underground_water_creature": 5,
    "water_creature": 5,
    "water_ambient": 20,
    "axolotls": 5
  },
  "spawn_rules": {
    "minecraft:zombie": {
      "global_enabled": true,
      "global_spawn_rate_percent": 100.0,
      "disabled_dimensions": [],
      "disabled_biomes": [],
      "disabled_spawn_types": [],
      "dimension_rates": {},
      "biome_rates": {},
      "height_limits": {
        "min_y": -64,
        "max_y": 320
      },
      "light_limits": {
        "min_light": 0,
        "max_light": 7
      },
      "allowed_spawn_blocks": [],
      "time_conditions": {
        "day_only": false,
        "night_only": true,
        "min_world_days": 0
      },
      "attribute_multipliers": {
        "max_health": 1.0,
        "movement_speed": 1.0,
        "attack_damage": 1.0
      },
      "proximity_rules": {
        "min_distance_to_players": 24.0,
        "max_distance_to_players": -1.0,
        "min_distance_to_origin": 100.0,
        "max_distance_to_origin": 10000.0
      },
      "weather_conditions": {
        "rain_only": false,
        "thunder_only": false,
        "clear_only": false
      },
      "replace_with": "",
      "xp_multiplier": 1.0,
      "spawn_type_xp_multipliers": {
        "SPAWNER": 0.0
      },
      "loot_multiplier": 1.0
    }
  },
  "biome_spawn_additions": {
    "minecraft:plains": [
      {
        "mob": "minecraft:polar_bear",
        "weight": 5,
        "min_group": 1,
        "max_group": 2
      }
    ]
  }
}

Spawn-rule configuration table

Each entry under spawn_rules uses a mob ID as its key.

FieldTypeDescription
global_enabledBooleanSet to false to ban the mob in every dimension and biome.
global_spawn_rate_percentNumber from 0 to 100Default spawn chance when no dimension- or biome-specific rate applies.
disabled_dimensionsList of dimension IDsPrevents the mob from spawning in the listed dimensions.
disabled_biomesList of biome IDsPrevents the mob from spawning in the listed biomes.
disabled_spawn_typesList of uppercase spawn reasonsPrevents the mob from spawning through listed mechanisms, such as NATURAL or SPAWNER.
dimension_ratesObject mapping dimension ID to percentageOverrides the spawn chance for selected dimensions.
biome_ratesObject mapping biome ID to percentageOverrides the spawn chance for selected biomes. Biome rates take precedence over dimension rates.
height_limits.min_yIntegerMinimum Y coordinate where the mob may spawn.
height_limits.max_yIntegerMaximum Y coordinate where the mob may spawn.
light_limits.min_lightInteger from 0 to 15Minimum light level where the mob may spawn.
light_limits.max_lightInteger from 0 to 15Maximum light level where the mob may spawn.
allowed_spawn_blocksList of block IDsIf non-empty, the mob can spawn only when the block below it is in this list.
time_conditions.day_onlyBooleanAllows spawning only during daytime when true.
time_conditions.night_onlyBooleanAllows spawning only during nighttime when true.
time_conditions.min_world_daysIntegerPrevents spawning before the world reaches the selected age in days.
attribute_multipliers.max_healthNumberMultiplies the spawned mob's maximum health.
attribute_multipliers.movement_speedNumberMultiplies the spawned mob's movement speed.
attribute_multipliers.attack_damageNumberMultiplies the spawned mob's attack damage.
proximity_rules.min_distance_to_playersNumberRequires spawns to be at least this many blocks from the nearest player.
proximity_rules.max_distance_to_playersNumberRequires a player to be within this distance. Use -1.0 to disable the upper limit.
proximity_rules.min_distance_to_originNumberRequires spawns to be at least this many horizontal blocks from world coordinates 0, 0.
proximity_rules.max_distance_to_originNumberPrevents spawns farther than this horizontal distance from world coordinates 0, 0. Use -1.0 to disable the upper limit.
weather_conditions.rain_onlyBooleanAllows spawning only while it is raining when true.
weather_conditions.thunder_onlyBooleanAllows spawning only during thunderstorms when true.
weather_conditions.clear_onlyBooleanAllows spawning only during clear weather when true.
replace_withMob ID or empty stringReplaces the denied original mob with another mob. Use an empty string to disable replacement.
xp_multiplierNumberMultiplies experience dropped by the mob. Use 0.0 to disable its experience.
spawn_type_xp_multipliersObject mapping uppercase spawn reason to multiplierOverrides xp_multiplier only for mobs born through the specified spawn mechanism.
loot_multiplierNumberMultiplies the quantity of dropped items.

Spawn-type experience multipliers use the spawn reason recorded when the mob is created. For example, "SPAWNER": 0.0 removes experience from spawner-created mobs while leaving naturally spawned mobs of the same type unchanged.

Origin distances use horizontal X/Z distance from the center of the spawn position to world coordinates 0, 0. The calculation is performed separately in each dimension's own coordinate system.

Biome spawn-addition table

Each entry under biome_spawn_additions uses a biome ID as its key and contains a list of spawn entries.

FieldTypeDescription
mobMob IDMob added to the biome's spawn table.
weightInteger of at least 1Relative selection weight for the entry.
min_groupInteger of at least 1Minimum number of mobs spawned together.
max_groupIntegerMaximum number of mobs spawned together.

Biome additions are applied during server startup. Restart the server after changing them.

Commands

All commands start with /spawncontrol and require gamemaster-level permission. Mob arguments accept namespaced IDs such as minecraft:sheep; dimension, biome, and spawn-type arguments support suggestions.

CommandDescription
/spawncontrol reloadReloads viper_spawn_control.json from disk.
/spawncontrol infoDisplays the executing player's biome, dimension, light level, Y coordinate, and world age.
`/spawncontrol ban `Bans a mob globally and removes existing entities of that type from loaded worlds.
`/spawncontrol ban global`Bans a mob globally.
`/spawncontrol ban dimension `Bans a mob in the selected dimension.
`/spawncontrol ban biome `Bans a mob in the selected biome.
`/spawncontrol unban `Allows a globally banned mob again.
`/spawncontrol unban dimension `Removes a dimension-specific ban.
`/spawncontrol unban biome `Removes a biome-specific ban.
`/spawncontrol rate `Sets the global spawn-chance percentage.
`/spawncontrol rate global`Sets the global spawn-chance percentage explicitly.
`/spawncontrol rate dimension `Sets a dimension-specific spawn-chance percentage.
`/spawncontrol rate biome `Sets a biome-specific spawn-chance percentage.
`/spawncontrol cap `Overrides a natural-spawning category population cap.
`/spawncontrol spawntype <allow|deny>`Allows or denies a particular spawn mechanism, such as NATURAL or SPAWNER.
`/spawncontrol height `Sets permitted Y-coordinate limits.
`/spawncontrol light `Sets permitted light-level limits from 0 to 15.
`/spawncontrol attributes <health|speed|damage> `Sets an attribute multiplier.
`/spawncontrol weather <rain|thunder|clear|none>`Sets a weather restriction.
`/spawncontrol replace `Displays the mob's current replacement.
`/spawncontrol replace `Replaces denied spawns with another mob.
`/spawncontrol replace none`Removes the replacement.

The mob argument comes immediately after the subcommand. For scoped commands, the scope follows the mob and value:

/spawncontrol ban minecraft:sheep
/spawncontrol rate minecraft:zombie 50 minecraft:the_nether

Common examples

Ban zombies everywhere and remove existing zombies

/spawncontrol ban minecraft:zombie

Remove experience from spawner mobs only

"minecraft:zombie": {
  "xp_multiplier": 1.0,
  "spawn_type_xp_multipliers": {
    "SPAWNER": 0.0
  }
}

Keep hostile mobs away from spawn

"minecraft:creeper": {
  "proximity_rules": {
    "min_distance_to_players": 24.0,
    "max_distance_to_players": -1.0,
    "min_distance_to_origin": 250.0,
    "max_distance_to_origin": -1.0
  }
}

Replace spiders with cave spiders

/spawncontrol replace minecraft:spider minecraft:cave_spider

Performance notes

  • Rules are evaluated only when a mob spawn is attempted.
  • Unused proximity checks are skipped.
  • Category caps use the configured values during natural-spawn calculations.
  • The mod does not add client-side rendering, particles, sounds, or HUD elements.

Enhance your server setup with the other server-side mods in the Fabric Server Essentials organization.

FAQ

How to install Mob Spawn Control?

Install Fabric for your Minecraft version, download Mob Spawn Control for the same version and loader, put the file into the mods folder and launch the game with the loader profile.

Which Minecraft versions does Mob Spawn Control support?

Mob Spawn Control has builds for Minecraft 1.21–26.3.

Is Mob Spawn Control needed on the server?

Server only — players don't need to install it

License and source
MIT Licensefree to use and share with credit to the author
Original — Modrinth↗Files unchanged, verified with SHA-512Is this your mod? For rights holders

The site uses cookies: the necessary ones for sign-in and the theme, plus the Yandex Metrica and LiveInternet visit counters — they show us how the site is used. We have no advertising cookies. More