Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
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.
Latest Update - Version 1.0.4
NotTodayMob now includes optional support for controlling baby variants.
The new blockBabyVariants setting allows pack creators and server administrators to decide whether baby versions of blocked entities should also be prevented from spawning.
Features
- Block specific mob spawning
- Adjust natural spawn frequency using configurable weight multipliers
- Optionally replace/remove matching spawners during chunk loading
- Automatically removes spawn eggs and spawners from player inventories/in world
- Additional fine-grained control for baby variants with support for vanilla and modded mobs that expose baby/adult state through standard Minecraft entity behaviour
- Supports exact IDs and wildcard matching including dimension-specific rule scoping
- Periodic performance statistics logging
- Works automatically with modded mobs and biomes
- No biome or world generation changes required
- Lightweight and safe for large modpacks
- Server and multiplayer friendly
Note
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.
Typical Use Cases
- Reduce the number of specific mobs in survival gameplay
- Increase the presence of certain creatures in themed worlds
- Disable problematic or unwanted modded mobs
- Balance mob populations in large modpacks
- Fine-tune difficulty without editing datapacks
Configuration Guide
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
blockEntitiesEnabled
Controls whether matching entities are prevented from spawning.
Default: true
If disabled, all entity blocking rules are ignored.
blockBabyVariants
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
worldgenSpawnerRemoval
Controls whether matching world-generated spawners are removed or replaced during chunk loading.
Default: true
If enabled, matching spawners will be:
- Replaced using
worldgenSpawnerReplacements, or - Removed if no valid replacement is defined
If disabled, world-generated spawners remain unchanged.
worldgenSpawnerReplacements
worldgenSpawnerReplacements = [
"minecraft:zombie"
]
Behaviour
- Applies only to world-generated spawners (e.g. dungeons, structures)
- Only accepts exact entity IDs
- Replacement occurs automatically when a chunk is generated or loaded
- Multiple entries can be provided as fallbacks
- If no valid replacement is defined, the spawner is removed instead
- Existing worlds will be updated as chunks are loaded
Example
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
suppressBlockedEntitySpawners
Controls whether matching spawners are blocked from use.
Default: true
If disabled:
- Spawners remain usable
- Entity spawning behaviour still follows blocking rules
suppressBlockedEntitySpawnEggs
Controls whether matching spawn eggs are blocked from use.
Default: true
If disabled:
- Spawn eggs can still be used
- Entity spawning behaviour still follows blocking rules
Inventory and Item Cleanup
cleanupDroppedItems
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.
inventoryCleanupIntervalTicks
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.
enableStatsLogging
Controls whether periodic NotTodayMob summary statistics are written to the server log.
Default: false
statsLoggingIntervalTicks
Controls how often (in ticks) summary statistics are logged.
Default: 12000
| Ticks | Actual Time |
|---|---|
12000 |
Ten minutes |
24000 |
Twenty minutes |
statsLoggingVerbose
Controls whether additional detail is included in each statistics report.
Default: false
When enabled, reports may include:
- Top blocked entities
- Rule match breakdowns
statsLoggingToSeparateFile
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
blockedEntities
Defines which entities are prevented from spawning.
Supports:
- Exact IDs
- Namespace wildcards
- Prefix and suffix wildcards
- Optional dimension scoping
Examples
blockedEntities = [
"minecraft:skeleton",
"minecraft:*spider",
"alexsmobs:*",
"minecraft:zombie|dimensions=minecraft:overworld"
]
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"
]
Behaviour
- Limits the rule to the specified dimension(s)
- Multiple dimensions can be provided using commas
- If no
dimensions=filter is present, the rule applies to all dimensions - Works with both vanilla and modded dimensions
- Supports exact IDs and wildcard matching
Example
blockedEntities = [
"minecraft:zombie|dimensions=minecraft:overworld"
]
Here, zombies are blocked only in the Overworld, while remaining unaffected in other dimensions.
Adjusting Natural Spawn Frequency
naturalSpawnWeightMultipliers
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 Behaviour
| 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.
Compatibility
NotTodayMob works automatically with:
- Modded mobs and biomes
- Custom dimensions
- Datapack-driven spawning
No special integration is required.
Reporting Issues
If you encounter a compatibility issue with another mod, please report it via the project issue tracker so it can be investigated.


