Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Per-world view and simulation distance, adjusted automatically from MSPT and chunk load.
ViewDistanceTweaks v2.8.1
Dynamic view distance and simulation distance adjustment per world, driven by what your server can actually carry at that moment.
Bugfix release. Two of these affect anyone using per-world check intervals or the chunk generation safeguard, so updating is worthwhile even if 2.8 looked fine.
Fixed
/vdt simulatedid not predict what the engine actually does. The preview summed each world's weight aschunk-weight × priority, while the live path also divides by the complexity multiplier. Withuse-complexity-weighting: truethe two therefore worked from different totals, and the preview showed proactive targets that never happened — which is precisely what/vdt simulateexists to rule out.- Chunk generation was counted twice. A newly generated chunk fires both
ChunkPopulateEventandChunkLoadEventwithisNewChunk(), and both were counted. Every rate was roughly double the truth, sochunks-per-second-threshold: 15actually tripped at around 7 real chunks per second, and/vdt statusreported inflated numbers. The safeguard was consistently twice as aggressive as configured. Both listeners are still in place — the second one covers server paths where populate does not fire — but a chunk is now counted once per window. - A world with its own, shorter
ticks-per-checkran its first check on placeholder values. The shared snapshot (MSPT, weight sum, variance) was only refreshed one full globalticks-per-checkafter the start delay. Any world configured to check more often than that fired first and read the startup placeholders: an MSPT of 50, which sits above the default decrease threshold, so it cut distances on a perfectly healthy server, with a weight sum of 0.0001 feeding the proactive formula on top. This happened after every start, every/vdt reloadand every/vdt enable. Servers on the default config were not affected. /vdt profilerequired thepresetpermission. Those are not the same level of trust:/vdt presetrewrites your config.yml on disk, while/vdt profileonly lays a temporary overlay thatnormalundoes. Granting someone the in-event switch also granted them the config file. It now uses its own node,viewdistancetweaks.vdt.command.profile.
Dependencies
- Paper 1.21.x / 26.x — required
- PlaceholderAPI — optional
- EssentialsX — optional, only for AFK detection
Support
Join our Discord: dc.gg/paperstream
Author: LucasTHCR
Platforms
Paper
1.21–26.2