Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for AugmentedThunder

Villagers expand remembered villages with gradual homes, paths, scaffolding, warehouses, and resource logistics.

Report VillageGrowth?

Release
0.1.1

AugmentedThunder released VillageGrowth version 0.1.1 on Tue 1:16 PM

VillageGrowth 0.1.1

Player-Visible Changes

  • Active builders now keep bounded worksite chunks loaded so builds can continue after nearby players leave.
  • Dirt access paths for active projects build in quick safe batches instead of making villagers run back and forth for one path block at a time.
  • Builder assignments now stay tied to specific villager UUIDs for the active project, reducing worker churn and preventing unrelated villagers from taking over.

Admin And Config Changes

  • Added building.chunk-loading limits for active project chunk tickets.
  • Added building.paths controls for fast-lane path placement.
  • /villagegrowth inspect now reports active project progress, path backlog, unloaded or blocked steps, current target, and chunk ticket pressure.
  • /villagegrowth queue now includes template and cursor details for active projects.

Bug Fixes

  • Fixed project cursor advancement so sorted build steps advance by list position instead of original template index.
  • Unloaded build steps no longer count as completed work.
  • Villager focus locks now also clear and restore home memories while a worker is assigned.
  • Builders are now rescued or paused when they enter unsafe fall/suffocation work positions.
  • Reduced build-tick TPS spikes by caching VillageMemory repair-block checks briefly and throttling inline SQL/YAML saves between autosaves.
  • Reduced physical village census cost by caching metrics briefly and only serializing bed block-data when the scanned block is actually a bed.
  • Blocked active build targets are now diagnosed and temporarily skipped when workers are available but no worker can make progress, preventing repeated retries against the same stale blocked block.
  • Active projects now diagnose blocked steps anywhere in the project instead of only the current build anchor, so villages do not sit idle with an undiagnosed blocked-target state.
  • Auto-recovery no longer clears active project blocker cooldowns every minute, reducing repeated recovery churn and TPS spikes around stuck build targets.
  • /villagegrowth inspect now reports specific assignment diagnostics, such as placement budget exhaustion, before falling back to a generic blocked-target reason.

Managed World Safety And Shelter Retargeting

  • VillageGrowth now always treats stormcourts_court, stormcourts_jail, and CrimeReconstruction as blocked worlds at runtime, even if an older config still has an empty safety.blocked-worlds list.
  • New default configs list those protected worlds explicitly under safety.blocked-worlds.
  • Existing VillageGrowth projects saved in blocked worlds are now cancelled, and tracked VillageGrowth-owned blocks/supports in protected worlds are rolled back safely without touching unrelated blocks.
  • Villager shelter routing now detects repeated no-progress shelter attempts and retargets instead of continually driving villagers into the same failed one-block jump.

Spark-Guided TPS Stabilisation

  • Added a lightweight villageSummaries() API for integrations that only need village eligibility data, avoiding full admin diagnostics, warehouse inventory scans, worker diagnostics, and VillageMemory repair summaries.
  • Periodic dirty saves now use a coalesced async snapshot write path; manual save, reload, and shutdown still flush synchronously.
  • Build-tick inline saves now request the coalesced save queue instead of writing SQLite/YAML on the server thread.

Managed-World Growth Unblock

  • Added justaprankbro_scenes to default blocked worlds so growth projects, supports, and status views stay out of JustAPrankBro scene worlds.
  • VillageGrowth now hides any remaining managed-world VillageMemory records from growth status, summaries, project lookup, forced planning, and custom template builds.
  • Blocked-world cleanup now also targets JustAPrankBro scene-world projects and owned support/block records.
  • Permanently target-blocked projects now cancel, reject that unsafe site temporarily, and queue bounded rollback cleanup for plugin-owned project blocks/supports so real villages can choose a new safe site.
  • Orphaned active projects left behind after village cleanup/remap now queue bounded cleanup for tracked plugin-owned blocks and supports instead of logging that world blocks were left unchanged.
  • Placement cycle budget yields are reported as transient cycle-budget-yield diagnostics instead of persistent blocked project states.

Idle Villager Water Crossing

  • Origin villagers returning home may now cross safe water or use VillageGrowth boat transport instead of pacing along the shore forever.
  • Construction workers still respect building.workers.avoid-water-routes; the water-crossing allowance is scoped to idle home-return leash behavior.
  • Added building.workers.idle-home-leash-allow-water-crossings, default true, for admins who want to disable this behavior.

Villager Water Rescue Follow-Up

  • VillageGrowth's general villager safety rescue no longer teleports normal village residents back to shore the moment they step into water near their village.
  • Residents now get a bounded water-crossing grace period with floating enabled, while assigned construction workers still obey worker water-safety rules.
  • VillageGrowth-owned transport boats are now exempt from unsafe-location rescue so boat crossings cannot be interrupted by a safety teleport.

StormQuests Village Resource Integration

  • Added a safe grantVillageResources API for StormQuests village-specific quest rewards.
  • Resource grants reject missing villages, blocked worlds, infinite-resource mode, unknown material groups, and non-positive amounts.
  • Accepted quest resources update VillageGrowth virtual stockpiles and warehouse caches only; they do not force planning or place blocks directly.

Real Villager Sand And Edge Stuck Recovery

  • Added bounded runtime movement progress tracking for real villagers so same-block stalls, two-block pacing, and jump/fall loops no longer reset stuck timers forever.
  • Construction scouts/builders, villager sheltering, idle home-return leashing, passive origin-villager edge recovery, resource collection, and warehouse logistics now stop bad paths and retarget before falling back to route blocking or safe rescue.
  • Final rescue teleports only after repeated failed recovery attempts and only to already-loaded, validated, non-water, no-drop village ground.

NPC Temporary Block Filtering

  • VillageGrowth now ignores NPC-owned temporary bridge, catch, and water blocks during custom template capture and loaded physical village census.
  • Temporary NPC traversal aids are no longer counted as beds, job sites, captured structure blocks, template materials, or village resources.

Spark-Guided TPS Follow-Up

  • Repeated auto-recovery for projects still waiting on villager assignment is now backed off, preventing the same awaiting-worker-assignment project from clearing runtime every minute.
  • Active projects without an assigned worker no longer hold VillageGrowth chunk tickets just to wait for a worker. Tickets are kept for assigned workers and active work targets.
  • Build and maintenance behaviour remains enabled; this change reduces repeated scheduler and chunk-ticket pressure instead of disabling village growth.

Information

Published onMay 26, 2026
Downloads0

Platforms

Paper Paper (26.1.2)

Dependencies

Paper Paper
Edit Plugin Dependencies: Paper