All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Player View Distance Controller

Player View Distance Controller

by Wyzebb • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Banner

generic ghsponsors-singular

<a style="padding-right: 0.5rem" href="https://discord.gg/akbd8EPSgr"></a>

Player View Distance Controller (PVDC) is a lightweight yet powerful Paper plugin that gives full control over view distance. It boosts performance and offers extensive customisation, including permissions, automatic performance modes, AFK handling, and more. With support for LuckPerms, GeyserMC and PlaceholderAPI, it integrates smoothly into any server.

Visit the docs for information on how to use this plugin.


Key Features

  • Per-player control: Each player has their own max view distance, which can be set and saved individually by themselves or by another player.
  • Global control: Easily set the max view distance of all online players.
  • MSPT‑based dynamic mode: Automatically reduce view distance when MSPT increases, helping to stabilise performance.
  • Ping‑based adjustments: Automatically reduce view distance for players with high ping to improve client performance.
  • AFK view restriction: AFK players can have their view distances restricted while AFK to reduce unnecessary chunk loading and ticking.
  • LuckPerms integration: There are many permissions available and max view distances can be set for groups or individual players via Luckperms (LuckPerms is not required).
  • Saves data persistently: Automatically sets max view distances when players connect to the server.
  • Bedrock support: Players connecting via GeyserMC are fully supported and bedrock players can have custom default values.
  • Very lightweight: The plugin is very light and can even greatly improve performance as the server may have to send less chunk data to players! Entities, blocks and fluids outside view distance are also not ticked, improving performance.
  • Multi-language support: All messages are customisable and you can even add your own languages.
  • PlaceHolderAPI support: The plugin contains an internal expansion with some useful placeholders.
  • Console support: Most commands can be executed from the console.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Paper Purpur
17h ago 1
1.21.x 1.20.x
Folia Paper Purpur
17h ago 1
1.21.x
Folia Paper Purpur
17h ago 1
1.21.x
Folia Paper Purpur
17h ago 1
1.21.x
Folia Paper Purpur
17h ago 1
1.21.x 1.20.x
Paper
17h ago 1
1.21.x 1.20.x
Paper
17h ago 1
1.21 1.20.x
Paper
17h ago 1
1.21 1.20.x
Paper
17h ago 1
1.21 1.20.x
Paper
17h ago 1
1.21 1.20.x
Paper
17h ago 1
1.21 1.20.x
Paper
17h ago 1
[2.3.3] v2.3.3 by Wyzebb on Oct 15, 2026
Download
  • Fix lang files resetting on server restart and reduce lang manager bloat

[2.3.2] v2.3.2 by Wyzebb on Oct 15, 2026
Download
  • Only save dynamic mode enabled to disk and not the whole config, fixing issue #21
  • Add optional player data saving configuration by @ttugrul in #22. Thank you 😁!
  • Use min and max values before optimising view distance for dynamic/ ping modes instead of after
  • Add send-dynamic-msgs config option, false by default
  • Improve config file comments and default messages

[2.3.1] v2.3.1 by Wyzebb on Oct 15, 2026
Download
  • Fix error on tab completion of player names
[2.3.0] v2.3.0 by Wyzebb on Oct 15, 2026
Download
  • OP players now have no bypass commands by default, so you may wish to add these with your permission system.**

  • Add sync-simulation-distance option to allow for chunk ticking customisability
  • Use world context when considering LP nodes and recalculate view distance on world change
  • Make all bypasses off for everyone by default (ops without the permission nodes will no longer have bypass perms)
  • Make ~40 bug fixes and general improvements
  • Add zero-chunks-afk config option to allow for no chunk loading when AFK (use with caution)
  • Significant codebase optimisations and refactoring to prepare for future API
  • Make plugin more customisable with more config options

<br />

  • Add migration guides to docs
  • Add search functionality to docs

<br />

  • Check if a player is on Bedrock edition with the Geyser API rather than using the "." prefix which could be customised
  • Fix PVDC not always detecting LP changes and using them incorrectly when multiple nodes were changed
  • Fix coming out of AFK setting view distance to the wrong value and maxdistance bypass being used incorrectly in the code
  • Remove useless chunksPing config value

  • ConfigUpdater library not working properly
