925
收录服务器
1188
注册
92 988
玩家
View Distance Tweaks 视野距离调整
动态每世界视图距离和模拟距离。
作 者 froobynooby
发布时间 2020年2月13日
支持核心 Spigot
原生版本
支持版本 1.14,1.15,1.16,1.17,1.18,1.19,1.20
点此下载

View Distance Tweaks 插件允许动态调整每个世界的视距和模拟距离,以更好地平衡游戏体验和服务器性能。它能根据服务器的繁忙程度自动降低或增加视距和模拟距离。

🎉

View Distance Tweaks

⚙️安装

将下载的 jar 文件放入服务器的 plugins 目录即可安装。

由于不同服务器的性能和偏好各不相同,因此在启用插件之前需要对其进行配置。编辑服务器 plugins 目录中 ViewDistanceTweaks 文件夹下的 config.yml 文件来配置插件。完成更改后,将 config.yml 中的 'enabled' 选项设置为 true,然后重启或重载服务器。

🛠️配置

以下是配置文件的详细说明:


# Configuration for View Distance Tweaks.
# Plugin page: https://www.spigotmc.org/resources/75164/
# Github: https://github.com/froobynooby/ViewDistanceTweaks

# Please don't change this!
version: 8

# Set this to true to enable the plugin. The plugin is initially disabled so that you can make changes to the config
# appropriate to your server.
enabled: false

# How should we determine whether the simulation distance needs adjusting? Accepts three values:
#  * proactive : Adjust the simulation distance so that the player-loaded chunk count is always below a set threshold.
#  * reactive  : Adjust the simulation distance in response to changes in the server's MSPT.
#  * mixed    : Be both proactive and reactive; prioritising decreasing the simulation distance over increasing.
adjustment-mode: mixed

# These settings are for the proactive adjustment mode.
proactive-mode-settings:
  # Set this to the maximum ticking chunk count your server can handle. The simulation distance of each world will be
  # adjusted such that the total number of player-loaded chunks is sitting as close to this value as possible.
  #  * If you know your server can handle up to p many players with a simulation distance of d, a reasonable choice is
  #   to set this to (2d + 1)^2 * p.
  #  * As an example, 5780 is the number of player-loaded ticking chunks for 20 players with a simulation distance of 8.
  global-ticking-chunk-count-target: 5780

  # Set this to the maximum number of non-ticking chunks you want to be loaded by the view distance.
  #  * Note: this only counts chunks that are outside of the simulation distance of a player, but within the view
  #   view distance of a player.
  #  * If you know your server can handle up to p many players with a view distance of v and a simulation distance of s,
  #   a reasonable choice is to set this to ((2v + 1)^2 - (2s + 1)^2) * p.
  #  * As an example, 6720 is the number of non-ticking chunks loaded by the view distance for 20 players with a view
  #   distance of 12 and a simulation distance of 8.
  global-non-ticking-chunk-count-target: 6720

# These settings are for the reactive adjustment mode.
#  * MSPT stands for "milliseconds per tick", and tells you how long your server takes to tick on average. A server
#   whose MSPT is above 50 will notice things slowing down, as the TPS drops.
reactive-mode-settings:

  # Below what MSPT should we consider increasing the simulation distance?
  increase-mspt-threshold: 40.0

  # Above what MSPT should we consider decreasing the simulation distance?
  decrease-mspt-threshold: 47.0

  # These settings concern how we determine the server's MSPT.
  #  * Only touch these settings if you know what you're doing.
  mspt-tracker-settings:
  # Over how many ticks should we collect tick durations for calculating the MSPT?
   #  * Setting this too high will make the MSPT very slow to react to changes.
   #  * Setting this too low will make the MSPT volatile.
   collection-period: 1200

  # We keep a history of MSPT vs. player-loaded chunk count in order to better predict what the MSPT will settle to
  # after increasing the simulation distance.
  mspt-prediction:
  # Should we use MSPT prediction when we are considering increasing the simulation distance?
   #  * For example, we may be at 38 MSPT with a simulation distance of 6, meaning we would consider increasing the
   #   simulation distance to 7. However, if we saw that 10 minutes ago with a simulation distance of 7 we had
   #   48 MSPT, we would hold off on increasing.
   #  * Disabling this can lead to a back-and-forth game of increasing and decreasing the simulation distance every few
   #   minutes - not ideal.
   enabled: true

   # For how long (in minutes) should we keep a MSPT / chunk count history?
   history-length: 30

# Every how many ticks should we check whether the simulation distance needs to be updated?
ticks-per-check: 600

# How long in ticks should we wait before starting the checking tasks following the plugin's start up?
#  * This is useful when using the 'mixed' or 'reactive' adjustment modes where it is desirable to ignore the server's
#   performance in the first few minutes following a restart.
start-up-delay: 2400

