18 KiB
🎮 Hytale F2P Server Guide
Play with friends online! This guide covers both easy in-game hosting and advanced dedicated server setup.
DOWNLOAD SERVER FILES (JAR/RAR/SCRIPTS) HERE: https://discord.gg/hf2pdc
Table of Contents
- "Server" Term and Definition
- Server Directory Location
- A. Host Your Singleplayer World
- B. Local Dedicated Server
- C. 24/7 Dedicated Server (Advanced)
- D. Tinkering Guides
"Server" Term and Definiton
"HytaleServer.jar", which called as "Server", functions as the place of authentication of the client that supposed to go to Hytale Official Authentication System but we managed our way to redirect it on our service (Thanks to Sanasol), handling approximately thousands of players worldwide to play this game for free.
Kindly support us via our Buy Me a Coffee link if you think our launcher took a big part of developing this Hytale community for the love of the game itself. We will always advertise, always pushing, and always asking, to every users of this launcher to purchase the original game to help the official development of Hytale.
Server Directory Location
Here are the directory locations of Server folder if you have installed it on default instalation location:
- Windows:
%localappdata%\HytaleF2P\release\package\game\latest\Server - macOS:
~/Library/Application Support/HytaleF2P/release/package/game/latest/Server - Linux:
~/.hytalef2p/release/package/game/latest/Server
Note
This location only exists if the user installed the game using our launcher. The
Serverfolder needed to auth the HytaleClient to play Hytale in Singleplayer/Multiplayer for now. (We planned to add offline mode in later version of our launcher).
Important
Hosting a dedicated Hytale server will not need the exact similar tree. You can put it anywhere, as long as the directory has
Assets.zipwhich can be acquired from our launcher via ourHytaleServer.rarserver file (which contains patchedHytaleServer.jar,Assets.zip, andrun_serverscripts in.sh & .bat.
A. Host Your Singleplayer World
This feature is perfect for 1-5 players that want to just play instantly with friends. Terms and conditions applies.
1. Using Online-Play Feature / In-Game Invite Code
The easiest way to play with friends - no manual server setup required!
The game automatically handles networking using UPnP/STUN/NAT traversal.
For Online Play to work, you need:
- UPnP enabled on your router (most routers have this on by default)
- Public IP address from your ISP (not behind CGNAT)
Tip
Hoster need to make sure that the router can use UPnP: read router docs, wiki, or watch Youtube tutorials.
If you encounter any problem, check Common Issues section below!
- Press Worlds on the Main Menu.
- Select which world you want to play with your friend.
- Once you get in the world, press ESC/Pause the game.
- Press Online Play in the Pause Menu.
- Set option "Allow Other Players to Join" from OFF to ON. You can set Password if you want.
- Press Save, the Invite Code will appear.
- Press Copy to Clipboard and Share the Invite Code to your friends!
- Friends: Press Servers in the Main Menu > Press Join via Code > Paste the Code > Join.
Warning
If other players can't join the Hoster with error:
Failed to connect to any available address. The host may be offline or behind a strict firewall.AND ALSO the Hoster "Online Play" menu shows
Connected to STUN - NAT Type: Restricted (No UPnP),this means the Online Play is unavailable on the Hoster machine, and it is neccessary to use services to host your world. We recommend Playit.gg!
Common Issues (UPnP/NAT/STUN) on Online Play
a. "NAT Type: Carrier-Grade NAT (CGNAT)" Warning
If you see this message:
Connected via UPnP
NAT Type: Carrier-Grade NAT (CGNAT)
Warning: Your network configuration may prevent other players from connecting.
What this means: Your ISP doesn't give you a public IP address. Multiple customers share one public IP, which blocks incoming connections.
Solutions:
- Contact your ISP - Request a public/static IP address (may cost extra)
- Use a VPN with port forwarding - Services like Mullvad, PIA, or AirVPN offer this
- Use Playit.gg / Tailscale / Radmin VPN - Create a virtual LAN with friends (see below)
- Have a friend with public IP host instead
b. "UPnP Failed" or "Port Mapping Failed" Warning
Check your router:
- Log into router admin panel (usually
192.168.1.1or192.168.0.1) - Find UPnP settings (often under "Advanced" or "NAT")
- Enable UPnP if disabled
- Restart your router
If UPnP isn't available:
- Manually forward port 5520 UDP to your computer's local IP
- See "Port Forwarding" or "Workarounds or NAT/CGNAT" sections below
c. "Connected via STUN", "Strict NAT" or "Symmetric NAT" Warning
Some routers have restrictive NAT that blocks peer connections.
Try:
- Enable "NAT Passthrough" or "NAT Filtering: Open" in router settings
- Put your device in router's DMZ (temporary test only)
- Use Playit.gg / Tailscale / Radmin VPN as workaround
2. Using Tailscale
Tailscale creates mesh VPN service that streamlines connecting devices and services securely across different networks. And works crossplatform!!
- All members are required to download Tailscale on your device. [Once installed, Tailscale starts and live inside your hidden icon section in Windows, Mac and Linux]
- Create a common Tailscale account which will shared among your friends to log in.
- Ask your host to login in to thier Tailscale client first, then the other members.
- Host
- Open your singleplayer world
- Go to Online Play settings
- Re-save your settings to generate a new share code
- Friends
- Ensure Tailscale is connected
- Use the new share code to connect
- To test your connection, ping the host's ipv4 mentioned in Tailscale
B. Local Dedicated Server
This option is perfect for any players size. From small to high.
1. Using Playit.gg (Recommended) ✅
Free tunneling service - only the host needs to install it:
- Go to https://playit.gg/login and Log In with your existing account, Create Account if you don't have one
- Press "Add a tunnel" > Select
UDP> Tunnel description ofHytale Server> Port count1> and Local Port5520 - Press Start the tunnel (or you can just run the Playit.gg.EXE if you already installed it on your machine) - You'll get a public address like
xx-xx.gl.at.ply.gg:5520 - Go to https://playit.gg/download :
Installer(Windows) orx86-64(Linux) or followDebian Install Script(Debian-based only)- Windows: Install the
playit-windows.msi - Linux:
- Right-click file > Properties > Turn on 'Executable as a Program' | or
chmod +x playit-linux-amd64on terminal - Run by double-clicking the file or
./playit-linux-amd64via terminal
- Right-click file > Properties > Turn on 'Executable as a Program' | or
- Windows: Install the
- Open the URL/link by
Ctrl+Clickit. If unable, select the URL, then Right-Click to Copy (Ctrl+Shift+Cfor Linux) then Paste the URL into your browser to link it with your created account. - WARNING: Do not close the terminal if you are still playing or hosting the server
- Once it done, download the
run_server_with_tokensscript file (.BATfor Windows,.SHfor Linux) from our Discord server > channel#open-public-server - Put the script file to the
Serverfolder inHytaleF2Pdirectory (%localappdata%\HytaleF2P\release\package\game\latest\Server) - Copy the
Assets.zipfrom the%localappdata%\HytaleF2P\release\package\game\latest\folder to theServer\folder. (TIP: You can use Symlink of that file to reduce disk usage!) - Double-click the .BAT file to host your server, wait until it shows:
===================================================
Hytale Server Booted! [Multiplayer, Fresh Universe]
===================================================
- Connect to the server by go to
Serversin your game client, pressAdd Server, typelocalhostin the address box, use any name for your server. - Send the public address in Step 3 to your friends.
2. Using Radmin VPN
Creates a virtual LAN - all players need to install it:
- Download Radmin VPN - All players install it
- One person create a room/network, others join with network name/password
- Host joined the world, others will connect to it.
- Open Hytale Game > Servers > Add Servers > Direct Connect > Type IP Address of the Host from Radmin.
These options bypass all NAT/CGNAT issues. But for Windows machines only!
C. 24/7 Dedicated Server (Advanced)
For 24/7 servers, custom configurations, or hosting on a VPS/dedicated machine.
Step 1: Get the Files Ready
Prequisites
HytaleServer.jar(pre-patched for F2P players; dual-auth soon for Official + F2P play)Assets.ziprun_scripts_with_token.batfor Windows orrun_scripts_with_token.shfor macOS/Linux
Note
The
HytaleServer.raravailable on our Discord Server (#open-public-serverchannel; typo on the Discord, notzip) includes all of the prequisites. Unfortunately, the JAR inside the RAR isn't updated so you'll need to download the JAR from the link on Discord.
Tip
You can copy
Assets.zipgenerated from the launcher to be used for the dedicated server. It's located inHytaleF2P/release/package/game/latest.
Step 2: Place HytaleServer.jar in the Server directory
- Windows
%localappdata%\HytaleF2P\release\package\game\latest\Server
- macOS
~/Library/Application Support/HytaleF2P/release/package/game/latest/Server
- Linux
~/.hytalef2p/release/package/game/latest/Server
- If you have a custom install path, the Server folder is inside your custom location under
HytaleF2P/release/package/game/latest/Server.
Step 3: Run the Server
Windows:
run_server_with_token.bat
macOS / Linux:
./run_server_with_token.sh
D. Tinkering Guides
1. Network Setup
a. Local Network (LAN)
If all players are on the same network:
- Find your local IP:
ipconfig(Windows) orifconfig(Mac/Linux) - Share this IP with players on your network
- Default port is
5520
b. Port Forwarding (Internet Play)
To allow direct internet connections:
- Forward port 5520 (UDP) in your router
- Find your public IP at whatismyip.com
- Share your public IP with players
Windows Firewall:
# Run as Administrator
netsh advfirewall firewall add rule name="Hytale Server" dir=in action=allow protocol=UDP localport=5520
2. Configuration
a. Environment Variables
Write this in the script file .BAT/.SH or set these manually in command before running to customize your server:
| Variable | Default | Description |
|---|---|---|
HYTALE_AUTH_DOMAIN |
auth.sanasol.ws |
Auth server domain (4-16 chars) |
BIND_ADRESS |
0.0.0.0:5520 |
Server IP and port |
AUTH_MODE |
authenticated |
Auth mode (see below) |
SERVER_NAME |
My Hytale Server |
Server display name |
ASSETS_PATH |
./Assets.zip |
Assets file location |
JVM_XMS |
2G |
Minimum Java memory |
JVM_XMX |
4G |
Maximum Java memory |
Example (Windows):
set SERVER_NAME=My Awesome Server
set JVM_XMX=8G
run_server.bat
Example (Linux/macOS):
SERVER_NAME="My Awesome Server" JVM_XMX=8G ./run_server.sh
b. Authentication Modes
| Mode | Description | Use Case |
|---|---|---|
authenticated |
Players log in via F2P Launcher | Public servers |
unauthenticated |
No login required | LAN parties, testing |
singleplayer |
Local play only | Solo testing |
3. RAM Allocation Guide
Adjust memory based on your system:
| System RAM | Players | JVM_XMS | JVM_XMX |
|---|---|---|---|
| 4 GB | 1-3 | 512M |
2G |
| 8 GB | 3-8 | 1G |
4G |
| 16 GB | 8-15 | 2G |
8G |
| 32 GB | 15+ | 4G |
12G |
Example for large server:
JVM_XMS=4G JVM_XMX=12G ./run_server.sh
Tips:
-Xms= minimum RAM (allocated at startup)-Xmx= maximum RAM (upper limit)- Never allocate all your system RAM - leave room for OS
- Start conservative and increase if needed
4. Server Commands
Once running, use these commands in the console:
| Command | Description |
|---|---|
help |
Show all commands |
stop |
Stop server gracefully |
save |
Force world save |
list |
List online players |
op <player> |
Give operator status |
deop <player> |
Remove operator status |
kick <player> |
Kick a player |
ban <player> |
Ban a player |
unban <player> |
Unban a player |
tp <player> <x> <y> <z> |
Teleport player |
Use / slash for these commands.
5. Command Line Options
Pass these when starting the server:
./run_server.sh [OPTIONS]
| Option | Description |
|---|---|
--bind <ip:port> |
Server address (default: 0.0.0.0:5520) |
--auth-mode <mode> |
Authentication mode |
--universe <path> |
Path to world data |
--mods <path> |
Path to mods folder |
--backup |
Enable automatic backups |
--backup-dir <path> |
Backup directory |
--backup-frequency <mins> |
Backup interval |
--owner-name <name> |
Server owner username |
--allow-op |
Allow op commands |
--disable-sentry |
Disable crash reporting |
--help |
Show all options |
Example:
./run_server.sh --backup --backup-frequency 30 --allow-op
6. File Structure
<game_path>/
├── Assets.zip # Game assets (required)
├── Client/ # Game client
└── Server/
├── HytaleServer.jar # Server executable (pre-patched)
├── HytaleServer.aot # AOT cache (faster startup)
├── universe/ # World data
│ ├── world/ # Default world
│ └── players/ # Player data
├── mods/ # Server mods (optional)
└── Licenses/ # License files
7. Backups
a. Automatic Backups
./run_server.sh --backup --backup-dir ./backups --backup-frequency 30
b. Manual Backup
- Use
savecommand or stop the server - Copy the
universe/folder - Store in a safe location
c. Restore
- Stop the server
- Delete/rename current
universe/ - Copy backup to
universe/ - Restart server
8. Troubleshooting
a. "Java not found" or "Java version too old"
Java 21 is REQUIRED (the server uses class file version 65.0).
Install Java 21:
- Windows:
winget install EclipseAdoptium.Temurin.21.JDK - macOS:
brew install openjdk@21 - Ubuntu:
sudo apt install openjdk-21-jdk - Fedora:
sudo dnf install java-21-openjdk - Arch:
sudo pacman -S jdk21-openjdk - Download: adoptium.net/temurin/releases/?version=21
macOS: Set Java 21 as default:
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export PATH="$JAVA_HOME/bin:$PATH"
Add these lines to ~/.zshrc or ~/.bash_profile to make permanent.
b. "Port already in use"
./run_server.sh --bind 0.0.0.0:5521
c. "Out of memory"
Increase JVM_XMX:
JVM_XMX=6G ./run_server.sh
d. Players can't connect
- Server shows "Server Ready"?
- Using F2P Launcher (not official)?
- Port 5520 open in firewall?
- Port forwarding configured (for internet)?
- Try
--auth-mode unauthenticatedfor testing
e. "Authentication failed"
- Ensure players use F2P Launcher
- Auth server may be temporarily down
- Test with
--auth-mode unauthenticated
9. Docker Deployment (Advanced)
For production servers, use Docker:
docker run -d \
--name hytale-server \
-p 5520:5520/udp \
-v ./data:/data \
-e HYTALE_AUTH_DOMAIN=auth.sanasol.ws \
-e HYTALE_SERVER_NAME="My Server" \
-e JVM_XMX=8G \
ghcr.io/hybrowse/hytale-server-docker:latest
See Docker documentation for details.
10. Getting Help
- Check server console logs for errors
- Test with
--auth-mode unauthenticatedfirst - Ensure all players have F2P Launcher
- Join the community for support
Credits
- Hytale F2P Project
- Hybrowse Docker Image
- Auth Server: sanasol.ws