Villager Brain Configuration

Villager Brain Configuration

Mod

A highly optimized server-sided mod that allows full configuration of villager pathfinding malus

Server Game Mechanics MobsOptimization

330 downloads
13 followers
Follow Save

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

Smart villager takes the short path to get to his job site


Stupid villager walks off the screen 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

Vanilla: VillagerEntity.tick(): 7.42

Modded Logic

Modded: VillagerEntity.tick(): 5.68

Mod total

villager-bran-config: 1.75ms

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
    }
  ]
}

Project members

joshieman

Member

Details

Licensed MIT
Published a month ago
Updated 17 days ago