Entity snapshots and hoppers

Use precompute and visibility controls with their native fallbacks and gameplay limits in mind.

On this page

AI precompute queue

Workers calculate target-candidate distances from snapshots without live entity references. Main checks identity, position, goal membership, and freshness before using results. Final predicates, target events, pathfinding, and movement stay on main.

Custom goals, Brain paths, excluded types, and stale results use native fallback. This does not make all AI asynchronous. Capture and validation still cost main-thread work; profile whether this module helps your workload.

ai-precompute-queue.exclude-mob-types, such as [minecraft:villager], selects native target calculation for those types. It does not stop mob ticks. Queue/candidate bounds are in the entity reference.

Tracking and culling

Main captures loaded-block geometry; workers calculate detached distance/line-of-sight visibility diffs. Main validates current geometry, native eligibility, and plugin hide/show before pairing and spawn/remove delivery.

LOS culling deliberately changes visibility behind solid walls. Incomplete/over-capacity snapshots fall back. If visibility conflicts with your gameplay/plugin, compare feature-flags.entity-tracking-culling: false on staging and restart. Investigate geometry and native ranges too.

Hopper spreading

Only retries of previously idle, empty, non-loot hoppers are spread. Active transfers and inventory hooks retain native order/timing. groups: 1 preserves native retry frequency.

An InventoryMoveItemEvent, InventoryPickupItemEvent, or HopperInventorySearchEvent listener restores native polling. A production plugin set can therefore behave differently from empty staging. Not every hopper automatically becomes less frequent.

Observers retain native scheduled two-tick redstone edges. Test item flow, sorters, and inventory integrations. For timing-sensitive farms, compare behavior with the flag off/on and revert if the result no longer matches your design.

Loading the index…