Mob Farm Manager [supports 1.7.10 up to 1.21] Hopper support icon

Mob Farm Manager [supports 1.7.10 up to 1.21] Hopper support -----

Limit mob farms to prevent lags!



[​IMG]
As of 2.0.0.0 version you need CMILib plugin to make this plugin work properly.

[​IMG]
Limit total amount of entities in chunks or from huge spawner farms to prevent from unnecessary server load. It can limit entity amount in each chunk by set limit. In example by default there can be only 20 pigs in one chunk and 100 animals (pigs, cows, horses, rabbits, chickens). Set your own limits and avoid lags from unnecessary mob grinders ir huge animal farms.

[​IMG]

[​IMG]
Minecraft 1.7.10/1.8/1.9/1.10/1.11/1.12/1.13/1.14/1.15/1.16/1.17/1.18/1.19/1.20/1.21 (recommended)
CMILib 1.0.2.0 or newer


[​IMG]
  • Lightweight, works in async mode to avoid unnecessary server load
  • Can dynamically adjust hopper transfer rates to lower server load dramatically in case some one create huge hopper contraptions and lags out server intentionally or not.
Without hopper control we have 244 500 item transfer events and increased load on server​
[​IMG]
When hopper control enabled, event count drops to 4 400 and server load reduced dramatically.
[​IMG]
This is only 30sec sample with active 170 hoppers and 20 minecart hoppers.
  • Supports all entities
  • Can limit how many wolfs follows player at once.
  • Print list of chunks with most entities in them for simple management
  • Option to limit armor stands amount in chunk (they are entity to)
  • Option to limit item frame amount in chunk (they are entity to)
  • Option to limit placed blocks like hopper, piston, sticky piston or observer in each chunk
  • Option to Ignore armor stands with items in them
  • Option to Ignore item frames with item in them
  • Option to Ignore tamed animals
  • Option to Ignore named animals
  • Option to Ignore baby animals
  • Option to Ignore Pigs with saddles
  • Option to ignore world
  • Option to auto clean world
  • Option to clean only on creature spawn
  • Option to pick spawn events to check on
  • Option to make entity groups
  • Option to manually clean chunks around all online players with output how many entities where removed around which player
  • Option to limit monster building (wither, snowman, irongolem) dependign on players permissions
Config file:
Code (Text):

# Language file you want to use
Language: EN
Log:
  #
  # When enabled we will log entity removals into log files for future reference
  Enabled: false
  # Amount of entities need to be removed for log entry to be created
  # Helps out to void recording small amounts of regular cleanings
  From: 5
HopperControl:
  #
  # Enables or disable hopper item transfer rate
  # Only for 1.8.x and above servers
  # By enabling this any contraptions based on regular hopper ticking will break and hopper transfer rate will be adjust dinamicaly
  # In case hopper is being used intensively, its transfer interval will get increased until max limit to lower load on server
  # It will get reseted if hopper is not used for particular time frame
  Enabled: false
  # Defines default item transfer rate in ticks (20 ticks 1 second). 8 is default vanilla behavior
  Default: 8
  # Defines max interval between item transfer. 40 will result in 1 item every 2 seconds.
  SlowestRate: 40
  # Defines how often to adjust hopper transfer rate in actual transfer. So 30 will mean that after hopper transfers 30 items, its rate will get adjusted
  AdjustEvery: 30
WolfControl:
  #
  # Checks tamed wolfs in defined chunk range and if its above allowed limit then makes them sit down
  # This is limit per player so value of 2-3 is more than enough
  Enabled: false
  # Defines max allowed wolfs per player which can follow him
  # This will be checked on general entity amount check defined belove
  Max: 3
EntitySpawn:
  #
  # Checks Chunk when entity spawns
  Check: true
  # When set to true players without permissions: mfm.build.wither mfm.build.irongolem mfm.build.snowman will be prevented from building appropriate monsters
  PreventMobBuild: false
  # When set to true iron golems in villages will not spawn throw natural means
  PreventIronGolemSpawn: false
  # Range in chunks from origin. In example with range 2 all 9 (3x3) chunks will be counted as one and limits will be used as for one chunk
  # Values are limited to 1, 2 and 3, there is no need to have anything higher than this
  # At range of 3 chunks we will group 5x5 area which would amount to 25 chunks, use this option only if you want to have really strict limitations
  # In 99% of times 2 chunk range will do the trick
  GroupChunks: true
  GroupChunksRadius: 2
