Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for LucasTHCR

Dynamic view & simulation distance adjustment per world — automatic, MSPT-aware, and fully configurable in a single conf

Report ViewDistanceTweaks?

R

2.6-RELEASE

ViewDistanceTweaks v2.6

Dynamic view distance and simulation distance adjustment per world — lightweight, fully configurable, and built for performance-critical servers.

New

  • Every message is now configurable via a new messages.yml, including an optional global prefix. Any key you delete falls back to the built-in English text, so an outdated file after an update can never leave you with blank lines — missing keys are simply counted in the console on startup.
  • Per-player fixed simulation distance, the counterpart to the existing fixed view distance: grant viewdistancetweaks.simfixed.<value> (2–32, highest wins) to pin an individual player's simulation distance. Unlike view distance this genuinely costs server performance, so it is off by default and meant for a handful of staff, not a donor rank.
  • /vdt status --fixed lists every player who currently holds a fixed view or simulation distance, the value in effect, and their world's current distance next to it — so you can confirm at a glance whether a permission actually took hold instead of guessing.
  • /vdt history shows the last 20 applied distance changes with how long ago they happened, the world, the old and new values, and why each one was applied (MSPT, high variance, prediction, revert, temporary override, startup grace, or a manual command and who ran it). Answers "why is my view distance 6 right now?" after the fact.

Changed

  • Empty worlds no longer jump to their maximum distance. A world with no players was previously driven to its configured maximum; the first player to walk in then landed on a fully maxed-out world, and max-decrease-step could only walk it back down one notch per check — exactly the load spike startup-grace exists to prevent. Empty worlds now drop to their minimum instead, configurable via the new proactive-mode-settings.empty-world-target (min / max / keep). Set it to max to restore the old behaviour.

Experimental

  • Folia support. All scheduling now runs through an adapter that uses Folia's regionized schedulers when present and the classic Bukkit scheduler otherwise; per-player changes are dispatched to each player's own region thread. On Paper the behaviour is unchanged. This has been compiled and verified against Paper but not yet tested on a live Folia server — if you run Folia, please report back before relying on it.

Dependencies

Support

Join our Discord: dc.gg/paperstream

Author: LucasTHCR

Information

Author
LucasTHCR
Published
August 7, 2026
Downloads
0

Platforms

Paper
Paper
1.21–26.2