- 版权类型
- 原创
- 插件中文名称
- 动态视距调节
- 插件英文名称
- PulseView
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Purpur
- Leaves
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 1.21
PulseView — 根据 TPS 动态调节视距,保护服务器性能
作者:luotj121 核心:Paper / Purpur(及兼容分支) 版本:1.21.x (其他版本没测试理论1.18+) 类型:性能优化这是什么
服务器一卡,玩家就抱怨;视距一调低,玩家又抱怨看不见。PulseView 让视距跟着服务器"脉搏"走——TPS 健康时给足视野,卡顿自动收窄,既保性能又尽量保体验,全程热生效、无需重启。核心功能
- TPS → 视距 / 模拟距离 自动联动:滑动窗口取平均 TPS,命中档位后同时调整视距与模拟距离,比单独调视距更能缓解 tick 压力。
- 精细档位,自由配置:默认提供 7 档映射(TPS 19.5 / 18 / 16 / 14 / 10 / 5 / 1),每档可单独设定视距与模拟距离;增删随意,想几档就几档。
- per-player 按玩家调整:不污染世界级设置,一个世界卡顿不会拖累所有人。
- 两种基准模式:plugin 用插件配置的默认视距做基准;server 沿用服务器原有视距,插件只在其上动态收窄与恢复。
- 防抖设计:滑动窗口平均 + 调整冷却(默认 30 秒)+ 梯度变化,告别视距"呼吸式"横跳。
- 玩家进服即时套用、卸载自动还原,体验无感。
- 完整管理命令:重载、状态查看、开关、调试、立即同步,一条命令搞定。
命令
/pulseview(别名 /pv、/pulse),权限 pulseview.admin(默认 OP)- /pv reload — 重载配置
- /pv status — 查看实时 TPS、映射表、各世界视距/模拟距离
- /pv toggle — 开关动态调节
- /pv debug — 切换调试日志
- /pv resync — 立即重新同步一次
安装
- 将 PulseView-1.0.0.jar 放入 plugins/
- 启动服务器,自动生成 plugins/PulseView/config.yml
- 按需修改配置后 /pv reload 即可,无需重启
配置一览
# ============================================================# PulseView 配置 - 根据服务器 TPS 动态调节视距与模拟距离
# 服务器"脉搏"越好,视野越远;卡顿时自动收窄,保护 TPS。
# 作者: luotj121
# ============================================================
# 是否启用动态调节(可用 /pulseview toggle 在线切换)
enabled: true
# ------------------------------------------------------------
# 默认视距来源模式
# "plugin" -> 使用下方 default-view-distance 作为 TPS 充足时的基准视距
# "server" -> 使用服务器配置文件(server.properties / 世界)当前视距作为基准,
# 插件只在其基础上根据 TPS 动态收窄/恢复,不强制覆盖默认值
# ------------------------------------------------------------
default-view-mode: "plugin"
# 当模式为 plugin 时使用的默认视距(TPS 充足、高于所有阈值时的视距)
default-view-distance: 12
# 视距的最小/最大限制(所有动态调整都会被限制在此范围内,保证可玩性)
min-view-distance: 4
max-view-distance: 32
# ------------------------------------------------------------
# 是否同时调节模拟距离(simulation-distance)
# 模拟距离决定实体/红石参与 tick 的半径,对 TPS 影响往往比视距更直接。
# ------------------------------------------------------------
adjust-simulation-distance: true
# 当某档未显式配置 simulation-distance 时,用此公式自动计算:模拟距离 = 视距 - offset
simulation-distance-offset: 2
# 模拟距离的全局上下限
simulation-min: 3
simulation-max: 16
# ------------------------------------------------------------
# TPS 采样设置
# ------------------------------------------------------------
# 采样间隔(tick),20 tick = 1 秒
sample-interval-ticks: 20
# 滑动窗口大小(采样次数),取最近 N 次采样的平均值,避免瞬时抖动
sample-window-size: 30
# 使用哪个时间维度的 TPS: "1min" | "5min" | "15min"
tps-source: "1min"
# 调整冷却(秒):两次调整之间的最小间隔,避免视距频繁切换造成"呼吸感"
adjust-cooldown-seconds: 30
# ------------------------------------------------------------
# TPS -> 视距 / 模拟距离 映射表
# 规则:取 avgTps <= 阈值 中"阈值最大"的那一档;若高于所有阈值则用默认视距。
# 每一档可同时配置三项:
# tps : TPS 阈值(avgTps <= 该值时命中)
# view-distance : 目标视距
# simulation-distance: 目标模拟距离(可选;留空或写 -1 表示用上面的 offset 公式自动算)
# 你可以自由增删档位。建议阈值从高到低书写。至少给出 5 档以便精细控制。
# ------------------------------------------------------------
tps-to-view:
# 健康:TPS 接近满,给最大视野
- tps: 19.5
view-distance: 12
simulation-distance: 10
# 轻微负载
- tps: 18.0
view-distance: 10
simulation-distance: 8
# 中度负载
- tps: 16.0
view-distance: 8
simulation-distance: 6
# 较重负载
- tps: 14.0
view-distance: 6
simulation-distance: 4
# 严重卡顿
- tps: 10.0
view-distance: 4
simulation-distance: 3
# 极度卡顿(保命档)
- tps: 5.0
view-distance: 3
simulation-distance: 2
# 接近崩溃(最小可见范围)
- tps: 1.0
view-distance: 2
simulation-distance: 2
# 是否按玩家单独调整(per-player),而非修改整个世界的视距
# per-player 更精细,不会因为一个世界卡顿拖累所有人的世界级设置
per-player: true
# 调整时是否给玩家发送提示消息
notify-players: false
# 消息文本,支持 & 颜色码;{distance} 占位符会被替换为目标视距
notify-message: "&7[&bPulse&fView&7] &f服务器负载变化,视距已调整为 &b{distance}"
# 调试模式:在控制台输出采样与调整日志
debug: false
为什么选 PulseView
- 仅用 Paper 公开 API,不碰 NMS,升级无忧
- 模拟距离随视距联动收窄,对 TPS 缓解更直接
- 防抖 + 冷却 + per-player,稳定不闹腾
- 配置即所见,档位、阈值、上下限全部可调
PulseView —— 让服务器的视野,随脉搏呼吸。