Performance, Data, and Backups
Understand asynchronous chunk preparation, deletion budgets, island-level updates, persistent data, and backup scope.
Island creation and chunk preparation
Future overworld island areas can be prepared in small asynchronous batches to reduce the number of view-distance chunks requested during one player action. islands.pregeneration controls:
- Whether preparation is enabled.
- The number of future island cells to keep ready.
- Chunk radius, with
-1using Paper view distance. - Chunks started per batch.
- Maximum concurrent in-flight Paper chunk requests.
- Tick interval between batches.
Only the overworld is prepared ahead. Nether and End centers are prepared on first access. Pregeneration can spread CPU work over time but consumes additional world disk space.
Island deletion
Deletion uses both a block-count budget and a millisecond budget per tick. It normally scans only the purchased border and skips chunks that were never generated. scan-maximum-border: true can include structures placed outside the purchased border by administrative tools, at a higher cost.
Deletion intent is persisted before physical cleanup. Interrupted work returns to the queue on startup. The player-facing recreation cooldown is independent from the remaining physical cleanup job.
Block-based island level
Configured materials contribute their value when physically placed in the island. Container contents and player inventories do not count. The OneBlock center and an active support coordinate are excluded.
Normal break, place, explosion, and piston events apply point deltas without a full scan. Bursts are combined into delayed saves. A slower audit catches changes made by plugins that do not emit ordinary player events; missing chunks are not generated and snapshot counting is moved away from the server thread.
Persistent files
| File | Contents |
|---|---|
data/islands.yml | Identity, index, owner, members, bans, trust, breaks, level, upgrades, home, warp, and deletion state. |
data/players.yml | Player UUID and language preference. |
data/player-progress.yml | Personal total, tier, and material break counters. |
Snapshots are written through a single background writer, first to a temporary file and then through an atomic move where available. Bukkit world state is not modified from arbitrary asynchronous threads.
Performance expectations
These mechanisms limit and distribute work; they do not guarantee a fixed TPS or MSPT. Results depend on view distance, pregeneration radius, storage, CPU, concurrent users, entity load, and other plugins. Profile representative creation and deletion activity with Spark on hardware similar to production.