← Назад к ресурсам

FarmControl

A farm limiter and governor.

Modrinth management optimization utility

Описание

FarmControl allows you to limit and govern certain aspects of mob farms on your server. ### 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. ### Installation To install the plugin, simply place the downloaded jar into your plugin directory. Be sure to configure the plugin by looking through its `config.yml` and `profiles.yml`, both located in the FarmControl folder of your plugin directory. By default, the plugin will only remove the random movement capabilities of and disable collisions for mobs in animal farms. ### Configuration There is much to configure with this plugin config.yml ```yaml # Configuration for FarmControl. # Plugin page: https://www.spigotmc.org/resources/86923/ # GitHub: https://github.com/froobynooby/FarmControl # Please don't change this! version: 7 # 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 # - soft-limit-animal-farms # - soft-limit-villager-breeders # - 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 disable-breeding: # You have to interact with an animal to breed it, so never undo this action on interact. interact: false # Holding the food required to breed an animal will tempt it, so never undo this action on tempt. tempt: false # 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 ``` profiles.yml ```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 # Disable breeding in farms containing 20 or more animals of the same type soft-limit-animal-farms: group: types: - "category:animal" count: 20 distance: 5 pure: true actions: - disable-breeding # Disable breeding in villager farms containing 20 or more villagers soft-limit-villager-breeders: group: types: - "villager" count: 20 distance: 10 actions: - disable-breeding # 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 ``` For help with making profiles, please visit the [wiki](https://github.com/froobynooby/FarmControl/wiki/Profiles). ### Commands To run the command `/farmcontrol ` the user will require `farmcontrol.command.`. - `/farmcontrol reload` - Reload the plugin's configuration. - `/farmcontrol status ` - Show the status of the given world. - `/farmcontrol history` - Display actions performed by the plugin in the recent past. - `/farmcontrol notify` - Toggle notifications from the plugin. ### Metrics This plugin uses bStats to collect some (non-identifying) data about the servers running this plugin. You can opt-out by editing the `config.yml` in the bStats folder located within your server's plugin directory.