Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
English
This plugin does not modify Minecraft's compression pipeline, Netty flush timing, or any low-level transport behavior.
Instead, it operates purely at the application layer — controlling when packets enter Velocity’s normal outbound pipeline, not how they are transmitted.
Features
1. Chunk Pacing
Limits the number of chunk-related packets each player can receive per tick, preventing chunk burst spikes during login and world loading.
-
Default: 32 chunks/tick/player
-
Detects:
- Chunk data packets
- Light updates
- Chunk batch start/end packets
- Registry synchronization packets
2. Token Bucket Rate Limiting
Each player has an independent token bucket with burst allowance support.
- Default burst limit: 12 MB
- Default sustained rate: 4 MB/s
- Packets exceeding the rate are queued for pacing
3. Large Packet Smoothing
Packets larger than 128 KB are delayed by 1–2 ticks to smooth bandwidth spikes.
- This is not batching — packets are still sent individually
- Only the scheduling timing is adjusted
4. Bedrock-Specific Optimization
Automatically detects Floodgate players and applies stricter pacing settings.
Includes:
- Reduced chunk rate (default 0.5x multiplier)
- Reduced map packet throughput
- Reduced entity burst traffic
5. Metrics & Monitoring
Built-in metrics tracking includes:
- Per-player upload throughput
- Chunk burst statistics
- Pacing queue depth
- Packet size distribution
- Bedrock traffic breakdown
- Peak outbound throughput
Metrics are logged every 30 seconds (configurable).
6. TOML Configuration
All parameters are configurable through:
plugins/velocity-bandwidth-pacer/config.toml
Requirements
- Java 21+
- Velocity 3.4+ / 3.5+
- No ProtocolLib dependency required
Compatibility
Tested environments including:
- NeoForge 1.21.1
- Create / CreateAeronautics
- Geyser + Floodgate
- ViaVersion + ViaBackwards
简体中文
本插件不修改 Minecraft 压缩管线、Netty flush 时机,或任何底层传输行为。
它纯粹在应用层运作 —— 控制数据包何时提交到 Velocity 的正常发送路径,而非如何发送。
功能特性
1. 区块调速
限制每个玩家每刻(tick)的区块数据包数量,防止登录时的区块爆发。
-
默认值:32 区块/刻/玩家
-
检测范围:
- 区块数据
- 光照更新
- 区块批处理开始/完成
- 注册表同步
2. 令牌桶速率限制
每个玩家独立的令牌桶,支持突发流量。
- 默认突发上限:12 MB
- 默认持续速率:4 MB/s
- 超出速率的数据包进入调速队列
3. 大数据包平滑处理
大于 128 KB 的数据包延迟 1-2 刻发送,以平滑带宽尖峰。
- 这不是批处理 —— 每个数据包独立发送
- 仅调整调度时机
4. 基岩版专属优化
自动检测 Floodgate 玩家并应用更严格的调速配置。
- 降低区块速率(默认 0.5 倍乘数)
- 降低地图数据包速率
- 降低实体爆发流量
5. 指标监控
内置指标追踪:
- 每个玩家的上传速率
- 区块爆发统计
- 调速队列深度
- 数据包大小分布
- 基岩版流量细分
- 峰值上传吞吐量
每 30 秒记录一次(可配置)。
6. 通过 config.toml 配置
所有参数均在 plugins/velocity-bandwidth-pacer/config.toml 中可配置。
环境要求
- Java 21+
- Velocity 3.4+ / 3.5+
- 无需 ProtocolLib 依赖
兼容性
已测试以下环境:
- NeoForge 1.21.1
- Create / CreateAeronautics
- Geyser + Floodgate
- ViaVersion + ViaBackwards

