Files
hytale-f2p/server/README.md
sanasol 552ec42d6c Add one-click dedicated server scripts for Hytale F2P
- server/start.sh: Linux/macOS starter with auto-download, auto-update,
  F2P launcher detection (game files + bundled JRE), and token fetch
- server/start.bat: Windows equivalent using PowerShell for JSON/UUID
- server/README.md: Beginner-friendly guide with playit.gg networking
- Remove obsolete server_scripts_2.zip

Scripts auto-detect F2P launcher install (including custom installPath
from config.json), copy game files locally if available, download
missing files (HytaleServer.jar, Assets.zip, dualauth-agent.jar),
and check for updates on every launch via ETag/GitHub releases API.
2026-02-23 00:55:38 +01:00

115 lines
4.2 KiB
Markdown

# Hytale F2P - Dedicated Server
Host your own Hytale server. The scripts handle everything automatically.
## Prerequisites
- **Java 25+** — [Windows installer](https://download.oracle.com/java/25/latest/jdk-25_windows-x64_bin.exe) | [Other platforms](https://adoptium.net/)
- If you have the F2P launcher installed, its bundled Java will be used automatically
- **Internet connection** for first launch (downloads ~3.5 GB of game files)
- If you have the F2P launcher installed, game files are copied locally (no download needed)
## Quick Start
### Windows
1. Download `start.bat` to an empty folder
2. Double-click `start.bat`
3. Done — server starts on port **5520**
### Linux / macOS
```bash
mkdir hytale-server && cd hytale-server
curl -O https://raw.githubusercontent.com/amiayweb/Hytale-F2P/develop/server/start.sh
chmod +x start.sh
./start.sh
```
## What the scripts do
1. Search for the F2P launcher install (default paths + custom `installPath` from config)
2. Use bundled Java from the launcher, or fall back to system Java (25+ required)
3. Copy game files from the launcher install if available
4. Download missing files: `HytaleServer.jar` (~150 MB), `Assets.zip` (~3.3 GB), `dualauth-agent.jar` (~5 MB)
5. Check for updates on every launch (server, assets, and agent)
6. Generate a persistent server ID
7. Fetch authentication tokens
8. Start the server with dual-auth support
## Connecting
- **Same PC**: Connect to `localhost:5520` or `127.0.0.1:5520`
- **LAN**: Connect to your local IP (e.g. `192.168.1.x:5520`)
- **Internet**: Forward port `5520` (TCP + UDP) on your router, friends connect to your public IP
### No public IP? Use playit.gg (recommended)
If you're behind CGNAT or can't port forward, [playit.gg](https://playit.gg) gives you a public address for free:
1. Go to [playit.gg](https://playit.gg) and create an account
2. Download and run the playit agent
3. Create a tunnel — select **Hytale** as the game type, local port `5520`
4. Share the generated address with friends (e.g. `something.joinplayit.gg:12345`)
### Other options
- [Radmin VPN](https://www.radmin-vpn.com/) — virtual LAN, all players must install it
- [ZeroTier](https://www.zerotier.com/) — same idea, create a network, friends join and connect via VPN IP
## Configuration
Set environment variables before running the script:
| Variable | Default | Description |
|----------|---------|-------------|
| `SERVER_NAME` | `My Hytale Server` | Server name shown in listings |
| `BIND_ADDRESS` | `0.0.0.0:5520` | IP and port to listen on |
| `JVM_XMX` | *(Java default)* | Max memory (e.g. `4G`, `8G`) |
| `JVM_XMS` | *(Java default)* | Initial memory |
| `AUTH_MODE` | `authenticated` | Auth mode (`authenticated` or `none`) |
| `HYTALE_AUTH_DOMAIN` | `auth.sanasol.ws` | Auth server domain |
| `DOWNLOAD_BASE` | `https://download.sanasol.ws/download` | File download URL |
**Example (Linux):**
```bash
SERVER_NAME="Epic Server" JVM_XMX=4G ./start.sh
```
**Example (Windows):**
```cmd
set SERVER_NAME=Epic Server
set JVM_XMX=4G
start.bat
```
## Files created
```
your-folder/
├── start.sh / start.bat # Startup script
├── HytaleServer.jar # Game server (auto-downloaded)
├── Assets.zip # Game assets (auto-downloaded)
├── dualauth-agent.jar # Auth agent (auto-downloaded)
├── .server-id # Persistent server UUID
├── .versions/ # Version tracking for auto-updates
├── Server/ # Server data (created by server)
│ ├── config.json
│ └── worlds/
└── UserData/ # Player saves
```
## Troubleshooting
| Problem | Solution |
|---------|----------|
| `java not found` | Install the F2P launcher (includes Java) or install Java 25+ from [adoptium.net](https://adoptium.net/) |
| Download fails | Check internet connection. Files can be downloaded manually from `https://download.sanasol.ws/download/` |
| Port already in use | Change port: `BIND_ADDRESS=0.0.0.0:5521 ./start.sh` |
| Out of memory | Set more RAM: `JVM_XMX=4G ./start.sh` |
| Friends can't connect | Forward port 5520 (TCP+UDP) on your router, or use [playit.gg](https://playit.gg) if you can't port forward |
## Discord
Need help? Join the community: https://discord.gg/Fhbb9Yk5WW