Villagers remember their village layout and rebuild damaged structures while survivors remain.
VillageMemory
Lets villagers remember village layouts, request repair supplies, and gradually rebuild damaged structures while survivors remain.
VillageMemory is a standalone Paper plugin that makes villages feel persistent instead of disposable. Villagers can remember the layout of their village, detect damaged or missing remembered blocks, request repair materials, and rebuild structures over time as long as at least one villager from that village remains alive.
VillageMemory stores block layouts and block data only. It never restores chest, barrel, or other container inventories, so villages can recover from damage without duplicating loot.
Features
- Automatic village detection from villagers and their home, job site, and meeting point memories.
- Multi-part village tracking for spread-out villages and nearby connected village areas.
- Villager origin tracking so known villagers stay associated with their remembered village.
- Remembered village layouts with configurable snapshot limits.
- Incremental snapshots that can scan large villages over multiple ticks.
- Loaded-chunk-only snapshot mode for safer live-server operation.
- Snapshot prioritisation for important village blocks such as beds, doors, workstations, paths, farms, structure blocks, and decorations.
- Terrain filtering so low-value natural terrain is not treated like rebuild-critical village structure.
- Stable auto-learning so new eligible village blocks are only remembered after a configurable stability window.
- Configurable crop snapshot support, disabled by default.
- Farm water snapshot support for remembered farmland layouts.
- Automatic re-snapshot support for villages that previously hit snapshot caps.
- Gradual visible repairs with configurable repair interval and blocks repaired per cycle.
- Villager-worker repair mode where villagers walk to damaged targets and repair them.
- Optional direct repair mode for servers that prefer repairs without worker pathing.
- Temporary scaffolding, ladders, and path supports for elevated or awkward repair targets.
- Temporary support cleanup, expiry, and protection from accidental player or physics removal.
- Survival-first worker behaviour that can pause work near hostile mobs or unsafe routes.
- Worker handoff and stuck-target handling so repair jobs can recover from blocked paths.
- Route-block diagnostics for repeated movement stalls, pacing loops, jump loops, unsafe drops, and blocked approaches.
- Recovery and unstuck tools for clearing bad repair assignments or blocked village repair state.
- Chunk-ticket support for active repair targets, with configurable per-village and global caps.
- Repairs continue while at least one villager remains.
- Repairs pause when all villagers from the village are gone.
- Repairs can be paused or resumed per village by admins.
- Block-state restoration without restoring container contents.
- Non-empty container protection during repair.
- Protected material lists for blocks that should never be restored or replaced.
- Resource-aware rebuilding with grouped material requirements.
- Configurable resource groups for wood, stone, glass, beds, workstations, crops, and miscellaneous materials.
- Temporary villager repair trades for missing supply groups.
- Repair trades disappear when villagers no longer need those resources.
- Player repair placement tracking for remembered village blocks.
- Damage and theft tracking for remembered village structures and containers.
- Daily capped positive contribution tracking for repair and supply actions.
- Growth-blocking damage summaries for compatible village-growth systems.
- Managed-world protection so court, jail, reconstruction, and prank-scene worlds are not treated as villages.
- Automatic cleanup of false villages, remembered blocks, resources, repair state, temporary supports, and origin tags from managed worlds.
- NPC temporary traversal blocks are ignored during snapshots, stable learning, repairs, and external remembered-block imports.
- Admin diagnostics for damaged blocks, shortages, worker state, route blockers, temporary supports, snapshot jobs, chunk tickets, storage health, and topology state.
- Admin tools for status, village listing, inspection, rescans, snapshots, forgetting villages, resources, recovery, pause, resume, save, backup, and reload.
- SQLite storage by default, with optional MySQL and MariaDB support.
- Bukkit service API for other plugins to inspect villages, village parts, remembered blocks, resources, shortages, repair state, storage health, and topology data.
- External village part and remembered-block APIs for compatible village-generation plugins.
- Optional Alignments integration for village repair, supply, damage, and theft reputation.
- Optional StormQuests integration for managed village rebuild quest progress and village-specific repair resource rewards.
Resource Modes
VillageMemory supports three rebuild resource modes:
infinitepartialplayer
infinite lets villages rebuild freely without consuming supplies or creating repair trades.
partial gives villages configurable starting stockpiles and lets villagers request missing resources through temporary repair trades.
player makes villages rely fully on player-supplied materials before they can rebuild.
The shipped default is currently infinite.
Persistence
VillageMemory stores remembered villages, village parts, block layouts, resource stockpiles, repair state, temporary supports, stable learning candidates, contribution records, audit records, villager origin tags, and topology metadata.
Supported storage modes:
sqlitemysqlmariadb
SQLite is the default because remembered village layouts can grow beyond comfortable YAML sizes.
Storage And Security
- SQLite is the default storage mode.
- MySQL and MariaDB are optional.
- SQLite paths are kept inside the plugin data folder.
- Example MySQL and MariaDB URLs use certificate and hostname verification.
- JDBC credentials are handled through the shared storage layer.
- Backups can be created before maintenance.
- Backups do not include config credentials.
- Container inventories are never restored.
- Non-empty containers can be protected from repair replacement.
- Dangerous materials such as command blocks, barriers, structure blocks, structure voids, jigsaws, and bedrock are excluded or protected by default.
- Repairs are bounded by configured cycle limits.
- Snapshot work can be incremental to avoid large one-tick scans.
- Managed-world exclusions prevent village memory, repairs, resources, and quest sync from touching court, jail, reconstruction, or scene worlds.
Commands
Main command:
/villagememory
Aliases:
/vmemory/vmem
Common commands:
/villagememory status/villagememory villages/villagememory inspect/villagememory inspect nearest/villagememory inspect <village>/villagememory rescan/villagememory snapshot <village|nearest>/villagememory forget <village>/villagememory resources <village|nearest>/villagememory recover <village|nearest> [soft|hard]/villagememory unstuck <village|nearest> [soft|hard]/villagememory pause <village>/villagememory resume <village>/villagememory save/villagememory backup/villagememory reload
Permissions
Every permission defaults to operator access.
Grant all VillageMemory permissions:
villagememory.admin
Or assign individual permissions:
villagememory.admin.commandvillagememory.admin.statusvillagememory.admin.inspectvillagememory.admin.rescanvillagememory.admin.snapshotvillagememory.admin.forgetvillagememory.admin.resourcesvillagememory.admin.recovervillagememory.admin.pausevillagememory.admin.savevillagememory.admin.backupvillagememory.admin.reloadvillagememory.bypass-alignment
Optional Integrations
VillageMemory works with other Thunder plugins while remaining usable on its own.
- Alignments can score village repair, village supply, village damage, and village theft actions. Positive repair and supply credit is capped per player, per village, per day, and recent village harm can block positive credit.
- StormQuests can create managed rebuild quests for remembered villages, credit rebuild progress from player supplies and valid repair placements, and grant village-specific repair resources through the VillageMemory API.
- StormCourts managed court, jail, and reconstruction worlds are excluded from village detection, snapshots, repairs, resources, and quest sync.
- JustAPrankBro scene worlds are excluded from village detection, snapshots, repairs, resources, and quest sync.
- Compatible NPC systems can place temporary traversal aids without those blocks being learned as permanent village structure.
Other plugins can use VillageMemoryApi to inspect villages, find nearest villages or village parts, read remembered blocks, check shortages, grant repair resources, create or remove external village parts, import remembered blocks, request snapshots, pause villages, forget villages, and inspect storage health.
These hooks are optional. If the other plugins are not installed, VillageMemory keeps working normally with its own detection, memory, repairs, resources, commands, and storage.
Notes
VillageMemory is designed for survival and RPG servers where villages should matter. It helps villages recover from damage without turning them into instant-regenerating loot machines.
Repairs are gradual, resource modes are configurable, villagers can visibly participate in rebuild work, and layout memory deliberately excludes container contents to keep rebuilding safe on public servers.