
催化剂
性能无妥协。
查看大图
❓ Catalyst 是什么?
- 它是面向客户端和服务器的终极 即插即用、提升性能 模组,在不影响游戏玩法的前提下获得更高性能。
📝 为什么选择 Catalyst?
- Catalyst 只优化性能。它不会修改:
- 任何游戏机制
- 视觉效果
- 或行为
- 优化会全局自动应用。
- 所有优化都可以通过游戏内的 GUI 在运行时切换和调整,无需重启。
- 设计为与其他模组、Early Plugins 和 Hyxin Mixin 框架协同工作。
🔧 工作原理
Catalyst 使用 ASM 字节码操作,在 Hytale 类被 JVM 加载时直接将优化注入其中。
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Hytale Server │ ──▶│ Catalyst │ ──▶│ Optimized Code │
│ │ │ │ │ (Bytecode) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
这种方法提供:
- 零运行时开销 — 优化在加载时直接嵌入字节码
- 无需修改 JAR 文件 — 无需修改游戏文件即可生效
- 完全可逆 — 只需删除插件即可恢复原始行为
- 线程安全切换 — 所有配置字段都是
volatile的,确保运行时更改安全:无漏洞
📥 安装
对于服务器所有者
- 下载 来自 Release 页面 的最新 JAR 文件
- 放置 到你的
early-plugins/文件夹:
| 平台 | 路径 |
|---|---|
| Windows | C:\Users\YourUsername\AppData\Roaming\Hytale\UserData\early-plugins |
| Linux (Flatpak) | ~/.var/app/com.hypixel.HytaleLauncher/data/Hytale/UserData/early-plugins/ |
| macOS | ~/Library/Application Support/Hytale/UserData/early-plugins/ |
- 启动 你的服务器或单人世界
⚠️ 重要提示:Catalyst 需要同时放置在
early-plugins/和mods/文件夹中。Early Plugin 需要在服务器启动前加载以拦截类加载,而 Mod 则用于命令功能和 UI 显示。
📊 性能结果
基准测试数据即将推出
区块生成性能
基准测试数据即将推出
┌────────────────────────────────────────────────────────────┐
│ Vanilla: ████████████████████████████████████ 100% │
│ Catalyst: ██████████████████████████ ~70% │
└────────────────────────────────────────────────────────────┘
实体 Tick 性能
基准测试数据即将推出
光照传播性能
基准测试数据即将推出
测试环境:
- CPU:你的 CPU 型号
- RAM:你的 RAM 容量
- Hytale 版本:2026.01.17
- Java:OpenJDK 25
✨ 特性
Catalyst 提供了一整套服务端优化方案,所有配置均可运行时调整:
运行时优化
| 设置 | 描述 | 默认值 |
|---|---|---|
| 实体视距 | 实体同步距离的可配置倍率 | 32 区块/块 |
| 区块加载速率 | 控制每 Tick 发送的区块数量以平衡加载速度 vs TPS | 4 区块/Tick |
寻路
| 设置 | 描述 | 默认值 |
|---|---|---|
| 最大路径长度 | 路径中的最大节点数 | 200 |
| 开放节点限制 | A* 算法开放集大小限制 | 80 |
| 总节点限制 | 每次寻路的最大访问节点数 | 400 |
区块生成
| 设置 | 描述 | 默认值 |
|---|---|---|
| 线程池大小 | 用于区块生成的工作线程数 | CPU 核心数 |
| 缓存大小 | 生成器、洞穴和预制结构缓存大小 | 50k / 5k / 50 |
| 线程优先级 | 工作线程优先级 | 5 (正常) |
光照
| 设置 | 描述 | 默认值 |
|---|---|---|
| 跳过空白区域 | 对没有光照数据的固体空气区域跳过光照传播 | 关闭 |
视觉效果
| 设置 | 描述 | 默认值 |
|---|---|---|
| 粒子效果 | 切换服务端粒子效果 | 开启 |
| 动画 | 切换服务端 NPC 动画 | 开启 |
缓存
| 设置 | 描述 | 默认值 |
|---|---|---|
| 方块区域缓存 | 缓存最后访问的 BlockSection 以用于 Y 轴迭代模式 | 关闭 |
| 方块类型缓存 | 按方块 ID 缓存 BlockType 查找 | 关闭 |
| 本地区块缓存 | 光照期间用于区块访问的 2 槽 LRU 缓存 | 关闭 |
高级优化
| 设置 | 描述 | 默认值 |
|---|---|---|
| 方块实体休眠 | 跳过对未更改的空闲方块实体进行 Tick 更新 | 关闭 |
| 属性重计算节流 | 降低实体属性重计算的频率 | 关闭 |
| 方块更新批处理 | 跟踪并批处理方块更新通知 | 关闭 |
| 洪水填充限制 | 防止复杂地形生成时出现延迟峰值 | 关闭 |
| 寻路池 | 使用节点对象池减少 GC 压力 | 关闭 |
🖥️ 使用
游戏内设置
使用以下命令打开设置菜单:
/catalyst menu
设置 GUI - 常规选项卡 截图即将推出
设置 GUI - 高级选项卡 截图即将推出
设置 GUI - 搜索功能 截图即将推出
GUI 特点:
- 选项卡界面 — 常规、光照、寻路、视觉和高级选项卡
- 实时滑块 — 调整值并即时查看变化
- 搜索功能 — 快速查找任何设置
- 一键重置 — 单击按钮恢复所有默认值
设置会自动保存到 mods/com.criticalrange_Catalyst/catalyst.json。
命令
| 命令 | 描述 |
|---|---|
/catalyst |
打开设置 GUI |
/catalyst status |
显示当前优化状态 |
/catalyst reload |
从文件重新加载配置 |
⚙️ 配置
Catalyst 将其配置存储为 JSON 格式:
mods/com.criticalrange_Catalyst/catalyst.json
你可以直接编辑此文件,然后使用 /catalyst reload 应用更改,无需重启。
示例配置
{
"entityDistanceEnabled": false,
"entityViewMultiplier": 32,
"chunkRateEnabled": false,
"chunksPerTick": 4,
"pathfindingEnabled": false,
"maxPathLength": 200,
"openNodesLimit": 80,
"totalNodesLimit": 400,
"chunkPoolSizeEnabled": false,
"chunkPoolSize": 8,
"chunkCacheSizeEnabled": false,
"generatorCacheSize": 50000,
"caveCacheSize": 5000,
"prefabCacheSize": 50,
"chunkThreadPriorityEnabled": false,
"chunkThreadPriority": 5,
"lightSkipEmptyEnabled": false,
"particlesEnabled": true,
"animationsEnabled": true,
"blockSectionCacheEnabled": false,
"blockTypeCacheEnabled": false,
"blockTypeCacheSize": 256,
"localChunkCacheEnabled": false,
"blockEntitySleepEnabled": false,
"blockEntitySleepInterval": 20,
"statRecalcThrottleEnabled": false,
"statRecalcInterval": 5,
"blockUpdateBatchingEnabled": false,
"blockUpdateBatchSize": 64,
"floodFillLimitEnabled": false,
"floodFillMaxIterations": 5000,
"pathfindingPoolEnabled": false,
"pathfindingPoolSize": 512
}
✅ 兼容性
| 要求 | 版本 |
|---|---|
| Hytale | 2026.01.17+ |
| Java | 25+ |
| Hyxin | 兼容 ✓ |
| 其他 Early Plugins | 兼容 ✓ |
已知限制
- Catalyst 必须放置在
early-plugins/文件夹,而不是mods/ - 某些优化默认关闭以确保稳定性
- 实验性功能在生产环境使用前应先进行测试
💬 社区
| 平台 | 链接 |
|---|---|
| Discord | 即将推出 |
| 问题反馈 | 报告 Bug |
| 讨论 | 功能请求与创意 |
🙇 获取帮助
如需技术支持(包括安装问题和崩溃),请:
📬 报告问题
发现 Bug?请 提交 Issue 并包含:
- Hytale 版本
- Catalyst 版本
- 重现步骤
- 错误日志(如果适用)
❓ 常见问题
Catalyst 会影响游戏玩法吗?
不会。Catalyst 仅优化性能——它不会改变任何游戏机制、视觉效果或行为。你的游戏体验将与原始 Hytale 完全相同。
在生产服务器上使用安全吗?
Catalyst 是一个实验性的引导程序。虽然我们努力保证稳定性,但我们建议:
- 首先在非生产世界进行测试
- 保持定期备份
- 在启用高级优化之前使用默认设置
我可以将其与其他模组一起使用吗?
可以!Catalyst 设计为与以下内容兼容:
- 其他 Early Plugins
- Hyxin(Hytale 的 Mixin 框架)
mods/文件夹中的常规 Hytale 模组
为什么 Catalyst 需要同时放置在 early-plugins 和 mods 中?
Catalyst 使用字节码转换,必须在类加载之前进行。early-plugins/ 文件夹由 Hytale 的引导进程加载,允许 Catalyst 在类加载到 JVM 时拦截和修改它们。mods/ 文件夹由游戏加载,允许 Catalyst 作为模组使用。这是一种变通方法,因为 Hytale 没有提供在不使用模组的情况下加载命令和 UI 的方法。
如何知道 Catalyst 是否在工作?
在游戏中运行 /catalyst status 查看所有优化的当前状态。在启动过程中,你应该还会在服务器控制台中看到 [Catalyst] 消息。
我可以禁用特定优化吗?
可以!每个优化都可以单独切换,通过以下方式:
- 游戏内 GUI (
/catalyst) - 配置文件 (
catalyst.json) - 命令(编辑配置后使用
/catalyst reload)
🛠️ 针对开发者
从源码构建
# 克隆仓库
git clone https://github.com/CriticalRange/Catalyst.git
cd Catalyst
# 构建 JAR
./gradlew build
# 启动加载了模组的服务器
./gradlew runServer
# 通过官方启动器启动客户端
./gradlew runClient
构建产物可在 build/libs/ 目录下找到。
创建自定义转换器
继承 BaseTransformer 并通过 META-INF/services 注册:
public class MyTransformer extends BaseTransformer {
@Override
protected boolean shouldTransform(String className) {
return className.equals("com.hypixel.hytale.some.TargetClass");
}
@Override
protected ClassVisitor createClassVisitor(ClassWriter cw, String className) {
return new MyClassVisitor(cw);
}
@Override
public String getName() {
return "MyTransformer";
}
}
所有配置字段都是 volatile 的,以确保线程安全的运行时切换。
项目结构
Catalyst/
├── src/main/java/com/criticalrange/
│ ├── Catalyst.java # 主插件类
│ ├── CatalystConfig.java # 配置字段
│ ├── CatalystConfigFile.java # JSON 持久化
│ ├── transformer/ # 字节码转换器
│ │ ├── BaseTransformer.java
│ │ ├── EntityDistanceTransformer.java
│ │ ├── ChunkRateTransformer.java
│ │ └── ...
│ └── util/
│ └── CatalystSettingsGui.java
└── src/main/resources/
├── META-INF/services/ # 转换器注册
└── Common/UI/Custom/Pages/ # GUI 定义
目录结构 (运行时)
~/.var/app/com.hypixel.HytaleLauncher/data/Hytale/
└── install/
├── early-plugins/ # Catalyst JAR 放置于此
├── mods/
│ └── com.criticalrange_Catalyst/
│ └── catalyst.json # 配置文件
└── release/package/game/latest/
├── Server/HytaleServer.jar
└── Assets.zip
🌟 贡献与支持开发
欢迎贡献!以下是你可以提供帮助的方式:
在提交 PR 之前,请:
- Fork 该仓库
- 创建一个功能分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开一个 Pull Request
🙏 鸣谢
- CriticalRange — 首席开发者
- ASM Team — 字节码操作库
- Hypixel Studios — 创造了这款令人惊叹的游戏
- 所有贡献者 — 每个帮助改进 Catalyst 的人
📜 许可证
Catalyst 采用 MIT 许可证 授权 —— 你可以对此代码进行任何操作,只需保留版权声明。
查看 LICENSE 获取完整的许可证文本。
为 Hytale 社区用 ❤️ 制作
正在加载版本记录…



正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。