Об этом проекте

Elden Ring Compass — это веб-компаньон для Elden Ring, который читает ваш файл сохранения и превращает его в панель прогресса. Загрузите сохранение один раз или укажите странице путь к нему для непрерывного опроса — сайт сообщит об инвентаре, побеждённых боссах, открытых благодатях, маркерах карты и других данных о завершении. Разбор происходит полностью в браузере: сохранение никогда не покидает вашу машину, и сайт не имеет возможности записывать в него, поэтому его нельзя использовать для изменения персонажа. Возможности, описанные в README: - Разбор сохранения в браузере без загрузки содержимого на сервер. - Непрерывный опрос сохранения, чтобы представление обновлялось во время игры без повторной загрузки. - Локальное сохранение позиции карты, выбора строк и фильтров столбцов. - Интерактивная карта с тайлами (Leaflet / react-leaflet) с маркерами предметов, боссов и благодатей. - Виртуализированные таблицы данных для просмотра больших списков предметов и прогресса. Архитектура и инструменты: Проект — монорепозиторий на Bun + Turborepo. Веб-приложение построено на TanStack Start и TanStack Router с React 19, использует Effect и @effect/atom-react для состояния приложения и слой данных в памяти вместо TanStack Query или IndexedDB. Компоненты интерфейса — из shadcn (вариант Base UI) с Tailwind CSS v4. Таблицы используют TanStack Table и TanStack Virtual. Vite и Nitro отвечают за сборку и продакшн-сервер, а oxlint/oxfmt и TypeScript 7 (с патчем @effect/tsgo для диагностики Effect) покрывают линтинг, форматирование и проверку типов. Тесты используют Vitest и Playwright. Пакеты: - apps/web — веб-сайт. - packages/data — единый источник данных времени выполнения: игровые данные и иконки предметов, встроенные экстрактором. - packages/save-parser (save-parser-ts) — чистый TypeScript-парсер сохранений Elden Ring, работающий в браузере или воркере; в README отмечено, что более ранний стек Rust/WASM для редактирования сохранений был удалён. - packages/extractor (er-extractor) — CLI времени сборки, который читает установленную копию игры и встраивает имена, статистику, маркеры, иконки, благодати и скрипты событий в пакет данных, используя декомпрессию Oodle через bun:ffi, распаковку dvdbnd и парсинг FMG/PARAM/MSB/EMEVD. - packages/vendored-data — только для времени сборки реверс-инженерные константы, которые нельзя получить из установки, такие как таблицы флагов событий, ключи AES/RSA и схемы параметров, адаптированные из проектов ER-Save-Lib, UXM-Selective-Unpack, soulsmods/Paramdex и soulstruct. - packages/config/* — общие конфигурации TypeScript и oxlint. Разработка: Веб-приложению требуется только Bun; также предоставлен Nix flake для воспроизводимого набора инструментов. Полная пересборка игровых данных дополнительно требует установленной копии Elden Ring и Rust-тулчейна, но предварительно собранный пакет данных включён в репозиторий, поэтому ни то, ни другое не нужно для запуска или разработки сайта. Типичные команды: bun install, bun run dev, bun run lint, bun run typecheck, bun run test и bun run build. В README также отмечено, что стандартный фрагмент для раздачи файла сохранения использует Node.js, хотя подойдёт любой простой HTTP-файловый сервер, а ручная загрузка — альтернатива непрерывному опросу.