- Download Link
- https://www.spigotmc.org/resources/86923/
- Source Code
- https://github.com/froobynooby/FarmControl
- Documentation
- https://github.com/froobynooby/FarmControl/wiki
- Minecraft Versions
- 1.15-1.19
- Compatible Java Versions
- Java 8 and above

Features
- Limit the size of mob farms on your server.
- Reduce unnecessary collisions and movement within mob farms.
- Disable the awareness or AI of mobs in farms in response to the size of the farm or the server's performance.
- Highly configurable - allowing you to tailor the plugin to your needs.
- Low impact - with the brunt of the plugin's processing performed asynchronously.
Configuration
Two configuration files are available for FarmControl.
YAML:
# Configuration for FarmControl.
# Plugin page: https://www.spigotmc.org/resources/86923/
# GitHub: https://github.com/froobynooby/FarmControl
# Please don't change this!
version: 6
# Every how many ticks should we run the profile check / action cycle?
cycle-period: 600
# How long in ticks should we wait before starting the checking tasks following the plugin's start up?
# * This is useful when using the 'reactive' mode where it is desirable to ignore the server's performance in the first
# few minutes following a restart.
start-up-delay: 0
# These settings can be specified per world.
# * Note: If a world is not specified or if a setting is missing, it will use the settings listed under the default
# section.
world-settings:
default:
# Which profiles (as given in profiles.yml) should we run?
profiles:
# These profiles are constantly run.
proactive:
- soft-nerf-animal-farms
# - trim-animal-farms
# - trim-sparse-animal-farms
# These profiles only run when the server is performing poorly and are progressively undone as performance
# improves (as defined under the reactive-mode-settings).
# * Note: It is generally preferable to ensure your server's performance doesn't degrade in the first place,
# rather than try to mitigate it. That said, there are some reasonable use cases for this mode, such as
# allowing your players to keep larger farms at the cost of nerfing them when performance begins to degrade.
reactive:
# - hard-nerf-animal-farms
# - freeze-animal-farms
# These settings concern the reactive mode for triggering profile check / action cycles.
reactive-mode-settings:
# Above what MSPT should the reactive mode be triggered?
trigger-mspt-threshold: 45.0
# Below what MSPT should the reactive mode be untriggered, and actions undone?
untrigger-mspt-threshold: 35.0
# These settings concern how the plugin should handle undoing actions performed on mobs once the reactive mode has
# been untriggered.
untrigger-settings:
# How many cycles of the reactive mode being untriggered should have to pass before any actions are undone?
minimum-cycles-before-undo: 10
# At most how many mobs should have their actions undone per cycle?
maximum-undos-per-cycle: 40
# How much should an entity contribute to the maximum-undos-per-cycle limit?
# * For example, if maximum-undos-per-cycle was 40 and the entity-undo-weight for villagers was 5, at most 8
# villagers could have their actions undone (since 5 * 8 = 40).
# * If an entity type is not specified, the value under default will be used.
entity-undo-weight:
default: 1
villager: 5
# These settings concern when we should exclude a mob from having actions applied to them.
exclusion-settings:
# Should we not perform actions on tamed mobs?
tamed: true
# Should we not perform actions on named mobs?
named: true
# Should we not perform actions on mobs in love-mode (breeding animals)?
love-mode: true
# Should we not perform actions on mobs that are leashed?
leashed: true
# Should we not perform actions on patrol leaders?
patrol-leader: false
# Should we not perform actions on mobs that are younger than this value (in ticks)?
younger-than: 0
# Which types of mobs should we not perform actions on?
type:
# - villager
# For which metadata should we not perform actions on a mob?
# * Some plugins will add metadata to mobs that they spawn or use. This setting allows you to exclude those mobs
# from having actions performed on them by this plugin.
metadata:
- Elitemob # Elite mobs from the plugin EliteMobs.
- Elitemobs_NPC # NPCs from the plugin EliteMobs.
- Supermob # Super mobs from the plugin EliteMobs.
- infernalMetadata # Infernal mobs from the plugin InfernalMobs.
- NPC # NPCs from the plugin Citizens.
- shopkeeper # Shopkeepers from the plugin Shopkeepers.
# These settings concern properties of actions.
action-settings:
# These settings concern when an action should be undone, and can be specified per action.
# * Note: If an action is not specified, or if an option is blank, the settings listed under default will be
# used.
undo-on:
default:
# Should we undo this action when the mob is interacted with?
interact: false
# Should we undo this action when the mob is damaged?
damage: false
# Should we undo this action when the mob is targeted by another entity (e.g. a zombie targeting a villager)?
target: false
# Should we undo this action when the mob is tempted by a player (e.g. a cow tempted a player holding wheat)?
tempt: false
remove-ai:
interact: true
damage: true
target: true
remove-awareness:
interact: true
damage: true
target: true
disable-collisions:
tempt: true
# These settings concern how we determine the server's MSPT.
mspt-tracker-settings:
# Over how many ticks should we collect tick durations for calculating the MSPT?
# * Setting this too high will make the MSPT very slow to react to changes.
# * Setting this too low will make the MSPT volatile.
collection-period: 1200
YAML:
# Please visit https://github.com/froobynooby/FarmControl/wiki/Profiles for help with making profiles.
profiles:
# Remove random movements and disable collisions of mobs in animal farms
soft-nerf-animal-farms:
group:
types:
- "category:animal"
count: 15
distance: 5
actions:
- remove-random-movement
- disable-collisions
# Remove the awareness of mobs in animal farms
hard-nerf-animal-farms:
group:
types:
- "category:animal"
count: 15
distance: 5
actions:
- remove-awareness
- disable-collisions
# Remove the AI of mobs in animal farms
freeze-animal-farms:
group:
types:
- "category:animal"
count: 15
distance: 5
actions:
- remove-ai
- disable-collisions
# No more than 20 animals (all of the same type) within close proximity
trim-animal-farms:
group:
types:
- "category:animal"
count: 21
distance: 5
pure: true
actions:
- kill
# No more than 50 animals (all of the same type) sparsely placed (within 160 blocks of each other)
trim-sparse-animal-farms:
group:
types:
- "category:animal"
count: 51
distance: 160
pure: true
actions:
- kill
# No more than 10 villagers per chunk
trim-villager-chunks:
group:
types:
- "villager"
count: 11
distance: same-chunk
actions:
- kill
Commands
/farmcontrol reload - Reload the plugin's configuration.Permission - farmcontrol.command.reload
/farmcontrol status <world> - Show the status of the given world
Permission - farmcontrol.command.status
/farmcontrol history - Display actions performed by the plugin in the recent past.
Permission - farmcontrol.command.history
/farmcontrol notify - Toggle notifications from the plugin.
Permission - farmcontrol.command.notify
Last edited: