WorldResetter

WorldResetter

Deletes the world folder on every server startup so players get a fresh random seed each time.

47 downloads
2 followers

🌍 WorldResetter

A minimal Paper plugin that deletes the overworld folder on every server startup and creates a fresh world with configurable seed, type, gamerules, time, weather, and Paper-specific performance tuning.


βš™οΈ How It Works

On every startup (before worlds load), WorldResetter deletes the world folder, then programmatically creates a new overworld using Bukkit.createWorld() with your configured seed and world type.

It also applies your gamerules, time, weather, and per-world performance settings, and writes the seed and spawn protection radius into server.properties.

ℹ️ world_nether and world_the_end are not touched.


πŸ’‘ Why It Exists

Built for lava rising minigame servers where every match should feel different. Instead of playing the same map over and over, the world resets on every server restart β€” giving players a brand new terrain each time.


πŸ“œ Commands

Command Description
πŸ”€ /wr toggle Toggles world reset on/off
βœ… /wr toggle on Enables world reset on next startup
❌ /wr toggle off Disables world reset on next startup
ℹ️ /wr settings info Shows current settings
🌱 /wr settings seed <seed|random> Sets the world seed (or random)
πŸ—ΊοΈ /wr settings worldtype <type> ⚠️ Currently under maintenance β€” disabled
🎲 /wr settings gamerule <rule> <value> Sets a gamerule
🎲 /wr settings gamerule list Lists configured gamerules
🎲 /wr settings gamerule reset Clears all gamerules
β˜€οΈ /wr settings time <day|night|0-24000> Sets world time
β›ˆοΈ /wr settings weather <clear|rain|thunder> Sets weather
πŸ›‘οΈ /wr settings spawnprotection <radius> Sets spawn protection radius
πŸ–₯️ /wr settings viewdistance <2-32|default> Sets this world's view distance (Paper-only)
🌐 /wr settings simulationdistance <2-32|default> Sets this world's simulation distance (Paper-only)
πŸ›οΈ /wr settings structures <true|false> Toggles structure generation (villages, strongholds, etc.)
♻️ /wr settings reset Resets all settings to defaults
πŸ“¦ /wr version Shows current version vs latest available
πŸ“₯ /wr version update Downloads and applies the latest version from Modrinth

Alias: /worldresetter can be used in place of /wr

Permission: worldresetter.admin (default: op)


πŸ› οΈ Configuration (config.yml)

enabled: false
settings:
  seed: ''
  world-type: 'normal'
  time: -1
  weather: ''
  spawn-protection: -1
  view-distance: -1
  simulation-distance: -1
  generate-structures: true
  gamerules: {}

πŸ“‹ Requirements

  • β˜• Java 21+
  • πŸ“¦ Paper or a Paper-based fork (e.g. Purpur) β€” 1.21.11+ recommended

⚠️ Not compatible with vanilla Spigot or CraftBukkit β€” see Platform Support below.


🧩 Platform Support

WorldResetter uses the Paper Plugin system (not Bukkit's plugin.yml) and only works on Paper and Paper-based servers like Purpur β€” it does not work on plain Spigot or CraftBukkit.

This isn't a bug, it's intentional: some of the plugin's features (like per-world view distance and the modern command API) simply don't exist outside of Paper. If your server runs on Purpur, you're fine β€” Purpur is built on top of Paper, so everything works the same.


πŸš€ Performance Optimizations

A few things this plugin does to keep your server running smoothly:

  • ⚑ Faster restarts β€” Deleting the old world used to happen one file at a time, which could take a while on large maps. Now it deletes everything at once using multiple CPU cores, so your server starts back up much faster β€” especially noticeable on SSD/NVMe drives.
  • πŸͺΆ Lighter load per world β€” You can lower the view distance and simulation distance just for this world, without affecting your other worlds. Small minigame maps don't need long render distances, so turning this down reduces lag with no downside.
  • ⏭️ Skip unnecessary generation β€” If players never explore for loot, you can turn off village/stronghold generation entirely β€” this makes new worlds generate faster.

πŸ”„ Auto-Update

WorldResetter checks the Modrinth API every 6 hours for new releases. OPs are notified on join when an update is available. Use /wr version to check manually and /wr version update to download and apply the update automatically.


πŸ“„ License

MIT


βš™οΈ Source Code

GitHub

No gallery available for this project.