LagReducer — 动态距离、安全清理和智能实体上限,适用于 Paper 1.21.8
在不破坏游戏体验的前提下,保持高 TPS。LagReducer 会动态降低玩家的视野/模拟距离,仅在他们高速移动时才会降低。它还会定期安全清理杂物,并对每个区块的实体数量进行上限控制,并采用精确且可配置的规则。
为什么要使用 LagReducer?
- 流畅的性能:仅在需要时( elytra/飞行/车辆/高速时)减少客户端/服务器负载。
- 安全清理:可配置的警告、黑名单和名称豁免保护贵重物品和宠物。
- 在需要的地方进行硬性限制:按区块总数、类别和每类型限制,并使用限制器黑名单。
特性
- 动态距离(每个玩家)
- 在以下情况下降低视野和模拟距离:飞行、滑翔、在车辆中或超过速度阈值(方块/秒)。
- 在速度降低后自动恢复距离(具有迟滞和最小切换延迟)。
- 提供一个权限绕过,供工作人员/测试人员使用。
- 清理物品和实体
- 自动定时清理,并广播警告(可自定义时间)。
- 类别切换:物品、生物、经验球、投掷物、杂项。
- 物品材料和实体类型的黑名单。
- 可选的“豁免命名实体”以保护宠物和命名生物。
- 实体限制器(每个区块)
- 总数、物品、生物、怪物、动物、环境 的限制。
- 每个实体类型的限制(例如:僵尸:12)。
- 限制器黑名单:完全忽略某些类型(不计数且从不取消它们)。
- 忽略选定的生成原因(例如:自定义、命令、生成蛋)。
- 调试日志记录选项。
命令
- /lagreducer reload — 重新加载配置并重启功能
- /lagreducer clear — 立即运行清理
- /lagreducer status — 显示功能切换和清理间隔
别名:/lr
权限
- lagreducer.admin — 使用重新加载/状态和管理员功能
- lagreducer.clear — 允许手动清理命令
- lagreducer.bypass.distance — 使玩家免受动态距离更改的影响
配置一览
- 动态距离调整:
- sampleTicks, speedThresholdBps, restoreHysteresisFactor, minSwitchMillis
- fastViewDistance, fastSimulationDistance, consider: flying/gliding/vehicles
- 清理安全:
- warnAtSeconds, exemptNamedEntities
- entityBlacklist, itemBlacklist
- 实体限制器控制:
- perChunk: total/items/living/monsters/animals/ambient (将值设置为 -1 以禁用限制)
- perType: 每个实体类型的限制
- blacklist: 限制器完全忽略的类型
- ignoreSpawnReasons, debug
示例配置片段
```yaml
dynamicDistance:
enabled: true
sampleTicks: 10
speedThresholdBps: 12.0
restoreHysteresisFactor: 0.7
minSwitchMillis: 1500
fastViewDistance: 6
fastSimulationDistance: 4
consider: { flying: true, gliding: true, vehicles: true }
clearer:
enabled: true
intervalSeconds: 600
warnAtSeconds: [60, 30, 10, 5, 3, 2, 1]
exemptNamedEntities: true
categories: { items: true, living: true, xpOrbs: true, projectiles: false, misc: false }
entityBlacklist: [ARMOR_STAND, ITEM_FRAME, PAINTING]
itemBlacklist: [NETHER_STAR, DRAGON_EGG, SHULKER_BOX]
entityLimiter:
enabled: true
blacklist: [ARMOR_STAND, ITEM_FRAME, PAINTING]
perChunk:
total: 150
items: 80
living: 100
monsters: 60
animals: 60
ambient: 20
perType: { ZOMBIE: 12 }
ignoreSpawnReasons: [CUSTOM, SPAWNER_EGG, COMMAND]
debug: false
```
兼容性和要求
- 服务器:Paper 1.21.5+ (以及兼容的分支)
- Java:21
- 无 NMS,仅 API;在小范围补丁中安全。
- 没有外部依赖。
安装
- 将 LagReducer.jar 放入 plugins/
- 启动服务器以生成配置
- 编辑 plugins/LagReducer/config.yml
- 使用 /lagreducer reload 应用更改
注意事项
- 将任何限制器值设置为 -1 以禁用该特定的限制。
- 黑名单保护实体/物品免于清理或限制。
- 与大多数优化插件兼容;避免同时运行多个“清理滞后”插件,以防止冲突。