
Villager Brain Configuration
A highly optimized server-sided mod that allows full configuration of villager pathfinding malus
Villager Brain Config
A lightweight, highly optimized mod that makes villager pathfinding behavior fully configurable
Features
- 
Per-block malus control 
 Customize how villagers treat different blocks in pathfinding. Blocks are configurable to any malus, block and item tags supported
- 
Profession-based malus 
 Configure different path preferences per villager profession.
- 
Global block penalty caching 
 Pathfinding results are cached for maximum efficiency across multiple villagers
- 
Native modded support The config file supports any modded blocks or professions 
Example Use Cases
- Prevent villagers from walking into trap blocks like campfires or magma
- Make water paths viable for fishermen only
- Design custom village layouts with optimized navigation paths
- Prevent villagers from wandering off paths
- Add personality to each profession type
Pathfinding Visualizations
Planned features
- Per-villager-type rules (eg. plains villagers, taiga villagers)
Performance
Villager Brain Config is designed to be almost invisible in impact or even faster than vanilla
Test case
- 250 villagers
- Each pathing to a unique workstation in a grid
- Compared vanilla to modded using Spark profiler
Results
Vanilla Logic

Modded Logic

Mod total

Configuration
All settings are in a villager-brain-config.json file in the config folder.
{
  "walk_on_block_penalties": {
    "minecraft:grass_block": 4.0,
    "minecraft:dirt_path": 0.0,
    "default": 5.0
  },
  "walk_through_block_penalties": {
    "minecraft:lava": -1.0,
    "minecraft:tall_grass": 20,
    "default": 0.0
  },
  "actions_penalties": {
    "jump": 10.0
  },
  "professions": {
    "minecraft:farmer": {
      "walk_on_block_penalties": {
        "minecraft:farmland": 0.0,
        "minecraft:grass_block": 2.0
      }
    },
    "minecraft:fisherman": {
      "walk_on_block_penalties": {
        "minecraft:water": 0.0
      },
      "walk_through_block_penalties": {
        "minecraft:water": 0.0
      }
    }
  },
  "avoids": [
    {
      "block": "minecraft:lava",
      "radius": 3,
      "penalty": -1.0
    }
  ]
}
