Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Dynamic view & simulation distance adjustment per world — automatic, MSPT-aware, and fully configurable in a single conf
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 --fixedlists 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 historyshows 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-stepcould only walk it back down one notch per check — exactly the load spikestartup-graceexists to prevent. Empty worlds now drop to their minimum instead, configurable via the newproactive-mode-settings.empty-world-target(min/max/keep). Set it tomaxto 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
- Paper 1.21.x / 26.x — required
- PlaceholderAPI — optional
Support
Join our Discord: dc.gg/paperstream
Author: LucasTHCR
Information
- Author
- LucasTHCR
- Published
- August 7, 2026
- Downloads
- 0
Platforms
Paper
1.21–26.2