Skip to content
Alexander Parent edited this page Jul 31, 2026 · 2 revisions

Pathfinding

Entity navigation for Minestom. Searching runs off the tick thread, following runs on it, and you never wait for a path.

NavigationSystem navigation = NavigationSystem.create();   // once per server

EntityNavigationController controller = navigation.controller(mob);
controller.moveTo(destination);

controller.tick();      // every tick, from the entity/instance tick thread

That is the whole everyday API. Everything else is opt-in.

Install

repositories { maven("https://reposilite.atlasengine.ca/public") }
dependencies { implementation("ca.atlasengine:pathfinding:9.1.0") }

Latest version: reposilite.atlasengine.ca

Where to go

Start here

  1. Getting Started — move a mob, read its state, handle arrival
  2. Reacting to Navigation — one listener for every mob you own
  3. Seeing the Path — draw the route in particles while you debug

Shaping behaviour

  1. Zones and Influences — keep mobs out of a sphere, price a swamp, pin them to roads
  2. Jumping, Climbing and Doors — gaps, ladders, and mobs that close doors behind them
  3. Custom Mobs — your own terrain costs, capabilities and block types

Going deeper

  1. Terrain and World Changes — what is walkable, and replanning when the world moves
  2. Planning Without the Follower — drive your own movement from a route
  3. Running at Scale — worker pools, backpressure, metrics to alarm on
  4. Shared Mesh — one route field for a crowd converging on a target

Reference

Demo

../Minestom/gradlew runExamples

Join localhost:25565 and type /nav: walk, chase, jump, doors, climb, swim, fly, custom, crowd <n>, shed, metrics, stop.

Clone this wiki locally