DevourUnlocker/tools/dump_metadata.py
MiTHRAL 422f47f25c
Some checks are pending
Build DevourUnlocker / windows (push) Waiting to run
Build DevourUnlocker / linux (push) Waiting to run
Build DevourUnlocker / standalone (push) Waiting to run
v2.0.0: cross-platform winhttp proxy rewrite
- Replace hard offsets (0x74B0B0) with il2cpp resolver + string-xref sigscan
- winhttp.dll proxy (zero BepInEx, forwards WinHttp* exports) for Windows + Proton (WINEDLLOVERRIDES=winhttp=n,b)
- Selective ImGui GUI (F6) per-robe/character overrides, persisted to DevourUnlocker.json
- CMake cross-platform build, Linux .so verified
- Standalone Python CLI+Tkinter (CachyOS/Proton paths, compatdata/1274570)
- Install scripts pulling from git releases (install.sh/ps1), BepInEx Harmony fallback, CI build.yml
- Legacy DirectX11 Edition kept as reference, x64/Release artifacts removed
2026-08-21 15:28:02 -04:00

10 lines
677 B
Python
Executable file

#!/usr/bin/env python3
"""Dump robe/character strings from global-metadata.dat for DevourUnlocker.json generation"""
import re, pathlib, json, sys
p = pathlib.Path(sys.argv[1]) if len(sys.argv)>1 else pathlib.Path.home()/".local/share/Steam/steamapps/common/Devour/DEVOUR_Data/il2cpp_data/Metadata/global-metadata.dat"
data = p.read_bytes()
strs = [m.group().decode() for m in re.finditer(b'[ -~]{3,}', data)]
robes = sorted({s for s in strs if "RobeUnlocked" in s})
chars = [s for s in strs if "IsCharacterUnlocked" in s]
print(json.dumps({"robes": robes, "hasIsRobe": "IsRobeUnlocked" in strs, "hasIsChar": "IsCharacterUnlocked" in strs}, indent=2))
for r in robes: print(r)