#
# When set to true entities which are above allowed limit will get removed
# Disabling this will prevent entities from disappearing in front of your eyes, but this can allow player from stacking dozens or even hundreds of mobs in one chunk throw multiple methods
# Disable at your own risk
RemoveExisting: true
#
# List of chunks we should exclude from entity checks
# Format - worldName:x:z
# For example - LtCraft:5:-1
ExcludedChunks: []
AutoClean:
  #
  # Checks chunks around players for over populated farms
  Use: true
  #
  # Informs users with mfm.cleaninform permission node how many entities we cleaned up and which ones in particular
  Inform: true
  # How often to check chunks in seconds. Minimal value: 15
  Interval: 30
  # Defines max amount of entities which we will remove from a chunk or chunk group when checking it
  # Set to 0 if you want to disable limit
  MaxRemoved: 0
  # When set to true and value for ChunkRadius is provided, we will group more then one chunk into check
  GroupChunks: false
  # Range around player in chunks to check. 2 means that 9 chunks will be checked, 3 - 25 chunks and so on
  # Max value is 5 to avoid unnecessary load on server
  # 1 = 1x1 area = 1 total chunks
  # 2 = 3x3 area = 9 total chunks
  # 3 = 5x5 area = 25 total chunks
  ChunkRadius: 2
  # Defines range from 1 to 2 in chunks we will check around player when performing autoclean
  # This only applies when you don't have GroupChunks enabled
  ExpandRange: 2
Commands:
  Clean:
    # Defines max amount of entities which we will remove from a chunk or chunk group when cleaning it
    # Set to 0 if you want to disable limit
    MaxRemoved: 0
    # If this set to true, chunks will be grouped up and counted as one. In example with range 2 all 9 (3x3) chunks will be counted as one and limits will be used as for one chunk
    # This will give wider range of mob cleaning
    # This only applies for clean command. If you want to keep similar or same behavior as other options, like auto clean or spawn listener, set this to the same values as those ones
    GroupChunks: false
    GroupChunksRadius: 1
Ignore:
  #
  # When this set to true, armor stands with items on it will be ignored on chunk cleanup
  # Recomended to keep it at true to avoid player item deletion
  FullArmorStands: true
  #
  # When this set to true, entities which picked items, will be ignored on chunk cleanup
  # Recommended to keep it at true to avoid player item deletion
  EntityWithPickedItem: true
  #
  # When this set to true, item frames with items in it will be ignored on chunk cleanup
  # Recomended to keep it at true to avoid player item deletion
  FullItemFrames: true
  #
  # When this set to true, tamed animals will be ignored
  # Recomended to keep it at true to avoid player animals being despawned
  TamedAnimals: true
  #
  # When this set to true, animals with custom name will be ignored
  # Recomended to keep it at true to avoid special player animals being despawned
  NamedAnimals: true
  #
  # When this set to true, animals with sadle will be ignored
  # Recomended to keep it at true to avoid special player animals being despawned
  WithSadle: true
  #
  # When this set to true, baby animals will be ignored
  BabyAnimals: true
  #
  # List of worlds to be ignored by plugin
  Worlds:
  - Test
#
# When enabled we will exclude disabled worlds from /mfm list command output
ExcludeDisabledFromList: false
BlockTypes:
  #
  # Limitations to how many particular block we can place in each chunk
  # This can be bypassed with mfm.bypasslimit.[btype] permission node
  # New materials can be added manually if need be
  Limit: false
  # When enabled we will check piston moved blocks between chunks
  # This check can't be bypasses with mfm.bypasslimit.[btype] as we don't have player reference
  # Keep in mind that this can be more heavy on server side if you have more blocks set to be checked and players decide to abuse this check itself
  CheckPistonMove: true
  List:
    HOPPER: 10
    PISTON: 10
    STICKY_PISTON: 10
    OBSERVER: 10
