NoTick

NoTick

面向大型模组服务器的服务端实体刻优化器。通过白名单、领地保护、诊断功能及可选物品优化,减少远处实体刻的无效消耗。

性能

NoTick

NoTick 是一款面向大型模组 Minecraft 服务器的服务端实体刻优化模组。

大型整合包可能会浪费大量 CPU 时间来对玩家无法看到、触及、战斗、拾取或交互的生物、物品和其他实体进行刻运算。NoTick 通过跳过符合条件的远处实体的刻运算来削减后台工作量,同时保护重要的游戏内容不受影响。

目标很简单:减少无意义的模拟运算,将更多的刻预算留给玩家实际使用的服务器部分。

服务器影响面板

NoTick 统计数据 数值
所需依赖 Fabric 版本需要 Fabric API
支持的构建目标 6
可选的领地集成 FTB Chunks + Open Parties and Claims
管理员命令 5
主要优化目标 远处未使用的实体刻运算
安全控制 白名单、维度、袭击、领地、活跃区块

刻节省示例

NoTick 的节省效果与符合条件的远处实体数量成正比。如果实体位于玩家范围之外,且未受到白名单、领地、袭击规则或活跃区块保护措施的庇护,其正常的实体刻运算可以被跳过。

符合条件的远处实体 每个服务器刻跳过的刻调用 在 20 TPS 下每秒跳过的刻调用
100 最多 100 最多 2,000
500 最多 500 最多 10,000
1,000 最多 1,000 最多 20,000
2,500 最多 2,500 最多 50,000

这些并非虚假的基准测试声明。它们展示了优化背后的原理:更少的符合条件的远处实体进行刻运算意味着服务器更少的后台实体工作。

保持活跃的内容

玩家及附近游戏内容      [活跃]    始终正常刻运算
白名单实体/模组        [活跃]    受配置保护
被占领的基地和农场     [活跃]    受 FTB Chunks 或 OPAC 保护
袭击敏感实体          [活跃]    受袭击规则保护
远处未使用的生物/实体  [优化]   在安全距离外时跳过
远处掉落的物品        [可选]   可配置的基于概率的刻运算

决策流程

实体刻运算开始
  -> 玩家?                         正常刻运算
  -> 被配置禁用?                   正常刻运算
  -> 白名单实体或模组?             正常刻运算
  -> 靠近玩家?                     正常刻运算
  -> 在活跃或已占领区块中?         正常刻运算
  -> 受袭击保护?                   正常刻运算
  -> 符合条件的远处实体?           跳过刻运算

服务器为何使用 NoTick

  • 降低高实体量世界中的后台实体刻运算成本
  • 帮助大型整合包和繁忙的 SMP 稳定 TPS
  • 通过注册表 ID 支持模组生物和实体
  • 通过白名单和安全措施保护重要游戏内容
  • 支持感知领地的刻运算,适用于基地、农场和自动化区域
  • 为管理员提供游戏内的诊断和配置重载工具
  • Fabric 版本仅需 Fabric API;Forge 和 NeoForge 版本无需额外依赖模组

核心功能

  • 基于距离的实体刻优化
  • 可配置的水平与垂直刻运算范围
  • 可选的掉落物优化,带有可配置的远处刻运算概率
  • 支持实体白名单和完整模组 ID 白名单
  • 针对袭击的特定刻运算控制
  • 支持维度白名单
  • 活跃区块保护,适用于最近使用或类似基地的区块
  • 可选的 FTB Chunks 集成
  • 可选的 Open Parties and Claims 集成
  • /notick 诊断命令套件
  • /notick reload 无需重启即可重载配置

管理员命令

所有命令都需要操作员/管理员权限。

命令 用途
/notick 显示当前优化状态
/notick status 显示详细设置和集成状态
/notick here 显示您当前所在区块的诊断信息
/notick reload 从磁盘重载配置
/notick help 列出可用命令

兼容性

NoTick 专为模组服务器设计,并通过常规注册表 ID 支持模组实体。

当前构建版本:

  • Fabric 1.20.1 和 1.21.1
  • Forge 1.20.1
  • NeoForge 1.21.1、26.1.2 和 26.2

使用配置白名单适用于:

  • Boss 和多部分生物
  • 脚本化或事件实体
  • 模拟玩家风格的自动化
  • 大型内容模组中的弹射物或特殊实体
  • 任何需要远处实体保持正常刻运算的模组

如果安装了 FTB Chunks 或 Open Parties and Claims,已占领的区块可被视为受保护区域。这对于玩家离开时仍应保持正常行为的农场、自动化区域和基地非常有用。

最佳适用场景

NoTick 在以下场景中效果最佳:

  • 大型模组生存服务器
  • 被动实体负载高的“大杂烩”整合包
  • 拥有许多基地、农场和维度的 SMP
  • 远处生物和物品造成持续刻运算成本的服务器
  • 需要管理员控制的性能保障措施的整合包

重要说明

NoTick 有意专注于性能优化,可能会改变远处、未受保护实体的行为。

如果某个农场或机械需要在附近无人时保持运行,请使用区块占领、活跃区块保护、实体白名单、模组 ID 白名单或维度规则来保护它。

鸣谢

最初基于 Txni 的 DoesItTick。
由 Rique 维护的分支。