Custom Village


Tested on Spigot-1.14, 1.15, 1.16, 1.19.


A Minecraft (Bukkit) plugin that allows to detect and control custom villages.

This plugin takes care of the pain I experienced when I created my own village. I created a big enough village, and its population took out of control. Villagers seemed to grow infinitely. Cats were leaving the village and were limited in count in villages only. Golems were obedient and followed the documented rules, but my god, they anyway followed the infinity of villagers. I ended up with a mess of hundreds of illegal entities on the map. Fortunately, here I could fix the issue.


  • Detect villages based on locations of villagers
  • Calculate a number of beds in the villages and limit villagers population considering the beds
  • Limit population of cats (not tamed) and iron golems (non-player created) strongly according to the documentation

Limit mechanics.

All village-decisive entities: beds, golems, cats, villagers - are clustered in clusters of 32x12x32 size for X, Y, and Z coordinates.

All clusters in a square radius of 1 form one village.

For example, if there are four villagers in the following X, Y, and Z coordinates:

  • Villager #1: 100, 50, 100 (cluster coordinates 4, 10, 4)
  • Villager #2: 150, 50, 150 (cluster coordinates 5, 10, 5)
  • Villager #3: 200, 50, 200 (cluster coordinates 6, 10, 6)
  • Villager #4: 250, 50, 250 (cluster coordinates 8, 10, 8)

The #1 and #2 villagers are considered as the villagers of the same village. The #3 and #4 villagers belong to their own villages.

If the square radius was 2, villager #3 would join #1 and #2 villagers in their village, and villager #4 would still belong to another village.

Then, each village as a set of clusters enforces its own limit of entities.


  • customvillage reload - reload config from disk
  • customvillage info info [@type : villagers(default) | golems | cats | beds] [@loaded : fully | partially(default) | no] [@scale; default=8] - show information
  • customvillage optimize - removes excessive villagers, iron golems and cats


  • Access to 'reload' command: customvillage.reload (default: op)

  • Access to 'info' command: (default: op)

  • Access to 'optimize' command: customdamage.optimize (default: op)


Default configuration file


I will be happy to add some features or fix bugs. My mail: [email protected].

Useful links

Related projects


  • To post a comment, please or register a new account.
Posts Quoted:
Clear All Quotes

About This Project

  • Project ID
  • Created
    Jul 8, 2019
  • Last Released File
    Aug 4, 2022
  • Total Downloads
  • License



Recent Files