### CRITICAL FIXES
[1] TPS dropping to ~10 immediately after installing the plugin on Paper 26.1.2. The location cache was hammering chunk generation: `shouldGenerateChunks` default in 3.5.2 was `true` and the fill worker had no throttle. Default reverted to `false` (chunk generation now opt-in per world)
[2] Sustained TPS drop after 3.5.2 upgrade traced to background cache filling for `world_the_end` with `generate_chunks: true`. End chunks are sparse and unexplored — every cycle generated dozens of chunks. Default for End flipped to `generate_chunks: false`
[3] HologramManager startup sweep was iterating every loaded chunk in every world. Replaced with targeted lookup of known hologram UUIDs from `display_entities.yml`
[4] PacketHologramManager particle task fired every 10 ticks even when no holograms existed. Now early-returns on empty
[5] `smooth_transition` preload was hardcoded to generate chunks (`PaperLib.getChunkAtAsync(.., true)`). Now non-generating by default; the actual teleport still loads/generates the destination. Configurable via `smooth_transition.generate_chunks`
[6] `smooth_transition.chunk_preload_radius` default lowered from 2 (5×5 = 25 chunks) to 1 (3×3 = 9 chunks)
[7] Cache refill worker now throttles between successive fills via new `location_cache.fill_throttle_ticks` (default 10)
[8] Background cache for a misconfigured world no longer retries forever. New `location_cache.fail_world_disable_after_attempts` (default 3) disables cache for a world that fails N consecutive cycles. Re-enable via `/rtp reload` after fixing config
[9] `JumpRTPListener` no longer reads YAML on every PlayerMoveEvent. `ConfigManager` caches `jump_rtp.enabled` and `jump_rtp.enabled_worlds` as fields populated on reload. New helper `isJumpRtpEnabledInWorld(worldName)` does one HashSet lookup per move
### CONFIG
[10] New `location_cache.fill_throttle_ticks` (default 10)
[11] New `location_cache.fail_world_disable_after_attempts` (default 3)
[12] New `smooth_transition.generate_chunks` (default false)
[13] `world_the_end.generate_chunks` default changed from `true` to `false` in `location_cache.worlds`
[14] `smooth_transition.chunk_preload_radius` default lowered to 1
[15] `location_cache.cache_size` and `location_cache.refill_interval_seconds` keys exposed in defaults
### COMPATIBILITY
[16] Verified on Paper 26.1.2, Paper 1.21.11, Folia 1.21.x, Folia 26.1.x.
### FOR SERVER ADMINS
- If you saw sustained low TPS after installing 3.5.2 or earlier 3.5.3 — this build fixes it. No config edits required
- Want background cache for a specific world? Set `location_cache.worlds.<world>.generate_chunks: true` explicitly
- End RTP still works on demand (per `/rtp world_the_end` command). The change only affects passive background pre-caching
- If a misconfigured world keeps spamming "Failed to find a safe location" warnings, the cache will now auto-disable for that world after 3 cycles. Fix the config and `/rtp reload` to re-enable