#
# All possible spawn reassons to check
# Set to false if you don't want to do checks on particular spawn reasson
SpawnReasons:
  NATURAL: true
  JOCKEY: true
  CHUNK_GEN: true
  SPAWNER: true
  TRIAL_SPAWNER: true
  EGG: true
  SPAWNER_EGG: true
  BUCKET: true
  LIGHTNING: true
  BUILD_SNOWMAN: true
  BUILD_IRONGOLEM: true
  BUILD_WITHER: true
  VILLAGE_DEFENSE: true
  VILLAGE_INVASION: true
  BREEDING: true
  SLIME_SPLIT: true
  REINFORCEMENTS: true
  NETHER_PORTAL: true
  DISPENSE_EGG: true
  INFECTION: true
  CURED: true
  OCELOT_BABY: true
  SILVERFISH_BLOCK: true
  MOUNT: true
  TRAP: true
  ENDER_PEARL: true
  SHOULDER_ENTITY: true
  DROWNED: true
  SHEARED: true
  EXPLOSION: true
  RAID: true
  PATROL: true
  BEEHIVE: true
  PIGLIN_ZOMBIFIED: true
  SPELL: true
  FROZEN: true
  METAMORPHOSIS: true
  DUPLICATION: true
  COMMAND: true
  ENCHANTMENT: true
  POTION_EFFECT: true
  CUSTOM: true
  DEFAULT: true
#
# Settup for entity groups
# You can define different groups for different types of animals/monsters/entities
# If entity gets over total amount of group limit, he will not be allowed to spawn
EntityGroups:
  Animals:
    Use: true
    Limit: 40
    List:
    - pig
    - cow
    - horse
    - rabbit
    - sheep
    - chicken
    Worlds:
    - lt_craft
    - lt_craft_nether
    - lt_craft_the_end
  Monsters:
    Use: true
    Limit: 40
    List:
    - zombie
    - skeleton
    - slime
    - creeper
    - squid
    RemoveExisting: true
    Worlds:
    - lt_craft
    - lt_craft_nether
    - lt_craft_the_end
