Krypton Reno

Krypton Reno

提供强大的网络优化能力,适用于所有主流系统。

性能

Logo

Krypton Reno

all

modrinth curseforge github


自 26.1 版本起,我们不再提供 Forge 兼容性,因此原名 "Krypton FNP" 已无意义。

缩写 "FNP" 代表 "Forge and NeoForge's Port",但由于现已不再支持 Forge,我将此模组更名为 Krypton Reno。

为确保我们的旧链接不被恶意方利用,Modrinth 和 CurseForge 上的链接将保持不变,仅 GitHub 仓库链接已更新。


Krypton Reno 为所有主流系统提供强大的网络优化功能。

移植自 Krypton Fabric,并添加了一些独特的优化。支持 NeoForge/Forge;

对于 Fabric/Paper 服务端,请参阅 KryptonReno Fabric。

对于 Velocity 服务端,请参阅 VelocityNT Recast。


差异

指“我们”与上游“Krypton Fabric”及其他 Krypton 分支的差异

  • 持续为稳定版本(1.20.1、1.21.1)及最新版本提供兼容性
  • RecastLib 为 Windows(x64/arm64)提供加速功能
  • 支持客户端连接的 RFC 8305 Happy Eyeballs
  • 进一步的可扩展性优化

什么是 RecastLib

RecastLib 是我用 Rust 编写的本地库,兼容 Velocity Native JNI Bind。

旨在弥补 Velocity Native 兼容性的一些不足,从而使 KryptonReno 的性能优势更加全面。

在 Fabric 版本的 KryptonReno 中,我也在测试 Java 22 中可用的 FFM API 的稳定性,根据基准测试,这应能带来更多性能提升(最终仅限 Fabric。Forge/NeoForge 无法运行)。

其好处显而易见:服务端和客户端都能受益,并且由于替代兼容性,大多数主流 PC 都能运行这些本地库。

兼容性

系统与架构 RecastLib Velocity Native
Windows x64 是 否
Windows arm64 是 否
Linux x64 否 是
Linux arm64 否 是
MacOS arm64 (Apple Silicon) 否 是

兼容性是“混合的”;它们在彼此不支持的区域提供兼容性,因此您无需担心兼容性丢失。

目前,没有计划为 Android、32 位架构操作系统或其他架构提供兼容性。

请勿开启任何相关问题或向我抱怨,即使您这样做,我也无能为力。

配置

mixin:
  # 使用虚拟线程替换玩家登录验证线程
  loginVT: true
  # 使用虚拟线程替换文本过滤器线程
  textFilterVT: true
  # 使用虚拟线程替换下载线程
  utilVT: true
  # 优化的 VarLong 实现
  bestVarLong: true
  # 在客户端启用新的加密优化
  clientEncrypt: true
  # 优化的 RconClient 实现
  rconClient: false
  # 如果实体没有移动则跳过发送移动数据包,如果实体仅转向则将位置+旋转数据包降级为仅旋转
  serverEntityMoveOpt: false
  # 减少 Connection 类中的对象分配和锁竞争
  connectionMicroOpt: true
  # 减少一些可能无用的粒子数据包。此配置仅在服务端生效
  particlePacketOpt: true
  # 通过减少对象分配和使用基于数组的广播来优化实体追踪
  trackedEntityOpt: true
fix:
  issues128:
    # 修复流量统计
    enabled: false
    # 在同步线程上运行带宽统计,更接近原版行为
    sync: true
culling:
  # 服务端智能实体剔除
  entity: true
  # 服务端智能方块/方块实体剔除
  block: true
  # 将区块数据包中完全隐藏的方块替换为空气以节省带宽
  chunk_block: true
  # 将数据数组全为零的灯光部分视为空,以跳过 ClientboundLevelChunkWithLightPacket / ClientboundLightUpdatePacket 中每部分 2KiB 的数据
  chunk_light: true
compress:
  # 数据包的压缩级别,范围 1-9
  compressionLevel: 4
  # 允许超大数据包
  permitOversizedPackets: false
