This repository contains reverse-engineered Go source code from the official Hytale game launcher.
The Hytale launcher was decompiled from its binary using Ghidra with a Go plugin, then converted from the decompiled C representation back to idiomatic Go source code.
The launcher is a Wails-based desktop application that uses:
- itch.io's Wharf patching system for efficient incremental game updates
- OAuth for authentication
- AES-GCM encryption for local data storage
- OS keyring integration for credential storage
| Package | Description |
|---|---|
account/ |
User account & profile management |
app/ |
Main Wails application |
appstate/ |
Persistent state management |
auth/ |
OAuth authentication flow |
build/ |
Build info, platform detection |
buildscan/ |
Installation detection |
crypto/ |
AES-GCM encryption |
deletex/ |
Safe file deletion |
download/ |
HTTP downloads with progress |
endpoints/ |
API URL generation |
eventgroup/ |
Concurrent event handling |
extract/ |
Archive extraction (zip/tar) |
fork/ |
Process forking |
helper/ |
Utility functions |
hytale/ |
Game-specific paths and config |
ioutil/ |
File I/O utilities |
keyring/ |
OS credential storage |
launch/ |
Game process launching |
legalfiles/ |
EULA/ToS handling |
logging/ |
Logging utilities |
net/ |
Network connectivity |
news/ |
News feed handling |
notifications/ |
System notifications |
oauth/ |
OAuth token management |
pkg/ |
Game/Java/Launcher packages |
repair/ |
Installation repair |
selfupdate/ |
Launcher auto-update |
session/ |
Session management |
throttle/ |
Request rate limiting |
update/ |
Update orchestration |
updater/ |
Update checking |
verget/ |
Version manifest retrieval |
The launcher communicates with these endpoints (domain: hytale.com):
| Endpoint | URL Pattern |
|---|---|
| Patch Set | https://account-data.hytale.com/patches/{os}/{arch}/{channel}/{build} |
| Launcher Data | https://account-data.hytale.com/launcher-data |
| Version Manifest | https://launcher.hytale.com/version/{platform}/{component}.json |
| News Feed | https://launcher.hytale.com/launcher-feed/{release}/feed.json |
- Authenticate via OAuth
- Fetch patchline info from
/launcher-data - Compare current build vs latest build
- Download incremental patches (Wharf
.pwrfiles) - Verify signatures (
.sigfiles) - Apply patches sequentially
- Validate installation
Prerequisites:
- Go (see
go.mod) - Node.js 20+
Local build:
make buildPlatform notes:
- Linux:
- Debian/Ubuntu (apt):
sudo apt-get update sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libglib2.0-dev build-essential
- Fedora/RHEL (dnf):
sudo dnf install -y gtk3-devel webkit2gtk4.0-devel glib2-devel gcc-c++
- Arch (pacman):
sudo pacman -S --needed gtk3 webkit2gtk glib2 base-devel
- openSUSE (zypper):
sudo zypper install -y gtk3-devel webkit2gtk3-devel glib2-devel gcc-c++
- Debian/Ubuntu (apt):
- macOS:
- Xcode Command Line Tools:
xcode-select --install
- Homebrew (if you need it):
brew install go node
- Xcode Command Line Tools:
- Windows:
- Visual Studio Build Tools (C++ workload):
choco install -y visualstudio2022buildtools visualstudio2022-workload-vctools
winget install --id Microsoft.VisualStudio.2022.BuildTools -e
- Go/Node.js (if needed):
choco install -y golang nodejs-lts
winget install --id GoLang.Go -e winget install --id OpenJS.NodeJS.LTS -e
- Visual Studio Build Tools (C++ workload):
This code is provided for educational and research purposes only. All rights to Hytale belong to Hypixel Studios.
- 70 Go source files
- 31 packages
- ~7,500 lines of code