#
# This list is automatically filled with ALL possible entities in game, so some of them can just not work until future update
EntityTypes:
  ACACIA_BOAT:
    Use: true
    # Max amount of entities, set to -1 if you want to disable limit
    # If you not sure what is that entity, then keep it at -1 limit, to not limit its spawning
    Limit: -1
    # When enabled entity will be included in clean process while using /mfm clean command
    # If not set then defaults to true
    ManualClean: true
    # When enabled entity will be included in automatic clean process
    # If not set then defaults to true
    AutoClean: true
    # When disabled entity will not be allowed to be spawn over natural means
    # Defaults to true if not set specifically
    NaturalSpawn: true
    # When enabled instead of removing entity entirely we will disable its AI lowering server resource usage without removing it
    # Keep in mind that this will bypass entity limit, but any entity over the limit will become inactive
    # If not set then defaults to false
    DisableAI: false
    # Defines limits by specific worlds
    # If world is not defined then default limit will be used
    # If world is provided then we will ignore default limit and will use provided for this specific world
    WorldLimit:
      LT_Craft: -1
      LT_Craft_nether: -1
      LT_Craft_the_end: -1
  ACACIA_CHEST_BOAT:
    Use: true
    Limit: -1
  ALLAY:
    Use: true
    Limit: 20
  ARMADILLO:
    Use: true
    Limit: -1
  ARMOR_STAND:
    Use: true
    Limit: 10
  ARROW:
    Use: true
    Limit: 10
  AXOLOTL:
    Use: true
    Limit: 20
  BAMBOO_CHEST_RAFT:
    Use: true
    Limit: -1
  BAMBOO_RAFT:
    Use: true
    Limit: -1
  BAT:
    Use: true
    Limit: 20
  BEE:
    Use: true
    Limit: 20
  BIRCH_BOAT:
    Use: true
    Limit: -1
  BIRCH_CHEST_BOAT:
    Use: true
    Limit: -1
  BLAZE:
    Use: true
    Limit: 30
  BOGGED:
    Use: true
    Limit: -1
  BREEZE:
    Use: true
    Limit: -1
  BREEZE_WIND_CHARGE:
    Use: true
    Limit: -1
  CAMEL:
    Use: true
    Limit: 10
  CAT:
    Use: true
    Limit: -1
  CAVE_SPIDER:
    Use: true
    Limit: 30
  CHERRY_BOAT:
    Use: true
    Limit: -1
  CHERRY_CHEST_BOAT:
    Use: true
    Limit: -1
  CHEST_MINECART:
    Use: true
    Limit: -1
  CHICKEN:
    Use: true
    Limit: 20
  COD:
    Use: true
    Limit: 20
  COMMAND_BLOCK_MINECART:
    Use: true
    Limit: -1
  COW:
    Use: true
    Limit: 20
  CREAKING:
    Use: true
    Limit: -1
  CREEPER:
    Use: true
    Limit: 30
  DARK_OAK_BOAT:
    Use: true
    Limit: -1
  DARK_OAK_CHEST_BOAT:
    Use: true
    Limit: -1
  DOLPHIN:
    Use: true
    Limit: 10
  DONKEY:
    Use: true
    Limit: -1
  DRAGON_FIREBALL:
    Use: true
    Limit: -1
  DROWNED:
    Use: true
    Limit: 10
  EGG:
    Use: true
    Limit: -1
  ELDER_GUARDIAN:
    Use: true
    Limit: 10
  ENDERMAN:
    Use: true
    Limit: 30
  ENDERMITE:
    Use: true
    Limit: 30
  ENDER_DRAGON:
    Use: true
    Limit: 5
  ENDER_PEARL:
    Use: true
    Limit: 10
  END_CRYSTAL:
    Use: true
    Limit: -1
  EVOKER:
    Use: true
    Limit: -1
  EXPERIENCE_BOTTLE:
    Use: true
    Limit: -1
  EXPERIENCE_ORB:
    Use: true
    Limit: -1
  EYE_OF_ENDER:
    Use: true
    Limit: -1
  FALLING_BLOCK:
    Use: true
    Limit: -1
  FIREBALL:
    Use: true
    Limit: 10
  FIREWORK_ROCKET:
    Use: true
    Limit: -1
  FISHING_BOBBER:
    Use: true
    Limit: -1
  FOX:
    Use: true
    Limit: 10
  FROG:
    Use: true
    Limit: 15
  FURNACE_MINECART:
    Use: true
    Limit: -1
  GHAST:
    Use: true
    Limit: 30
  GIANT:
    Use: true
    Limit: 20
  GLOW_ITEM_FRAME:
    Use: true
    Limit: -1
  GLOW_SQUID:
    Use: true
    Limit: 10
  GOAT:
    Use: true
    Limit: 20
  GUARDIAN:
    Use: true
    Limit: -1
  HOGLIN:
    Use: true
    Limit: 20
  HOPPER_MINECART:
    Use: true
    Limit: -1
  HORSE:
    Use: true
    Limit: 20
  HUSK:
    Use: true
    Limit: 20
  ILLUSIONER:
    Use: true
    Limit: -1
  IRON_GOLEM:
    Use: true
    Limit: 20
  ITEM:
    Use: true
    Limit: -1
  ITEM_FRAME:
    Use: true
    Limit: 30
  JUNGLE_BOAT:
    Use: true
    Limit: -1
  JUNGLE_CHEST_BOAT:
    Use: true
    Limit: -1
  LIGHTNING_BOLT:
    Use: true
    Limit: -1
  LINGERING_POTION:
    Use: true
    Limit: -1
  LLAMA:
    Use: true
    Limit: -1
  MAGMA_CUBE:
    Use: true
    Limit: 20
  MANGROVE_BOAT:
    Use: true
    Limit: -1
  MANGROVE_CHEST_BOAT:
    Use: true
    Limit: -1
  MARKER:
    Use: true
    Limit: -1
  MINECART:
    Use: true
    Limit: -1
  MOOSHROOM:
    Use: true
    Limit: -1
  MULE:
    Use: true
    Limit: -1
  OAK_BOAT:
    Use: true
    Limit: -1
  OAK_CHEST_BOAT:
    Use: true
    Limit: -1
  OCELOT:
    Use: true
    Limit: 20
  OMINOUS_ITEM_SPAWNER:
    Use: true
    Limit: -1
  PAINTING:
    Use: true
    Limit: -1
  PALE_OAK_BOAT:
    Use: true
    Limit: -1
  PALE_OAK_CHEST_BOAT:
    Use: true
    Limit: -1
  PANDA:
    Use: true
    Limit: 20
  PARROT:
    Use: true
    Limit: 10
  PHANTOM:
    Use: true
    Limit: 20
  PIG:
    Use: true
    Limit: 20
  PIGLIN:
    Use: true
    Limit: 20
  PIGLIN_BRUTE:
    Use: true
    Limit: -1
  PILLAGER:
    Use: true
    Limit: -1
  PLAYER:
    Use: true
    Limit: -1
  POLAR_BEAR:
    Use: true
    Limit: 10
  PUFFERFISH:
    Use: true
    Limit: 20
  RABBIT:
    Use: true
    Limit: -1
  RAVAGER:
    Use: true
    Limit: -1
  SALMON:
    Use: true
    Limit: 20
  SHEEP:
    Use: true
    Limit: 20
  SHULKER:
    Use: true
    Limit: -1
  SHULKER_BULLET:
    Use: true
    Limit: -1
  SILVERFISH:
    Use: true
    Limit: 30
  SKELETON:
    Use: true
    Limit: 30
  SKELETON_HORSE:
    Use: true
    Limit: 10
  SLIME:
    Use: true
    Limit: 30
  SMALL_FIREBALL:
    Use: true
    Limit: -1
  SNIFFER:
    Use: true
    Limit: 20
  SNOWBALL:
    Use: true
    Limit: -1
  SNOW_GOLEM:
    Use: true
    Limit: -1
  SPAWNER_MINECART:
    Use: true
    Limit: -1
  SPECTRAL_ARROW:
    Use: true
    Limit: -1
  SPIDER:
    Use: true
    Limit: 30
  SPLASH_POTION:
    Use: true
    Limit: -1
  SPRUCE_BOAT:
    Use: true
    Limit: -1
  SPRUCE_CHEST_BOAT:
    Use: true
    Limit: -1
  SQUID:
    Use: true
    Limit: 20
  STRAY:
    Use: true
    Limit: 20
  STRIDER:
    Use: true
    Limit: 20
  TADPOLE:
    Use: true
    Limit: 20
  TNT:
    Use: true
    Limit: -1
  TNT_MINECART:
    Use: true
    Limit: -1
  TRADER_LLAMA:
    Use: true
    Limit: -1
  TRIDENT:
    Use: true
    Limit: -1
  TROPICAL_FISH:
    Use: true
    Limit: 20
  TURTLE:
    Use: true
    Limit: 20
  VEX:
    Use: true
    Limit: -1
  VILLAGER:
    Use: true
    Limit: 20
  VINDICATOR:
    Use: true
    Limit: -1
  WANDERING_TRADER:
    Use: true
    Limit: -1
  WARDEN:
    Use: true
    Limit: 10
  WIND_CHARGE:
    Use: true
    Limit: -1
  WITCH:
    Use: true
    Limit: 20
  WITHER:
    Use: true
    Limit: 10
  WITHER_SKELETON:
    Use: true
    Limit: 10
  WITHER_SKULL:
    Use: true
    Limit: -1
  WOLF:
    Use: true
    Limit: 20
  ZOGLIN:
    Use: true
    Limit: 20
  ZOMBIE:
    Use: true
    Limit: 30
  ZOMBIE_HORSE:
    Use: true
    Limit: 10
  ZOMBIE_VILLAGER:
    Use: true
    Limit: -1
  ZOMBIFIED_PIGLIN:
    Use: true
    Limit: 20

 


