This article introduces the settings I used when actually running a Hytale Dedicated Server to make it less likely to crash and less prone to slowdowns, in a copy-and-paste-friendly format. The settings are based on values I personally tested. Fine-tune them while checking the logs and how the server feels in practice.
Note: Hytale is currently updated frequently, so configuration keys and behavior may change.
Rules Before Editing
- Stop the server before editing
- If you edit files by hand while the server is running, your changes may be overwritten.
- Back up before editing
- At minimum, copy
config.json / permissions.json / universe/.
- At minimum, copy
- Do not break JSON
- A trailing comma or mismatched bracket can prevent the server from starting.
Make the Server More Stable and Robust
First, as a baseline, I do not recommend cranking everything up at once.
- Start from the top with settings that are less dependent on your PC specs
- If problems appear along the way, you can still isolate the cause
Set MaxViewRadius in config.json
The official manual and community docs also explain server operation on the assumption that keeping the view distance modest helps stability. A good starting baseline is 12.
- First set
MaxViewRadius: 12- Check whether sub-30 TPS logs such as
ExplorationTicker 34–57msappear
- Check whether sub-30 TPS logs such as
- Raise it only gradually if you have enough headroom (higher values increase load)
{
"MaxViewRadius": 12
}
Tuning JVM Options
This is the main part of the article. I prepared several presets for tuning JVM options. If you are not sure what to use, try them by copy-pasting from the top.
- Load can spike when exploration distribution and NPC density overlap, so changing settings in stages instead of cranking everything up at once is safer.
Note: On a 16GB environment, heap headroom is limited, so estimate settings conservatively.
Procedure:
- Back up your local
config.json / permissions.json / universe/and similar files - Adjust the JVM options
- Start the server with a launch
.bat - Check
logs/to see whether tick warnings and NPC overcrowding warnings decrease
Tick guidelines:
- <33ms: Good (maintains 30 TPS)
- 33–50ms: Acceptable
- >50ms: Bad (noticeable lag is more likely)
Preset A: Typical Mid-Range Specs
Target specs:
- CPU: 6–8 cores
- RAM: 16GB
Recommended:
MaxViewRadius: 10- JVM:
-Xms4G -Xmx6G
Launch .bat (example)
@echo off
setlocal
REM Adjust this path to match your Hytale installation folder
set JAVA="C:\Hytale\install\release\package\jre\latest\bin\java.exe"
REM Change this to the IP you want to bind to (remove --bind if you do not need it)
set BIND_IP=25.xx.xx.xxx
set PORT=5520
REM Specify the path to the bundled Assets.zip
REM Example below assumes Assets.zip is next to the Server directory
set ASSETS=..\Assets.zip
set XMS=4G
set XMX=6G
set JVM_OPTS=-Xms%XMS% -Xmx%XMX% -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50
set AOT=-XX:AOTCache=HytaleServer.aot
cd /d "%~dp0"
%JAVA% %AOT% %JVM_OPTS% -jar ".\HytaleServer.jar" --assets "%ASSETS%" --bind %BIND_IP%:%PORT% --backup --backup-dir backups --backup-frequency 15 --backup-max-count 96
pause
endlocal
Preset B: Fairly High-End Specs
Target specs:
- CPU: 8+ cores
- RAM: 32GB
Recommended:
MaxViewRadius: 12- JVM:
-Xms6G -Xmx9G
Launch .bat (example)
@echo off
setlocal
REM Adjust this path to match your Hytale installation folder
set JAVA="C:\Hytale\install\release\package\jre\latest\bin\java.exe"
REM Change this to the IP you want to bind to (remove --bind if you do not need it)
set BIND_IP=25.xx.xx.xxx
set PORT=5520
REM Specify the path to the bundled Assets.zip
REM Example below assumes Assets.zip is next to the Server directory
set ASSETS=..\Assets.zip
set XMS=6G
set XMX=9G
set JVM_OPTS=-Xms%XMS% -Xmx%XMX% -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=75 -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem
set AOT=-XX:AOTCache=HytaleServer.aot
cd /d "%~dp0"
%JAVA% %AOT% %JVM_OPTS% -jar ".\HytaleServer.jar" --assets "%ASSETS%" --bind %BIND_IP%:%PORT% --backup --backup-dir backups --backup-frequency 15 --backup-max-count 96
pause
endlocal
Preset C: Very High-End Specs
Target specs:
- CPU: 12+ cores
- RAM: 64GB
Recommended:
MaxViewRadius: 12~16- JVM:
-Xms8G -Xmx12G
Launch .bat (example)
@echo off
setlocal
REM Adjust this path to match your Hytale installation folder
set JAVA="C:\Hytale\install\release\package\jre\latest\bin\java.exe"
REM Change this to the IP you want to bind to (remove --bind if you do not need it)
set BIND_IP=25.xx.xx.xxx
set PORT=5520
REM Specify the path to the bundled Assets.zip
REM Example below assumes Assets.zip is next to the Server directory
set ASSETS=..\Assets.zip
set XMS=8G
set XMX=12G
set JVM_OPTS=-Xms%XMS% -Xmx%XMX% -XX:+UseZGC -XX:+ZGenerational -XX:SoftMaxHeapSize=10g -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:+PerfDisableSharedMem -XX:+UseDynamicNumberOfGCThreads
set AOT=-XX:AOTCache=HytaleServer.aot
cd /d "%~dp0"
%JAVA% %AOT% %JVM_OPTS% -jar ".\HytaleServer.jar" --assets "%ASSETS%" --bind %BIND_IP%:%PORT% --backup --backup-dir backups --backup-frequency 10 --backup-max-count 144
pause
endlocal
Reference Links
-
Hytale Server Manual (official)
-
Hytale Server Docs (Unofficial)


![[GUNDAM EVOLUTION] How to Get More FPS Even on a Low-Spec CPU](https://blog.devkey.jp/en/posts/gundam-evolution-fps-optimization/index.png)
![[Deadlock] How to Set a Maximum FPS Limit](https://blog.devkey.jp/en/posts/deadlock-fps-max-launch-options/index.png)