gui:
  # 用新设计的 OreUI 替换 Minecraft 风格的 KReno 界面
  oreui: false
compatibility:
  allow-wide-var-int: false
netty:
  # 将 Netty 默认的 16MiB 内存分配改为 4MiB,因为 Minecraft 有 2MiB 的数据包大小限制
  allocatorMaxOrder: 9
  # 为客户端连接启用 Happy Eyeballs (RFC 8305),以竞争 IPv6 和 IPv4。可能导致某些服务器(如 Velocity)暂时拒绝连接
  happyEyeballs: false

使用环境变量替代 JVM 参数

某些配置项支持使用环境变量代替 JVM 参数。

JVM 参数 环境变量
velocity.linux-recast-enabled ENABLE_LINUX_RECAST
java -Dvelocity.natives-disable=false -Dvelocity.linux-recast-enabled=true -jar neoforge_launcher.jar

或

ENABLE_LINUX_RECAST=true java -jar neoforge_launcher.jar

基准测试

View

问答

1

问: 如果我在客户端上安装此模组,但服务器上没有安装,我还能加入服务器吗?

答: 我特意将其设计为与 Krypton Fabric“一致”,因此即使另一端没有此模组,您也可以连接(或被连接),除非服务器管理员安装了检测模组列表的反作弊模组,这种情况下您应联系他们请求许可。


2

问: 它能帮助我降低 ping 延迟吗?

答: Krypton Reno 的优化可以节省一些硬件性能,这应该会减少因 CPU 核心抢占导致的高延迟。但是,如果您硬件资源已经非常有限,或者您的网络质量确实很差,那么 Krypton Reno 并不能拯救您太多。它无法突破物理限制。


3

问: Krypton Reno 与哪些模组兼容?

答: 有很多!您基本上只需要担心它们之间是否会互相冲突,而无需担心 Krypton Reno。

不兼容模组:Krypton Reforged、Ceres、Pluto、KryptonFoxified、Krypton Hybrid、Chionanthus、使用 Connector 的 Krypton Fabric。


4

问: 它会导致一些不同的行为吗?

答: 这是不可避免的,我尽力使实现尽可能一致,并且在大多数情况下,您只需修改配置即可继续使用。


5

问: 我可以在混合了 Bukkit API 和 Forge/NeoForge 的服务器中使用 Krypton Reno 吗?

答: 不,绝对不能。Bukkit API 的设计初衷就不是为了支持模组,我无法保证 Krypton Reno 不会破坏某些东西,或者它们破坏 Krypton Reno。


6

问: 我似乎无法加载本地库(Velocity Native 或 RecastLib),该怎么办?

答: 通常,这是由于机器上缺少依赖库造成的。

  • 对于 Windows:您可能需要安装 MSVC 170 和 OpenSSL 3 Win32
  • 对于 Linux:您至少应安装 OpenSSL3(大多数操作系统应自带)
  • 对于 MacOS:您无需做任何事,只需确保系统是最新的即可

这些库应兼容 x64 和 arm64 架构,因此您无需担心。


致谢

关于整合包

如果您遵守许可协议,则可以自由地将其用于整合包。

禁止重新分发 Minecraft 游戏本体的整合包(即:将包含模组文件、配置、光影包、资源包、库文件和启动器的整个 Minecraft 游戏打包成一个 zip 文件的包)使用此模组。

许可协议

本作品除原始许可证外,还有一项限制性许可证,以防止某些意外行为,请参阅 404Setup 公共许可证

  • Krypton Reno: 2025-2026。按“原样”许可。由 404Setup 在 LGPL-3.0 Only 下提供。
  • RecastLib RecastXZ: 2025-2026 404Setup。保留所有权利。源代码在 MPL-2.0 许可证下授权。
  • RecastLib RecastSSL: 2025-2026 404Setup。保留所有权利。源代码在 BSD-3-Clause 许可证下授权。