# How many checks in a row that say to increase the simulation or view distance should be required before an increase
# actually occurs?
#  * This is useful as it guards against the following kind of case: A player leaves and the view distance is
#   increased, but the player returns three minutes later and the view distance is lowered to its previous value.
#  * Since increasing the view distance can cause lag-spikes for players with poorer connections, it is
#   recommended to keep this value relatively high.
passed-checks-for-increase: 10

# How many checks in a row that say to decrease the simulation or view distance should be required before a decrease
# actually occurs?
passed-checks-for-decrease: 1

# Should we send a message to the console when we change the simulation or view distance?
log-changes: false

# These settings can be specified per world. If a world is not specified or if a setting is missing, it will use the
# settings listed under the default section.
world-settings:
 default:
  # These settings concern the simulation distance of this world.
  simulation-distance:
   # Should we not manage the simulation distance in this world?
    #  * Note: Even if excluded, the world's chunks will be counted for the purpose of adjusting the simulation distance
    #   of other worlds. If you do not want this, also be sure to set the chunk-weight to 0.
    exclude: false

    # What should the absolute minimum simulation distance be in this world?
    minimum-simulation-distance: 6

    # What should the absolute maximum simulation distance be in this world?
    maximum-simulation-distance: 12

   # These settings concern the view distance of this world.
   view-distance:
    # Should we not manage the view distance in this world?
     #  * Note: Even if excluded, the world's chunks will be counted for the purpose of adjusting the view distances
     #   of other worlds.
     exclude: false

     # What should the absolute minimum view distance be in this world?
     minimum-view-distance: 8

     # What should the absolute maximum view distance be in this world?
     maximum-view-distance: 16

   # Relative to the other worlds, how 'heavy' is a chunk on performance?
   #  * For example: In the End dimension, about half of the chunks you encounter are void and so have very little
   #   impact on performance. For this reason, you may want to set the chunk-weight of the End to 0.5.
   chunk-weight: 1

   # These settings concern how we count the number of chunks in this world.
   chunk-counter-settings:
    # When two players are near each other, the chunks they load can overlap. Should we not double count the chunks
    # that are overlapping?
    exclude-overlap: true

#  world_the_end:
#   simulation-distance:
#    minimum-simulation-distance: 8
#    maximum-simulation-distance: 10
#   chunk-weight: 0.5

🤝兼容性

此插件与 CraftBukkit 不兼容,必须使用 Spigot 或 Spigot 的分支。由于区块系统的更改,不支持 1.14 以下的版本。

⌨️命令

要使用基础命令,用户需要 viewdistancetweaks.command.vdt 权限节点。

  • /vdt reload - 重新加载插件配置。
    权限: viewdistancetweaks.vdt.command.reload
  • /vdt status [--weight] - 显示有关世界视距等信息。
    权限: viewdistancetweaks.vdt.command.status
  • /vdt simultiondistance <view distance> [world] [--duration <minutes>] - 设置给定世界的模拟距离(如果未指定,则为所有世界),持续给定的时间。
    权限: viewdistancetweaks.vdt.command.simulationdistance
  • /vdt viewdistance <view distance> [world] [--duration <minutes>] - 设置给定世界的视距(如果未指定,则为所有世界),持续给定的时间。
    权限: viewdistancetweaks.vdt.command.viewdistance

📌占位符

使用 PlaceholderAPI 时,可以使用以下占位符:


%viewdistancetweaks_simulation_distance%
%viewdistancetweaks_simulation_distance_%
%viewdistancetweaks_view_distance%
%viewdistancetweaks_view_distance_%
%viewdistancetweaks_min_view_distance%
%viewdistancetweaks_max_view_distance%
%viewdistancetweaks_min_view_distance_{world}%
%viewdistancetweaks_max_view_distance_{world}%
%viewdistancetweaks_min_simulation_distance%
%viewdistancetweaks_max_simulation_distance%
%viewdistancetweaks_min_simulation_distance_{world}%
%viewdistancetweaks_max_simulation_distance_{world}%
%viewdistancetweaks_chunk_count%
%viewdistancetweaks_chunk_count_%
%viewdistancetweaks_tick_chunk_count%
%viewdistancetweaks_tick_chunk_count_%
%viewdistancetweaks_no_tick_chunk_count%
%viewdistancetweaks_no_tick_chunk_count_%
%viewdistancetweaks_global_chunk_count%
%viewdistancetweaks_global_tick_chunk_count%
%viewdistancetweaks_global_no_tick_chunk_count%
%viewdistancetweaks_mspt%
%viewdistancetweaks_tps%
%viewdistancetweaks_mspt_colour%
%viewdistancetweaks_tps_colour%

📊 Metrics

此插件使用 bStats 收集一些关于运行此插件的服务器的(非识别性)数据。您可以通过编辑服务器 plugins 目录中 bStats 文件夹下的 config.yml 文件来选择退出。