Skip to content

Releases: juke32/nbtparsedat.py

v4.0 - Universal Raw Seed Extraction (UNTESTED)

Choose a tag to compare

@juke32 juke32 released this 02 May 05:22

⚠️ UNTESTED RELEASE

What's new in v4

  • Interactive directory prompt — no more editing the script to set paths
  • Extension-agnostic scanning — scans ALL files, skips only by magic bytes (PNG, JPEG, ELF, etc.)
  • 5 extraction strategies per file:
    1. NBT parse (nbtlib + manual struct.unpack fallback)
    2. Multi-decompression (gzip, zlib with 4 wbits variants)
    3. Binary struct TAG_Long extraction (exact NBT wire format for RandomSeed/seed)
    4. Fragmented gzip recovery (finds 1F 8B at any offset, not just offset 0)
    5. Text regex (12 patterns for seed mentions in logs)
  • Confidence scoring (0-100) with Minecraft indicator analysis and anti-pattern rejection
  • nbtlib optional — falls back to manual parsing if not installed
  • openpyxl optional — falls back to CSV output
  • Cross-platform — Windows, Linux, macOS without editing code

Key improvement for recovered files

When recovery tools (DMDE, etc.) reconstruct files, the gzip header may be at offset 512 or 4096 instead of 0, or the file may have a wrong extension. v4 handles all of these cases by trying every extraction strategy on every file regardless of extension or header position.

Usage

pip install nbtlib openpyxl
python nbtparsedat-v4.py

⚠️ This release has NOT been tested on large recovered datasets yet.