[​IMG]
/mfm clean (chunkRadius) - Cleans entities around all players
/mfm list (chunkRadius) - Prints top 20 list of chunks with most entities in them
/mfm chunks - Prints top 20 chunks with most active hoppers in them
/mfm limits - Shows general information about entities limits in your area
/mfm reload - Reloads config file

[​IMG]
mfm.command.clean:
description: Grants access to the clean command
default: op
mfm.command.reload:
description: Grants access to the clean command
default: op
mfm.command.list:
description: Grants access to the list command
default: op
mfm.command.chunks:
description: Grants access to the chunks command
default: op
mfm.build.wither
description: Grants access to build wither
default: false
mfm.build.irongolem
description: Grants access to build irongolem
default: false
mfm.build.snowman
description: Grants access to build snowman
default: false
mfm.bypasslimit.armorstand
description: Grants access to bypass armor stand limits
default: false
mfm.bypasslimit.itemframe
description: Grants access to bypass item frame limits
default: false
mfm.bypasslimit.[type]
description: Grants access to bypass particular block limit. Which can be one of 4 things: hopper, piston, sticky_piston, observer
default: false
mfm.cleaninform
description: Allows to see auto cleanup feedback messages
default: false
mfm.command.limits.full
description: Allows to see more detailed output for limits command
default: false

Setup:
  1. Drag and Drop jar into your plugins folder
  2. Start and stop server for default files to be created
  3. Edit by your choice, start and enjoy :)
Terms and conditions

Plugin is under the All rights reserved license
This plugin cannot be refunded
You are not allowed to redistribute or resell this plugin in any website
You are not allowed to modify or decompile this plugin
The price will change in the future



Review section only for reviews, not for bug reports or feature requests!
Resource Information
Author:
----------
Total Downloads: 3,147
First Release: Dec 5, 2015
Last Update: Jun 6, 2025
Category: ---------------
All-Time Rating:
79 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings