Fan-проект · World of Tanks Heat

Статистика из реплеев, которую игра не показывает

WarStat декодирует бинарные .replay на твоём ПК и строит личный профиль: урон, танк, K/D/A, счёт, рейтинг. На сервер уходит только JSON-снимок боя (~400 байт) — не сами файлы реплеев.

~400 байт
на бой в облако
~1 сек
декод на ПК
0 .replay
файлов на сервере

Как это работает

01

Играешь

Heat пишет .replay в папку coldwar/replays

02

Агент декодирует

NetHit, stat snapshot, K/D/A bundle — локально в фоне

03

Синхронизация

HTTPS + API key, dedup по SHA256 хешу файла

04

Профиль на сайте

Рейтинг, история боёв, поиск — реплеи можно удалить

Почему WarStat

Официальный клиент хранит реплеи, но не даёт удобную агрегированную статистику и сравнение с другими игроками. WarStat извлекает метрики из бинарного потока Broengine: личный урон (NetHitMessage), stat snapshot entity игрока (041801), итог боя (BattleResultReplayEvent).

Формат .replay закрыт и меняется между режимами (conquest, control, domination, killconfirm). Дешифратор развивается итеративно: анализ байт-потока, корреляция stat_id по режимам, ML-assisted сверка со скриншотами после боя.

Полностью бесплатно. Не аффилирован с издателем. Не чит, не мод — только чтение уже записанных реплеев.

Локальный декодер

WarStat Agent в системном трее. Watchdog на папку реплеев, очередь с низким приоритетом CPU, ~1 с на бой. Окно закрывается в трей — процесс живёт.

Облачный профиль

PostgreSQL на VPS, публичный рейтинг, поиск по нику. После upload статистика сохранена — папку .replay можно безопасно очистить.

🔒Приватность по дизайну

Реплей (~15 MB) не покидает ПК. Upload — только структурированные поля боя. API key привязывает данные к аккаунту.

Что извлекаем из реплея: Урон (NetHit) · Танк (frontman) · Win/Lose · Счёт/XP · K/D/A · Блок · Серебро · Командный счёт