Skip to content

ginco-org/hytale-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hytale-data

Automated pipeline for extracting and archiving data from Hytale builds across all available versions.

Overview

The pipeline is driven by a Makefile with file-based dependency tracking, making it fully incremental — re-running make sync only processes what's new or missing.

Stages

Stage Script Output
versions fetch-versions.ts out/versions.json
download download.ts builds/<commit>/{HytaleServer.jar,HytaleServer.aot,Assets.zip,build.zip}
decompile decompile.ts builds/<commit>/decompiled/
schemas generate-schemas.ts out/<commit>/{asset-schema,config-schema}/
manifest manifest.ts out/<commit>/manifest.json, out/<commit>/assets.json
packets extract-packets.ts out/<commit>/packets.json

Artifact tiers

  • builds/ — private intermediary artifacts (JARs, decompiled source, build zips). Not published due to licensing.
  • out/ — public derived data (schemas, manifests, asset indices). Committed to the repo.

Usage

make sync   # fetch new versions and run all outstanding pipeline stages
make        # same as make sync

Authentication against Hytale's R2 storage uses OAuth device flow. On first run you'll be prompted to visit a URL to authenticate; the token is cached in .token.json.

Version tracking

Versions are keyed by commit hash (the 9-character suffix in version strings like 2026.03.26-89796e57b). When a build is promoted from pre-release to release, the commit hash stays the same but the date prefix changes — the pipeline deduplicates these automatically and records all channel appearances in out/versions.json.

Output format

out/versions.json

{
  "versions": [
    {
      "commit": "89796e57b",
      "channels": {
        "pre-release": "2026.03.25-89796e57b",
        "release": "2026.03.26-89796e57b"
      }
    }
  ]
}

out/<commit>/manifest.json

{
  "commit": "89796e57b",
  "channels": { "release": "2026.03.26-89796e57b" },
  "source": "full",          // "full" | "jar-only" | "unavailable"
  "decompiled": true,
  "schemas": "full",         // "full" | "asset-only" | false
  "files": {
    "HytaleServer.jar": { "sha256": "...", "size": 125123854 },
    "HytaleServer.aot": { "sha256": "...", "size": 131825664 },
    "Assets.zip":        { "sha256": "...", "size": 1410235628 }
  },
  "build_zip_sha256": "...",
  "jar_manifest": {
    "Main-Class": "com.hypixel.hytale.Main",
    "Implementation-Version": "2026.03.26-89796e57b",
    "Implementation-Revision-Id": "89796e57b95fa62c6306b423dde8dfbffaa03ce7",
    // ...
  }
}

out/<commit>/assets.json

Index of every file in Assets.zip with sha256 and uncompressed size. Only present for full builds.

{
  "manifest.json": { "sha256": "...", "size": 45 },
  "Common/BlockTextures/Bone_Side.png": { "sha256": "...", "size": 1431 },
  // ...
}

out/<commit>/packets.json

List of all registered network packets extracted from the decompiled PacketRegistry.java static initializer. Only present for builds with decompiled source.

{
  "packets": [
    {
      "id": 0,
      "name": "Connect",
      "direction": "ToServer",  // "ToServer" | "ToClient" | "Both"
      "channel": "Default",     // NetworkChannel enum value
      "type": "com.hypixel.hytale.protocol.packets.connection.Connect",
      "fixedBlockSize": 46,
      "maxSize": 38013,
      "compressed": false
    }
  ]
}

todo

  • client binaries?
  • launcher binaries?
  • server dependencies and their versions extraction
  • server launch options

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors