Skip to content

MHG-1132: update protocol to current Hytale (0.5.5) — handshake + transfer#1

Open
alepaez wants to merge 17 commits into
mainfrom
alexandresequeira/mhg-1132-update-protocol
Open

MHG-1132: update protocol to current Hytale (0.5.5) — handshake + transfer#1
alepaez wants to merge 17 commits into
mainfrom
alexandresequeira/mhg-1132-update-protocol

Conversation

@alepaez

@alepaez alepaez commented Jun 17, 2026

Copy link
Copy Markdown

Updates hyproxy's hand-rolled protocol layer to current Hytale 0.5.5 so a client can join through the proxy and be transferred to a backend. Verified end-to-end locally (client → proxy auth handshake → transfer to lobby → spawn).

See RE-NOTES.md for the reverse-engineered packet/sequence findings (decompiled from HytaleServer.jar).

  • Connect (id 0) re-layout: no uuid/username, 4-slot offset table, var block @46
  • identity sourced from JWTs (uuid=identity token sub, username=access token); player registration deferred until username known
  • no protocolCrc gate (varies per client build; backend validates)
  • proxy→backend insecure-options handshake: new InsecurePlayerOptions (363) / RequestInsecurePlayerOptions (364)
  • PacketDecoder forwards undecodable frames raw instead of killing the connection
  • backend-plugin: 0.5.5 API fixes (ChannelConnection, Collection players) + backend name from SERVER_ID
  • gated raw-byte logging via -Dhyproxy.debugBytes=true

Built with JDK 25 (./gradlew build).

@SantioMC SantioMC left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some code requires changing due to changes from upstream

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants