Skip to content

Repository files navigation

Sacred Mod Loader

Один exe-файл, который ставит моды в Sacred Gold и запускает игру вместе с ними.

Лаунчер несёт внутри себя весь загрузчик модов. Вы кладёте его в папку игры, выбираете моды из списка и нажимаете Play. Остальное он делает сам: скачивает моды, проверяет их и запоминает ваш выбор.

Файлы игры лаунчер не меняет. Всё своё он хранит в папке игры, поэтому удалить его — значит удалить эту папку.

Как начать

  1. Скачайте Sacred Mod Loader.exe из релизов.
  2. Положите его в папку Sacred Gold, рядом с pureHD.exe, Sacred.exe или Game.exe.
  3. Запустите. Рядом с игрой появятся папки launcher и mods.
  4. На вкладке Available выберите моды и установите их.
  5. Нажмите Play.

Пока идёт игра, окно лаунчера скрыто. Когда вы выйдете из Sacred, оно появится снова.

Выбор сохраняется сразу, в launcher\launcher.json. Включённые моды, флаги и остальные настройки не пропадут, даже если закрыть окно без запуска игры.

Моды и репозитории

Вкладка Installed показывает моды из папки mods. Их можно включить, выключить, обновить или удалить. Jar, положенный в mods вручную, тоже появится здесь при следующем запуске.

Вкладка Available показывает моды из репозиториев. По умолчанию подключён официальный, ancaria-dev/mods. Свой репозиторий добавляется кнопкой Repositories: вставьте HTTPS-адрес для клонирования, который заканчивается на .git. В корне репозитория должен лежать sacred.mods.repository.json. Git для этого не нужен.

Перед установкой лаунчер проверяет каждый мод: контрольную сумму, идентификатор внутри jar и совместимость с текущей версией загрузчика. Мод, не прошедший проверку, не устанавливается.

Если мод собран для другой версии загрузчика, он остаётся в списке, но включить его нельзя. Под описанием красным написано, в чём дело. Исправить это может только автор мода.

Для закрытого репозитория нужен токен доступа. Лаунчер шифрует его вашей учётной записью Windows, и на другом компьютере токен не прочитать. Если Windows не может зашифровать токен, лаунчер предупредит, что сохранит его открытым текстом.

Java

Моды работают на Java 21 или новее. Без неё игра запустится, но моды не загрузятся. Какую Java нашёл лаунчер, написано над кнопкой Play.

Лаунчер ищет Java в трёх местах и берёт первую подходящую:

  1. launcher\java в папке игры
  2. JAVA_HOME
  3. PATH

Если подходящей нет, нажмите Get Java. Выберите дистрибутив и версию, и лаунчер скачает JDK в launcher\java. Списки приходят из каталога foojay, по умолчанию выбраны Oracle и Java 25. PATH, реестр и всё за пределами папки игры остаются нетронутыми.

Если foojay публикует контрольную сумму, лаунчер сверяет с ней архив. Архив с ошибкой удаляется, а уже установленный JDK продолжает работать.

Версия игры

Загрузчик рассчитан на pureHD.exe 2.0.2.118 — сборку Sacred Gold с HD и исправлениями от сообщества. Если в папке другая версия, лаунчер покажет предупреждение с кнопкой Fix?.

Fix? и Play в этом случае открывают окно с тремя кнопками:

  • Download pureHD скачивает нужную сборку с ancaria.dev, проверяет её и кладёт pureHD.exe и pHD.dll рядом с игрой. Ваш исходный exe остаётся на месте. Старые копии этих двух файлов лаунчер сначала переносит в launcher\purehd-backup.
  • Run anyway запускает игру как есть. Моды при этом могут не работать или уронить игру: адреса в памяти у другой сборки иные.
  • Cancel закрывает окно.

Обновление

Когда выходит новая версия, под номером версии в шапке появляется ссылка Download & install now. Лаунчер скачает новый exe в папку игры, а кнопка Install & Restart заменит им старый и перезапустит лаунчер. Моды, настройки и скачанная Java остаются на месте.

Если GitHub недоступен или обновлений нет, лаунчер ничего не показывает.

Настройки и диагностика

  • Extra flags for Sacred передаёт игре дополнительные аргументы командной строки.
  • Show the console while playing открывает консоль с журналом хоста. Запуск Sacred Mod Loader.exe --debug включает её сразу.
  • Hooks — свёрнутый список точек, где загрузчик подключается к игре. Отключите точку, чтобы найти ту, что мешает. Щелчок по имени модуля переключает всю его группу.

Если Sacred Gold лежит в Program Files, запускайте лаунчер от имени администратора, иначе Windows не даст ему писать в папку игры. Если сама игра запущена от администратора, лаунчеру нужны те же права.

Сборка

Для сборки нужен только Go 1.26:

pwsh tools/build.ps1         # собрать dist/Sacred Mod Loader.exe
pwsh tools/install.ps1       # собрать и скопировать в папку игры

Скрипт скачивает хост и jar-файлы из релизов, закреплённых в dependencies.json. Если рядом лежат чекауты protocol и coderpack, он собирает их из исходников. Тогда понадобятся ещё JDK 21, Python 3.11 и Rust 1.98 с MSVC и LLVM. Ключи -Protocol none -Coderpack none заставляют скрипт скачивать релизы даже при наличии чекаутов. CI собирает именно так.

tools/install.ps1 берёт путь к игре из незакоммиченного .local.settings:

sacred=D:\SteamLibrary\steamapps\common\Sacred Gold

Тесты:

go vet ./...
go test ./... -count=1

Как лаунчер связан с остальными репозиториями, описано в CONTRIBUTING.

Релизы

Версия лежит в .version. pwsh tools/version.ps1 печатает её, pwsh tools/version.ps1 0.200.2 задаёт новую, а tools/build.ps1 -Bump поднимает последнюю цифру перед сборкой.

На master CI публикует dist/Sacred Mod Loader.exe и создаёт тег v<версия>, если такого тега ещё нет.

Лицензия

MIT, см. LICENSE.

Releases

Packages

Contributors

Languages