NotTodayMob

“What do we say to the Mob of Death? Not today.” Block unwanted mobs or adjust spawn frequency using simple, server-side config rules.

NotTodayMob

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.6

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.

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"
]
blockedBabyEntities

Defines which baby variants are prevented from spawning without blocking their adult counterparts.

Supports:

  • Exact IDs - Namespace wildcards
  • Prefix and suffix wildcards
  • Optional dimension scoping
Examples
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"
]
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/Custom 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.

customSpawnChanceMultipliers

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 Behaviour
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.

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.

The NotTodayMob Team

profile avatar
  • 1
    Followers
  • 6
    Projects
  • 113.7K
    Downloads

More from M0stlyHarmlessView all

  • MalisisDoorsReborn project image

    MalisisDoorsReborn

    • 8.4K
    • Mods

    Animated doors and custom door creation with millions of possibilities! — Re-imagined from the original MalisisDoors mod by Ordinastie.

    • 8.4K
    • June 20, 2026
    • Mods
    • +2
  • OutpostZero project image

    OutpostZero

    • 56.1K
    • Mods

    Start the game inside an underground survival bunker and discover additional bunkers hidden throughout the world.

    • 56.1K
    • June 16, 2026
    • Mods
    • +3
  • NoChatter project image

    NoChatter

    • 35.0K
    • Mods

    Hide selected chat/system messages using simple, client-side JSON rules.

    • 35.0K
    • June 2, 2026
    • Mods
  • MalisisSwitchesReborn project image

    MalisisSwitchesReborn

    • 8.2K
    • Mods

    Simple wireless redstone switches and sensors — Re-imagined from the original MalisisSwitches mod by Ordinastie.

    • 8.2K
    • May 29, 2026
    • Mods
    • +2
  • MalisisDoorsReborn project image

    MalisisDoorsReborn

    • 8.4K
    • Mods

    Animated doors and custom door creation with millions of possibilities! — Re-imagined from the original MalisisDoors mod by Ordinastie.

    • 8.4K
    • June 20, 2026
    • Mods
    • +2
  • OutpostZero project image

    OutpostZero

    • 56.1K
    • Mods

    Start the game inside an underground survival bunker and discover additional bunkers hidden throughout the world.

    • 56.1K
    • June 16, 2026
    • Mods
    • +3
  • NoChatter project image

    NoChatter

    • 35.0K
    • Mods

    Hide selected chat/system messages using simple, client-side JSON rules.

    • 35.0K
    • June 2, 2026
    • Mods
  • MalisisSwitchesReborn project image

    MalisisSwitchesReborn

    • 8.2K
    • Mods

    Simple wireless redstone switches and sensors — Re-imagined from the original MalisisSwitches mod by Ordinastie.

    • 8.2K
    • May 29, 2026
    • Mods
    • +2