Hytale uses a custom binary protocol built on top of Netty and QUIC.
com.hypixel.hytale.protocol.PacketRegistrycom.hypixel.hytale.protocol.PacketMany packets follow a specific serialization pattern:
This allows the server to validate packet size and structure efficiently before full deserialization.
Total Packets Registered: ~150+
| ID | Name | Description |
| :— | :— | :— |
| 0 | Connect | Handshake. Contains Protocol Hash, ClientType, UUID, Username, Auth Token. |
| 1 | Disconnect | Disconnect reason. |
| 2 | Ping | Latency check. |
| 3 | Pong | Latency response. |
| 11 | AuthGrant | Authentication success/grant. |
| 12 | AuthToken | Exchange auth tokens. |
| ID | Name | Description |
| :— | :— | :— |
| 20 | WorldSettings | Initial world configuration. |
| 21 | WorldLoadProgress | Loading screen progress. |
| 23 | RequestAssets | Client requests asset pack. |
| 131 | SetChunk | Chunk data transmission. |
| 140 | ServerSetBlock | Single block change from server. |
| 141 | ServerSetBlocks | Batch block change. |
| ID | Name | Description |
| :— | :— | :— |
| 51 | UpdateEntityEffects | Sync entity status/effects. |
| 104 | JoinWorld | Player joins the world. |
| 108 | ClientMovement | Player movement updates to server. |
| 109 | ClientTeleport | Teleport player. |
| 161 | EntityUpdates | Generic entity update packet. |
| 163 | ChangeVelocity | Apply velocity to entity. |
Hytale has extensive protocol support for in-game building tools.
| ID | Name | Description |
| :— | :— | :— |
| 400 | BuilderToolArgUpdate | Tool settings update. |
| 403 | BuilderToolExtrudeAction | Extrude operation. |
| 407 | BuilderToolPasteClipboard | Paste schematic. |
| 409 | BuilderToolSelectionUpdate | Update selection box. |
Packets 300-361 are dedicated to the live Asset Editor, allowing developers to modify assets (JSONs) in real-time and sync changes to the server.
Connect (ID 0).AuthGrant (ID 11) or Disconnect (ID 1).WorldSettings (ID 20).WorldLoadProgress (ID 21).JoinWorld (ID 104) when ready.ClientReady (ID 105).