Designed with simplicity and performance in mind, NotTodayMob provides configurable control over mob spawning without modifying world generation definitions or biome data. Individual mobs — or entire namespaces — can be blocked entirely, or have their natural spawn frequency increased or reduced using straightforward configuration.
NotTodayMob is intended for modpack creators and server administrators who want predictable, lightweight control over mob behaviour without complex datapacks or scripting.
All changes are applied at runtime and work automatically with modded mobs, modded biomes, and custom dimensions.
When unwanted mobs try to spawn, the answer is simple: not today.
NotTodayMob now includes expanded control over natural and custom mob spawning.
The naturalSpawnWeightMultipliers setting allows pack creators and server administrators to reduce, increase, or disable natural spawning for matching entities.
A new customSpawnChanceMultipliers setting also allows spawn attempts using the EVENT or TRIGGERED spawn types to be reduced or disabled independently, providing support for mods that use custom event-based spawning.
On Forge 1.20.1 and NeoForge 1.21.1, matching spawners are first replaced with an inert spawner before being safely removed on a later chunk load.
This staged removal avoids chunk-loading warnings caused by removing block entities too early during world generation.
NotTodayMob is configured using a small set of server-side settings designed to be predictable and easy to understand. Changes can be made at any time and will apply automatically after restart or reload.
Core Behaviour
Controls whether matching entities are prevented from spawning.
Default: true
If disabled, all entity blocking rules are ignored.
Controls whether baby variants of blocked entities are also blocked.
Default: true
If disabled, baby variants will still spawn even when the adult equivalents are blocked.
World-Generated Spawner Handling
Controls whether matching world-generated spawners are removed or replaced during chunk loading.
Default: true
If enabled, matching spawners will be:
worldgenSpawnerReplacements, orIf disabled, world-generated spawners remain unchanged.
worldgenSpawnerReplacements = [
"minecraft:zombie"
]
blockedEntities = [
"minecraft:skeleton",
"minecraft:*spider"
]
worldgenSpawnerReplacements = [
"minecraft:zombie"
]
Here, skeleton or spider spawners found during chunk loading will become zombie spawners
Spawner and Spawn Egg Controls
Controls whether matching spawners are blocked from use.
Default: true
If disabled:
Controls whether matching spawn eggs are blocked from use.
Default: true
If disabled:
Inventory and Item Cleanup
Controls whether spawn eggs and spawners for blocked entities are removed immediately when dropped into the world.
Default: true
Disable this if you want blocked items to exist but still prevent spawning.
Controls how often (in ticks) player inventories are checked for blocked spawn eggs and spawners.
Default: 10
| Ticks | Actual Time |
|---|---|
10 |
Half a second |
20 |
One second |
Higher values reduce overhead but delay cleanup.
Controls whether periodic NotTodayMob summary statistics are written to the server log.
Default: false
Controls how often (in ticks) summary statistics are logged.
Default: 12000
| Ticks | Actual Time |
|---|---|
12000 |
Ten minutes |
24000 |
Twenty minutes |
Controls whether additional detail is included in each statistics report.
Default: false
When enabled, reports may include:
Controls whether statistics are also written to a dedicated log file.
Default: false
When enabled, statistics will also be written to logs/nottodaymob.log
Blocking Entities
Defines which entities are prevented from spawning.
Supports:
blockedEntities = [
"minecraft:skeleton",
"minecraft:*spider",
"alexsmobs:*",
"minecraft:zombie|dimensions=minecraft:overworld"
]
Defines which baby variants are prevented from spawning without blocking their adult counterparts.
Supports:
blockedBabyEntities = [
"minecraft:zombie",
"minecraft:*piglin",
"alexsmobs:*",
"minecraft:hoglin|dimensions=minecraft:the_nether"
]
Scope Rules to Specific Dimensions
Rules can optionally be limited to one or more dimensions using inline dimensions= filtering.
blockedEntities = [
"minecraft:skeleton|dimensions=minecraft:overworld",
"minecraft:blaze|dimensions=minecraft:the_nether",
"alexsmobs:*|dimensions=twilightforest:twilight_forest"
]
dimensions= filter is present, the rule applies to all dimensionsblockedEntities = [
"minecraft:zombie|dimensions=minecraft:overworld"
]
Here, zombies are blocked only in the Overworld, while remaining unaffected in other dimensions.
Adjusting Natural/Custom Spawn Frequency
Adjusts natural spawn frequency for matching entities.
naturalSpawnWeightMultipliers = [
"minecraft:zombie=0.5",
"minecraft:creeper=2.5",
"minecraft:bat=0.0"
]
Format: entity_or_pattern = multiplier
| Multiplier | Effect |
|---|---|
0.0 |
Disables natural spawning |
0.5 |
Half as common |
1.0 |
Vanilla behaviour |
2.5 |
Roughly 250% spawn frequency |
10.0 |
Maximum supported multiplier |
Weight adjustments apply only to natural spawning. Spawner, command, and other spawn sources are unaffected.
Adjusts spawn success chance for matching entities created through EVENT or TRIGGERED spawn types.
customSpawnChanceMultipliers = [
"simpleenemymod:ruunit=0.1",
"simpleenemymod:usunit=0.1",
"examplemod:boss=0.0"
]
Format: entity_or_pattern = multiplier
| Multiplier | Effect |
|---|---|
0.0 |
Disables matching custom spawns |
0.1 |
Allows roughly 10% of attempts |
0.5 |
Allows roughly half of attempts |
1.0 |
Original spawning behaviour |
Chance adjustments apply only to EVENT and TRIGGERED spawns. Natural, spawner, spawn egg, command, and other spawn sources are unaffected.
NotTodayMob works automatically with:
No special integration is required.
If you encounter a compatibility issue with another mod, please report it via the project issue tracker so it can be investigated.