Оверлей для стримов и записей — показывает имя персонажа и счётчик смертей поверх игры через браузерное наложение в OBS. Дизайн в стиле Elden Ring сделан пользователем Bahamamam, за что ему отдельное спасибо.
Приложение читает бинарный файл сохранения ER0000.sl2, который игра держит в AppData (Windows) или в папке Proton (Linux). Файл опрашивается каждые 500 мс — но только если дата изменения сдвинулась, иначе пропускается. Из файла читаются ровно три маленьких региона через ReadAt, без загрузки всего файла (~29 МБ) в память.
Когда счётчик смертей меняется, встроенный HTTP-сервер отправляет событие браузеру через SSE (Server-Sent Events) — браузер получает обновление мгновенно, без периодических запросов.
Оверлей открывается по адресу http://localhost:8080 (порт по умолчанию; запрашивается при настройке, подхватывается из файла конфигурации при запуске) и добавляется в OBS как источник «Браузер».
При первом запуске приложение само находит файл сохранения и запускает мастер настройки в терминале. Нужно выбрать слот персонажа и порт сервера. Настройки сохраняются в config.json рядом с исполняемым файлом — при следующих запусках мастер не появляется.
Если файл сохранения не найден автоматически (нестандартная установка Steam), можно прописать полный путь вручную — либо в мастере при первом запуске, либо напрямую в config.json в поле save_path.
go build -ldflags="-s -w"Флаги -s -w убирают отладочную информацию и таблицу символов — бинарник получается примерно вдвое меньше.
Для Windows из Linux/macOS:
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o eldenring-death-counter.exe