Описание
# 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
**Smart villager takes the short path to get to his job site**

---
**Stupid villager walks off the screen to get to his job site**

## 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.
```json
{
"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
}
]
}