# 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. - **A `/connect` scrape kicks the live player** (single session per account, newest wins — verified 2026-06-16, see `docs/MASTER_SERVER.md`). Don't open `/connect` while the operator is in-game. ## Environment & how to run - Use the project venv: **`venv/bin/python