Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
TerraRenew
TerraRenew is a seed-based terrain renewal plugin for Paper and Folia, created by Aitchn. It rebuilds generated content with the loaded world's current seed and generator, either manually or after a marked target has remained inactive for a configured period.
Features
- Renew a single chunk without replacing native structure pieces inside it.
- Renew one selected native structure without replacing surrounding terrain.
- Schedule chunks and structures independently; the default inactivity period is 90 real-world days.
- Preserve players and, by default, tamed, named, and artificial entities while restoring naturally generated entities.
- Warn when players are inside a manual renewal area and require the exact command to be entered twice.
- Store renewal marks in a local SQLite database.
- Customize every player-facing message with MiniMessage in
messages.yml. - Use loaded vanilla or custom worlds. Generation always follows that world's current seed and generator.
[!CAUTION] Back up your worlds before installing or upgrading TerraRenew. Changing a world's seed, generator plugin, datapacks, or Minecraft version may produce terrain that differs from the original generation.
Compatibility
| Platform | Tested versions | Required Java |
|---|---|---|
| Paper | 1.21, 26.2 | Java 21 on 1.21.x; Java 25 on 26.x |
| Folia | 1.21.4, 1.21.8, 1.21.11, 26.1.2, 26.2 | Java 21 on 1.21.x; Java 25 on 26.x |
TerraRenew v0.1.0 supports Paper 1.21 through 26.2 and published Folia versions from 1.21.4 through 26.2. The same plugin JAR is used across the supported range. Other Bukkit derivatives are not supported.
Installation
- Stop the server and create a full world backup.
- Place
TerraRenew-0.1.0.jarin the server'splugins/directory. - Start the server and check the console for the TerraRenew enable message.
- Review
plugins/TerraRenew/config.ymlandplugins/TerraRenew/messages.yml. - Grant only the permissions required by your administrators.
TerraRenew creates plugins/TerraRenew/terrarenew.db for scheduled targets. Do not edit this database while the server is running. When using a custom generator, keep the same generator plugin and configuration available during renewal.
How Renewal Works
Chunk and structure renewal are deliberately separate:
- Chunk renewal restores generated block data, biomes, block entities, and natural entities in one chunk while excluding native structure pieces.
- Structure renewal restores only the selected vanilla-generated structure within its bounding box. Blocks outside that structure are left unchanged.
Manual renewal ignores the inactivity timer. The first command displays any player-count warning and opens a confirmation window; enter the exact same command again within 30 seconds by default to proceed. A successful manual renewal resets any matching schedule.
Automatic renewal runs only after every chunk covered by the target is unloaded. If a target is loaded, contains players, or cannot be renewed, it remains scheduled and is retried later.
Commands
The main command is /terrarenew; /tr is an alias. Chunk and structure commands must be run by a player because they use the player's current world and location.
| Command | Description |
|---|---|
/terrarenew chunk renew [chunk-x chunk-z] |
Renew the current chunk or the supplied chunk coordinates. |
/terrarenew chunk mark <id> [duration] |
Mark the current chunk for automatic renewal. |
/terrarenew structure renew [minecraft:structure] |
Renew a native structure intersecting the current chunk. |
/terrarenew structure mark <id> [minecraft:structure] [duration] |
Mark the selected native structure for automatic renewal. |
/terrarenew unmark <id> |
Delete a scheduled renewal target. |
/terrarenew list |
List all marked targets. |
/terrarenew info <id> |
Show details and the due time for one target. |
/terrarenew reload |
Reload config.yml and messages.yml. |
Durations accept s, m, h, or d, such as 30s, 6h, or 90d. If multiple structures intersect the current chunk, specify the namespaced structure key shown by TerraRenew.
Permissions
All permissions default to server operators.
| Permission | Allows |
|---|---|
terrarenew.command.chunk |
Chunk renewal and chunk command access |
terrarenew.command.structure |
Structure renewal and structure command access |
terrarenew.command.mark |
Creating chunk or structure marks |
terrarenew.command.unmark |
Removing marks |
terrarenew.command.list |
Listing marks |
terrarenew.command.info |
Inspecting a mark |
terrarenew.command.reload |
Reloading configuration and messages |
Creating a mark requires both the relevant chunk or structure permission and terrarenew.command.mark.
Configuration
The default configuration waits 90 days of inactivity, checks every five minutes, and processes at most two automatic renewals per check:
inactivity-period: 90d
confirmation-window: 30s
scheduler:
check-interval: 5m
missed-run-policy: DELAYED_ONCE
startup-delay: 1m
player-retry-delay: 15m
max-renewals-per-check: 2
renewal:
blocks-per-region-task: 8192
preserve:
tamed-entities: true
named-entities: true
artificial-entities: true
DELAYED_ONCE allows overdue targets to be considered after the startup delay. SKIP resets overdue targets when the plugin starts. Lower blocks-per-region-task to spread block writes over more Folia region tasks; higher values complete each renewal in fewer tasks.
Edit messages.yml to translate or restyle output. Values support MiniMessage formatting. Keep all required message keys, then run /terrarenew reload.