[2.2.0] v2.2.0 by Wyzebb on Oct 15, 2026
Download
  • Add dynamic mode
  • Add ping mode (the two modes can work together!)
  • Create [new docs (all old info and LOADS of new info has been put here)](https://docs.wyzebb.dev/docs/pvdc/intro)
  • Add offline player support for some commands
  • Add afkOnJoin option to restrict view distance on join
  • Allow ability to use "none" in language files to stop a message being sent
  • Add config updating library to set new config keys in config.yml, ping-mode.yml and dynamic-mode.yml
  • Remove reload command as the reloaded values weren't actually used (will implement this properly in the future)
  • Improve console support
  • Completely overhaul README with page similar to docs info page
  • Fix LOTS of bugs and change small things for user QoL
  • Improve chunk calculator efficiency and refactor saving data for performance and reduce bloat, particularly where LuckPerms is involved
  • Change error, player offline and placeholder messages and usages and default configs
  • Improve backwards compatibility

[2.1.2] v2.1.2 by Wyzebb on Oct 15, 2026
Download
  • Add console support to all commands
  • Make reset command work properly when resetting other people
  • Make reset command logic more accurate
  • Check if permission changes contain 'pvdc' before setting view distances for players

  • Performance improvements
  • Bug fixes

[2.1.1] v2.1.1 by Wyzebb on Oct 15, 2026
Download
### This update should fix issues with joining and getting a view distance of 2 chunks
  • Add backwards compatibility by allowing -1 in the config files for chunksOthers to be disabled
[2.1.0] v2.1.0 by Wyzebb on Oct 15, 2026
Download
  • Add /pvdc <chunks> shortcut subcommand
  • Backend performance improvements
  • Chunks set by others should be reset when setting own view distance
  • Retrieve existing PlayerDataHandler instance instead of creating a new instance
  • Switch HashMap to ConcurrentHashMap to ensure thread safety
  • Add more defensive design for the event of config folder deletion
  • Bug fixes and small changes

[2.0.2] v2.0.2 by Wyzebb on Oct 15, 2026
Download
  • Merge distance calculation for LuckPerms changes and joining for efficiency and so that after LuckPerms changes are made, a message is displayed
  • Make LuckPerms changes only update the player's view distance once after changes are made (great performance boost!)
  • Send a different message depending on if the trigger is a LuckPerms event
  • Ensure bypass permissions are always respected
  • Fix display-max-join-msg has no effect
  • Only send update message on join if enabled in config
  • Alter default chunks too high message to be less wordy
  • Fix maxdistance permission having no effect sometimes
  • Add more robust error logging

[2.0.1] v2.0.1 by Wyzebb on Oct 15, 2026
Download
  • Make LuckPerms pick the greatest permission assigned for maxdistance
  • Make plugin pick largest LuckPerms maxdistance permission
  • Check for max distance bypass permission on join
  • Update documentation significantly with lots of new information
  • Create zh_CN.yml by @YuanYuanOwO in https://github.com/Wyzebb/PlayerViewDistanceController/pull/11 Thanks!
  • Minor optimisations

[2.0.0] v2.0.0 by Wyzebb on Oct 15, 2026
Download
### **YOU ARE ADVISED TO CHECK PERMISSIONS AND ALLOW THE PLUGIN TO GENERATE A NEW CONFIG FOLDER DUE TO LOTS OF BACKEND CHANGES**

  • Completely revamp the system of priority for calculating max view distances of players. Graphics have been made to explain this.
  • Add PlaceholderAPI support, with an expansion for chunks and afk (see documentation)
  • Add reset command to reset a player's max view distance to the max (or the max allowed by LuckPerms permissions if installed)
  • Add update checker
  • Add more AFK customisability and functionality (when logging off, etc)
  • Add new multi-language system, with English and Russian currently shipping by default (thanks to JustCheburek on my Discord for the Russian translation)
  • Remove prefixes system (default bedrock values can be customised in config.yml and for other prefixes, just use LuckPerms)
  • Add bstats metrics (which may be put on documentation pages in the future)

  • Add Folia task scheduler support, so the AFK system works on Folia
  • Make the plugin work without LuckPerms installed (it is now a soft depend)
  • Add max-distance bypass and AFK bypass permissions
  • Make maxdistance permission be the max for setting your own view distance

  • Make plugin more performant and RAM-efficient
  • Fix LOADS of permission-based bugs present in previous versions (see full changelog)
  • Fix absolutely tonnes of bugs and broken features
  • Update Documentation

[1.9.0] v1.9.0 by Wyzebb on Oct 15, 2026
Download
  • Add AFK detection and restrict view when AFK to improve server performance (with config options)
  • Make reload config actually work
  • Fix self permission node should be set-self
  • Get permission nodes from groups and inherited groups in addition to user-specific nodes
  • Make max view distance the greater value out of any assigned permissions and view distances assigned with commands or in the config files
  • Fix LuckPerms not working

  • Lots of other minor changes
  • Update Documentation
  • Lots of bug fixes

[1.8.0] v1.8.0 by Wyzebb on Oct 15, 2026
Download
  • Re-add Minecraft 1.20.x support
  • Add help and get subcommands
  • Update permission names to be more intuitive (check the README for the updated permission nodes!)
  • Make LuckPerms optional
  • Remove plugin debug messages in the console
  • Fix critical bug when not using LuckPerms
  • Overhaul default messages and colours
  • Improve plugin documentation
  • Improve code and make it more readable
  • Fixed lots of bugs

[1.7.1] v1.7.1 by Wyzebb on Oct 15, 2026
Download
## Top Changes
  • Fix incorrect permission logic for setting your own max view distance

[1.7.0] v1.7.0 by Wyzebb on Oct 15, 2026
Download
## Top Changes
#### **_THIS UPDATE CHANGES THE ROOT PERMISSION NODE FROM viewdistance TO pvdc: UPDATE YOUR PERMISSIONS WHEN UPDATING THE PLUGIN_**
  • Add separate permissions for changing your own view distance and the view distance of others
  • Fix broken permissions system to now take permissions into account when not op
  • Add no permission message to config.yml
  • Fixed bugs

[1.6.1] v1.6.1 by Wyzebb on Oct 15, 2026
Download
## What's Changed

## New Contributors

[1.6.0] v1.6.0 by Wyzebb on Oct 15, 2026
Download
## Top Changes
  • Added ability to set max view distances via Luckperms permissions
  • Fixed bugs

[1.5.0] v1.5.0 by Wyzebb on Oct 15, 2026
Download
## Top Changes
  • Ensure compatibility with mc1.21.1
  • Added reload subcommand along with permissions
  • Update and fix README
  • Fix git workflow
  • Update config and plugin.yml
  • Improve codebase and ensure config messages cannot be null
  • Fixed bugs


[1.4.0] 1.4.0 by Wyzebb on Oct 15, 2026
Download
## Top Changes
  • Added tab autocomplete
  • Added new command manager, which automatically registers subcommands and registers them to a help page
  • Overhauled config (improve instructions and default messages and remove separate section for console messages to avoid colour issues, which are handled now with code)
  • Improved code quality and efficiency significantly
  • Fixed bugs


[1.3.0] 1.3.0 by Wyzebb on Oct 15, 2026
Download
## Major Changes
  • All commands are now under /vd as subcommands
  • Adds player name prefix-dependent max view distance, configurable in a new config file
  • Major codebase and performance changes (more to come in the next updates)
  • Better exception handling

[1.2.0] PVDC 1.2.0 by Wyzebb on Oct 15, 2026
Download
Add new global view distance command
<br/>Overhaul info, commands and permissions in plugin.yml
<br/>Generalise incorrect arguments message
<br/>Update README

  • Full Changelog**:
https://github.com/Wyzebb/PlayerViewDistanceController/compare/v1.1.1...v1.2.0
[1.1.1] PVDC 1.1.1 by Wyzebb on Oct 15, 2026
Download
Updated errors: stack trace -> command usage instructions
<br/>Update player save data error msg
<br/>Update config.yml instructions
<br/>Update config.yml incorrect-args and consoleorcmdblock-incorrect-args
<br/>Add error messages for incorrect command usage
<br/>Removed redundant code

<br/>**Full Changelog**: https://github.com/Wyzebb/PlayerViewDistanceController/compare/v1.1.0...v1.1.1
[1.1.0] PVDC 1.1.0 by Wyzebb on Oct 15, 2026
Download
``
Updated to support 1.20.x as well as the existing support for 1.21
Removed /vwd alias and added /setchunks
Uploaded code to Github
Optimised code
Fixed bugs

Full Changelog: https://github.com/Wyzebb/PlayerViewDistanceController/commits/v1.1.0
``
Player View Distance Controller Icon
Download Player View Distance Controller
Select game version
Select platform