This is a server-side mod that implements various countermeasures against mob farms. It currently affects:
- General mob farms (Zombie, Skeleton, Creeper, Zombie Piglin*, Enderman, etc.)
- Spawner mob farms (Blaze, Zombie, Skeleton, Spider, etc.)
- Structure mob farms (Pillager, Guardian, Wither Skeleton, etc.)
- Copper farms based on zombie reinforcements mechanics
- Iron farms
- Raid farms
All of them can be disabled from the configuration file nomobfarm.properties. The mod generally tries to be invisible to players obtaining resources legitimately, but false positives are possible and manifest as mobs taking longer to spawn. Mob drops are not affected, therefore players will never have to fight mobs without getting anything in return, at worst they will have to move to a different area to get new mobs.
The crop farms features have been moved into No Other Farms.
* Portal-based gold farms aren't affected at the moment. You can use Pigless Portals for that.
Configuration
Natural Spawner Nerf
This applies to "naturally spawned" mobs (that is, not through a mob spawner or structure generation), including the ones that continuously spawn in structures like Guardians. It detects when mobs originating from certain chunks die too frequently and slows down their spawn rates.
Configuration options:
natural_slowdown_rate=1000 # Rate at which mob spawns are slowed down relative to the
# mob death frequency. Higher values lead to longer intervals in which
# mobs won't spawn.
natural_recovery_rate=0.0003 # Rate at which the spawn algorithm goes back to normal
# when mobs aren't dying. It's essentially the rate at which the algorithm
# "forgets" how many mobs died (in deaths/tick).
natural_max_wait=100000 # Maximum interval (in ticks) in which mobs won't spawn.
natural_min_deaths=0 # Minimum number of mob deaths to trigger the slowdown.
natural_max_deaths=-1 # Number of (amortized) deaths after which mob spawning in the chunk is
# disabled altogether (until the data expires, see below). -1 means that
# this never happens.
natural_offline_persistence=259200 # How long the data about a chunk should persist since the last write (in
# seconds). Default is 3 real world days, which means that if a chunk is
# left alone for 3 days it will be restored to normal. This is different
# than the recovery rate, because the latter is used while the chunk is
# still loaded and depends on the death counter.
With these default values, the algorithm is moderately aggressive. It quickly curbs spawn rates when more than a few mobs from the same chunk die in a short time (because rapid, consecutive spawn batches in the same area are indicative of spawn mechanics abuse), but still allows mobs to spawn once in a while. Decrease the value of slowdown_rate to make it more conservative, increase max_wait and decrease recovery_rate to further reduce the rates for suspicious chunks.
You can disable this feature by setting natural_max_wait to 0.
Mob Spawner Nerf
This applies to mob spawner blocks. The default values are:
spawner_slowdown_near_rate=20 # Slowdown for mobs dying inside the 9x9x9 cube centered at the spawner.
spawner_slowdown_far_rate=100 # Slowdown for mobs dying outside the cube. Most farms bring them outside, as
# this would normally accelerate the spawner.
spawner_recovery_rate=0.001
spawner_max_wait=10000
spawner_min_deaths=15
spawner_max_deaths=-1
spawner_offline_persistence=259200
These values are rather conservative because, unlike for the other type of spawn mechanic, there's no obvious sign that the mobs are being spawned inside of a farm, at least based purely on the spawn/death rates, and also because spawners already have their own delay. This configuration will progressively slow down the spawner after at least 15 mobs die, though still allowing some mob spawns once in a while and allowing the spawner to go back to normal if its mobs aren't dying for a while (or aren't spawning at all), as long as the chunk remains loaded and ticking, or 3 real world days have passed with nothing happening on the chunk (because we don't want some random spawner to accumulate a slowdown because some other player used it the week before). The idea is that a player using the spawner legitimately would likely be discouraged by the slowdown and leave, allowing it to go back to normal after a while, while a farm would have to be used for a longer time to be actually worth building, which would cause the spawner to reach a high number of cumulated deaths and take a lot of time to go back to normal.
You can disable this feature by setting spawner_max_wait to 0.
Zombie Reinforcements Nerf
reinforcement_penalty=0.049 # Additional penalty to the chance of calling reinforcements for
# zombies that have already called reinforcements and zombies that
# were spawned as reinforcements. This is added to the vanilla
# penalty of 0.05 (5%). Set to 0 to disable.
reinforcement_penalty_conversion=true # Keep the reinforcement chance penalty after the zombie is converted
# to a drowned. Set to false to disable.
Iron Farm Nerf
Controlled by the config option golem_detection_memory=10000, which adds to the time interval (in ticks) in which villagers won't spawn a golem after seeing one. Set to 0 to disable.
Raid Farm Countermeasures
raid_center_min_randomization=16
raid_center_max_randomization=24
These two values regulate how much the position of the raid center is randomized, which hampers raid farms with a single, small spawn platform. Although the default values should cause existing designs to fail most of the times, players who are aware of this randomization could redesign their farms to take it into account. In that case increasing the raid_center_max_randomization value would make it harder to elude the countermeasure, but also reduce the fail rate.
Set both to 0 to disable this feature.
raid_min_size=512
This is the mininum "area" of a village required to start a raid. This breaks most existing raid farm designs, including the ones without a specific spawn platform. The area calculated is that of a rectangle that includes all the POIs (claimed beds and workstations) within 64 blocks of the player. As a side effect, this feature might also affect very sparse natural villages, particularly if they have been just found and the beds aren't claimed yet, or the terrain causes the villagers to be unable to find them. It will also affect natural villages where most villagers have died.
Set to 0 to disable this feature.
raid_no_bad_omen_loop=true
Prevents illagers that were previously spawned in a raid and left it from giving the bad omen effect. This prevents infinite raid farms from starting raids other than the first one.
Set to false to disable this feature.
Removed in 1.6.6 (moved to No Other Farms):
Automatic Crop Farm Countermeasures
farmer_instant_pickup=true # Don't drop crops when a farmer villager breaks them, instantly
# transfer the items into its inventory instead.
piston_moves_gourd=false # Pistons move melons and pumpkins instead of breaking them.
gourd_drop_requires_player=false # Melons and pumpkins don't drop items if they're not broken by
# a player.
bamboo_drop_requires_player=false
cactus_drop_requires_player=false
sugar_cane_drop_requires_player=false
Summary
Please report issues at github.com/orlouge/no-mob-farms/issues