Installation β’ Features β’ Usage β’ Community β’ Contributing
It is the ultimate drop-in, gain performance mod for both Client and Server to get more performance without affecting gameplay.
-
Catalyst only optimizes performance. It doesn't modify:
- Any game mechanics
- Visuals
- Or behavior
-
The optimizations apply everywhere, automatically.
-
Every optimization can be toggled and tuned at runtime via an in-game GUI. No restarts required.
-
Designed to work alongside other mods, early plugins, and the Hyxin Mixin framework.
Catalyst uses ASM bytecode manipulation to inject optimizations directly into Hytale's classes as they're loaded by the JVM.
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Hytale Server β βββΆβ Catalyst β βββΆβ Optimized Code β
β β β β β (Bytecode) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
This approach provides:
-
Zero runtime overhead β Optimizations are baked into the bytecode at load time
-
No JAR patching β Works without modifying game files
-
Fully reversible β Just remove the plugin to restore vanilla behavior
-
Thread-safe toggling β All config fields are
volatilefor safe runtime changes: no vulnerabilities
-
Download the latest JAR from the Releases Page
-
Place it in your
early-plugins/folder:
| Platform | Path |
|---|---|
| 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/ |
- Start your server or singleplayer world
β οΈ Important: Catalyst goes in bothearly-plugins/, andmods/. Early plugin is needed to load before the server starts to intercept class loading and mod is needed for commands to function and UI to appear.
Benchmark data coming soon
Click to view benchmark results
Benchmark data coming soon
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Vanilla: ββββββββββββββββββββββββββββββββββββ 100% β
β Catalyst: ββββββββββββββββββββββββββ ~70% β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Benchmark data coming soon
Benchmark data coming soon
Test Environment:
- CPU: Your CPU here
- RAM: Your RAM here
- Hytale Version: 2026.01.17
- Java: OpenJDK 25
Catalyst provides a comprehensive set of server-side optimizations, all configurable at runtime:
| Setting | Description | Default |
|---|---|---|
| Entity View Distance | Configurable multiplier for entity sync distance | 32 blocks/chunk |
| Chunk Loading Rate | Control chunks sent per tick to balance loading speed vs TPS | 4 chunks/tick |
| Setting | Description | Default |
|---|---|---|
| Max Path Length | Maximum nodes in a path | 200 |
| Open Nodes Limit | A* open set size limit | 80 |
| Total Nodes Limit | Maximum visited nodes per pathfind | 400 |
| Setting | Description | Default |
|---|---|---|
| Thread Pool Size | Worker threads for chunk generation | CPU cores |
| Cache Sizes | Generator, cave, and prefab cache sizes | 50k/5k/50 |
| Thread Priority | Worker thread priority | 5 (Normal) |
| Setting | Description | Default |
|---|---|---|
| Skip Empty Sections | Skip light propagation for solid-air sections with no light data | Off |
| Setting | Description | Default |
|---|---|---|
| Particles | Toggle server-side particle effects | On |
| Animations | Toggle server-side NPC animations | On |
| Setting | Description | Default |
|---|---|---|
| Block Section Cache | Cache last accessed BlockSection for Y-iteration patterns | Off |
| Block Type Cache | Cache BlockType lookups by block ID | Off |
| Local Chunk Cache | 2-slot LRU cache for chunk access during lighting | Off |
| Setting | Description | Default |
|---|---|---|
| Block Entity Sleep | Skip ticking idle block entities that haven't changed | Off |
| Stat Recalc Throttle | Reduce entity stat recalculation frequency | Off |
| Block Update Batching | Track and batch block update notifications | Off |
| Flood Fill Limit | Prevent lag spikes in complex terrain spawning | Off |
| Pathfinding Pool | Reduce GC pressure with node object pooling | Off |
Open the settings menu with:
/catalyst menu
Screenshots
Settings GUI - General Tab Screenshot coming soon
Settings GUI - Advanced Tab Screenshot coming soon
Settings GUI - Search Feature Screenshot coming soon
The GUI features:
- Tabbed interface β General, Lighting, Pathfinding, Visual, and Advanced tabs
- Real-time sliders β Adjust values and see changes instantly
- Search functionality β Quickly find any setting
- One-click reset β Restore all defaults with a single button
Settings are saved automatically to mods/com.criticalrange_Catalyst/catalyst.json.
| Command | Description |
|---|---|
/catalyst |
Open the settings GUI |
/catalyst status |
Show current optimization status |
/catalyst reload |
Reload configuration from file |
Catalyst stores its configuration in JSON format:
mods/com.criticalrange_Catalyst/catalyst.json
You can edit this file directly, then use /catalyst reload to apply changes without restarting.
Example configuration
{
"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
}| Requirement | Version |
|---|---|
| Hytale | 2026.01.17+ |
| Java | 25+ |
| Hyxin | Compatible β |
| Other Early Plugins | Compatible β |
- Catalyst must be placed in
early-plugins/, notmods/ - Some optimizations are disabled by default for stability
- Experimental features should be tested before production use
| Platform | Link |
|---|---|
| Discord | Coming soon |
| Issues | Report a bug |
| Discussions | Feature requests & ideas |
For technical support (including installation problems and crashes), please:
- Check the FAQ below
- Search existing issues
- Join our Discord server for real-time help
Found a bug? Please open an issue with:
- Hytale version
- Catalyst version
- Steps to reproduce
- Error logs (if applicable)
Does Catalyst affect gameplay?
No. Catalyst only optimizes performanceβit doesn't change any game mechanics, visuals, or behavior. Your gameplay experience remains identical to vanilla Hytale.
Is it safe to use on production servers?
Catalyst is an experimental bootstrap. While we strive for stability, we recommend:
- Testing on a non-production world first
- Keeping regular backups
- Starting with default settings before enabling advanced optimizations
Can I use this with other mods?
Yes! Catalyst is designed to be compatible with:
- Other early plugins
- Hyxin (Mixin framework for Hytale)
- Regular Hytale mods in the
mods/folder
Why does Catalyst go in both early-plugins and mods?
Catalyst uses bytecode transformation, which must happen before classes are loaded. The early-plugins/ folder is loaded by Hytale's bootstrap process, allowing Catalyst to intercept and modify classes as they're loaded into the JVM. The mods/ folder is loaded by the game, allowing Catalyst to be used as a mod. This is a workaround as Hytale doesn't have a way to load commands and UI without using a mod.
How do I know if Catalyst is working?
Run /catalyst status in-game to see the current state of all optimizations. You should also see [Catalyst] messages in your server console during startup.
Can I disable specific optimizations?
Yes! Every optimization can be toggled individually via:
- The in-game GUI (
/catalyst) - The config file (
catalyst.json) - Commands (
/catalyst reloadafter editing config)
# Clone the repository
git clone https://github.com/CriticalRange/Catalyst.git
cd Catalyst
# Build the JAR
./gradlew build
# Launch server with mod loaded
./gradlew runServer
# Launch client via official launcher
./gradlew runClientBuild artifacts can be found in build/libs/.
Extend BaseTransformer and register via 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";
}
}All config fields are volatile for thread-safe runtime toggling.
Catalyst/
βββ src/main/java/com/criticalrange/
β βββ Catalyst.java # Main plugin class
β βββ CatalystConfig.java # Configuration fields
β βββ CatalystConfigFile.java # JSON persistence
β βββ transformer/ # Bytecode transformers
β β βββ BaseTransformer.java
β β βββ EntityDistanceTransformer.java
β β βββ ChunkRateTransformer.java
β β βββ ...
β βββ util/
β βββ CatalystSettingsGui.java
βββ src/main/resources/
βββ META-INF/services/ # Transformer registration
βββ Common/UI/Custom/Pages/ # GUI definitions
~/.var/app/com.hypixel.HytaleLauncher/data/Hytale/
βββ install/
βββ early-plugins/ # Catalyst JAR goes here
βββ mods/
β βββ com.criticalrange_Catalyst/
β βββ catalyst.json # Configuration file
βββ release/package/game/latest/
βββ Server/HytaleServer.jar
βββ Assets.zip
Contributions are welcome! Here's how you can help:
-
Report bugs β Found an issue? Open a bug report
-
Suggest features β Have an idea? Start a discussion
-
Submit PRs β Code contributions are appreciated!
-
Improve docs β Help make the documentation better
-
Star the repo β Show your support!
Before submitting a PR, please:
-
Fork the repository
-
Create a feature branch (
git checkout -b feature/amazing-feature) -
Commit your changes (
git commit -m 'Add amazing feature') -
Push to the branch (
git push origin feature/amazing-feature) -
Open a Pull Request
- CriticalRange β Lead developer
- ASM Team β Bytecode manipulation library
- Hypixel Studios β For creating an amazing game
- All Contributors β Everyone who helps improve Catalyst
Catalyst is licensed under the MIT License β do whatever you want with this code, just keep the copyright notice.
See LICENSE for the full license text.
Made with β€οΈ for the Hytale community
