Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Supported Versions: 1.17 ~ 26.1.2
-> Click here to contact us for support <-
Player: "Resource worlds are such a hassle, always having to teleport back and forth."
Player: "Can't gathering and building just happen in the same world?"
A dev: "But then you couldn't reset the world, and resources would just keep running out."
Player: "Can't the explored areas periodically revert to their original state?"
And so, this plugin was born.
A way to skip the pointless resource world and enjoy the convenience of unlimited resources in a single world!
🧩 Features
- Regenerate chunks that haven't been visited by players for a long time
- Optional regeneration engine to avoid chunk seams
- Optional land-claim regeneration protection modes
- Don't regenerate chunks containing RES claims
- Regenerate chunks containing RES claims, but not the blocks within the RES claim area
- Don't regenerate chunks containing GP claims
- Regenerate chunks containing GP claims, but not the blocks within the GP claim area
- Don't regenerate chunks containing GD claims
- Regenerate chunks containing GD claims, but not the blocks within the GD claim area
- Optional dependencies
- CoreProtect
- Residence
- GriefPrevention
- GriefDefender
- FastAsyncWorldEdit (required for 1.21+)
- Randomly regenerated ore resources
- Randomly regenerated loot chests and elytra resources
- Configuration that takes server performance into account
- Pause regeneration based on TPS until TPS returns to normal
- Pause regeneration based on player count until it drops below a set number
- Adjust how many chunks regenerate per tick
- Adjust the maximum number of blocks placed per regeneration
- Restrict the time window for regeneration
- Adjust the chunk generation strategy and aggressiveness
aggressive- If a chunk is expired, it's automatically loaded and regeneratedaverage- After a player loads a chunk, nearby chunks (3×3) are regenerated if expiredpassive- Only the chunk the player loads is regenerated if expired
- Limit the maximum number of elytra regenerated per day
- Adjust which biomes and worlds are allowed to regenerate
- Add extra regeneration delay after regenerating, to prevent players from farming resources at a fixed spot
- Randomize ore distribution after regeneration, to prevent fixed-spot farming
- Limit the height of ore obfuscation and which blocks get obfuscated
- Prevent loot chests from spawning items on regeneration, to prevent fixed-spot farming
- Adjust how often (in ticks) non-expired chunk data is saved and synced to the local or remote database
- Adjust how often (in ticks) database commands are executed
- Adjust how often (in ticks) chunk expiration is checked
- Adjust how often (in ticks) event-affected chunk calculations are processed
- Adjust how often (in ticks) blocks that need to be preserved are checked and restored, to avoid the visual glitch of the End gateway flickering in the center of the End
- Limit the maximum number of blocks processed per chunk-marking pass
- Multiple data storage options
yaml- localsqlite- localmysql- remote, requires a configured MySQL server
- A way for developers to integrate with the resource regeneration process
- Regeneration fires
Bukkitevents for developers to hook into IIntegrationManagerhandles the integration of land-claim protection, block logging, regeneration, and moreIAPIMainis the plugin's main interface, from which other classes can be obtained
- Regeneration fires
📥 How to Use
- Download this plugin
- Drop the
plugin.jarinto your server's plugins folder (plugins) - Done! (If you use a plugin loader, remember to
loadthe plugin)
🔴 When using this plugin, remember to back up your map to avoid any unexpected incidents!!!
⚙️ Configuration
After the plugin starts successfully, you'll find a config.yml file in the plugins/NatureRevive directory, which contains all of the plugin's settings.
💬 Commands
/nr forceregenall— Force-regenerate all expired chunks/nr regenchunk <bukkit/fawe>— Force-regenerate the current chunk (bukkit is auto-disabled on 1.21+)/nr reload— Reload the plugin/nr pause— Pause the resource regeneration process/nr resume— Resume the resource regeneration process/nr migrate <yaml/sqlite/mysql>— Migrate the database to the specified storage/nr debug— Debug messages; please don't use unless necessary
🔓 Permissions
naturerevive.forceregenall— Permission to use/nr forceregenallnaturerevive.regenthischunk— Permission to use/nr regenchunknaturerevive.togglerevive— Permission to use/nr pauseand/nr resumenaturerevive.reloadreviveconfig— Permission to use/nr reloadnaturerevive.navmigrate— Permission to use/nr migratenaturerevive.debug— Permission to use/nr debug
🧷 Source Code
🗺️ Displayed in BlueMap
🔧 How It Works
- After a player has been active in an area, it is marked as an "expired chunk"
- When no other players have "been active" in it for a certain period, regeneration is performed
- (By default, chunks containing land claims are excluded)
- "Being active" includes:
BlockBreakEventBlockBurnEventBlockCookEventLeavesDecayEventEntityDeathEvent(specific condition: the killer is a player and the victim is not a player)BrewEventFurnaceBurnEventEntityExplodeEventBlockExplodeEventBlockPlaceEventBlockRedstoneEventBlockGrowEventPlayerInteractEvent
- "Being active" includes:
🙏 Credits
| Contributor | Contribution |
|---|---|
| NCT skyouo | Creator of NatureRevive; lead developer for versions prior to 2.2.0 |
| twseer67875 | Added support for the GriefDefender plugin |
| thechosecat | Added a time gate to choose when chunk regeneration occurs; provided plugin optimizations |
| AlexCai2019 | Provided plugin optimizations |
📢 Notice
Please do not sell plugins developed by the Brilliant Team, or sell their features.
All of our plugins are provided to servers free of charge,
so we earn no real income from developing them.
Such behavior will, to some extent, reduce our willingness to keep developing,
and may lead us to consider turning free, open-source plugins into paid, closed-source ones. We hope you understand.


