From aa7425221f0a4746aec57ed301c21836a342a8ea Mon Sep 17 00:00:00 2001 From: DownloadPizza Date: Tue, 16 Jun 2026 09:05:37 +0200 Subject: [PATCH] docs: add CLAUDE.md (tools, subcommands, architecture, .wbt format/hashes) --- CLAUDE.md | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..d2f41ca --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,143 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## What this repo is + +Reverse-engineering / data-mining toolkit for the game **SAND** (Hologryph, Unity 6000.0.40f1, +IL2CPP). It extracts server-authoritative and static game data from three sources, and reads/writes +the game's local walker save files. There is no application to build — everything is standalone +Python scripts run against game files, network captures, or live servers. + +The four data sources, and which tools own them: +- **Unity asset bundles** (static config: items, recipes, loot, islands) → `bundle/` +- **Master server** `wss://.hologryph.com/gameclient/` (economy, walker blueprints, research) → `reverse/master_scrape.py` +- **PlayFab** (Azure; **auth-only** for this title — Economy/catalog disabled) → `reverse/playfab_scrape.py` +- **`.wbt` walker save files** (local, on disk) → `walker/` + +## Working rules (from operator memory — follow these) + +- **Data only, never heuristics.** Do not invent rules or fill gaps with plausible assumptions. + Derive every value from game files, decompiled code, or captured payloads — or ask. (An invented + "guns point outward" rule and a guessed rotation→facing mapping both produced wrong results.) +- **Report what the data shows, not inferences as fact.** Don't jump to conclusions. +- **No polling wait-loops.** Use background tasks + wakeup notifications; don't `sleep`-poll for completion. +- **Don't hammer the live server.** It is a real playtest backend. Warn the operator *before* any + action that makes repeated/abnormal connections. BattlEye is active in the game — all scraping is + done **outside** the game process (replayed protocol / captures / REST), never via injection. + +## Environment & how to run + +- Use the project venv: **`venv/bin/python