Мод-менеджер с галочками и коллекции мастерской

Вместо двух отдельных списков (Workshop ID и Mod ID) — один список модов:
галочка включает мод, перетаскивание задаёт порядок загрузки, кнопка
убирает пакет вместе со всеми его модами.

Чтобы галочкам было за что зацепиться, панель читает mod.info уже
скачанных модов: серверу в Mods нужен именно Mod ID, а он лежит внутри
пакета мастерской и вручную его приходилось искать в описании мода. Пока
мод не скачан, строка помечена и галочка недоступна — Mod ID неизвестен.

Один пакет мастерской может содержать несколько модов; теперь они видны
отдельными строками и включаются по отдельности.

Коллекции: кнопка разворачивает коллекцию Steam в список входящих в неё
модов, сохраняя порядок со страницы коллекции. И мод, и коллекция
принимаются как ссылкой, так и голым идентификатором.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-04 00:36:06 +03:00
co-authored by Claude Opus 5
parent 277ab7af4a
commit fe517cfb71
9 changed files with 675 additions and 71 deletions
+33 -2
View File
@@ -22,8 +22,8 @@
ОЗУ и диск на хосте, список игроков онлайн.
- **Редактор конфигов** — `servertest.ini` и `SandboxVars.lua` прямо в
браузере, с поиском по параметрам и сохранением комментариев в файле.
- **Моды** — списки Workshop ID и Mod ID с порядком загрузки, названия модов
подтягиваются из мастерской Steam.
- **Мод-менеджер** — моды списком с галочками и перетаскиванием порядка
загрузки, добавление по ссылке и разворачивание коллекций Steam целиком.
- **Бэкапы** — ручные и по расписанию, отдельно по каждому профилю, с
ротацией, скачиванием и восстановлением (перед восстановлением
автоматически снимается страховочная копия).
@@ -93,6 +93,37 @@ sudo ufw allow 16261/udp
sudo ufw allow 16262/udp
```
## Моды
Project Zomboid хранит моды в двух строках конфига: `WorkshopItems` — что
скачать из мастерской, `Mods` — что включить и в каком порядке. Панель
показывает их одним списком, где каждая строка — мод:
- **галочка** включает мод (добавляет его Mod ID в `Mods`);
- **перетаскивание** (или стрелки) задаёт порядок загрузки — для модов,
которые переопределяют одни и те же файлы, он решает, чья версия победит;
- **«Убрать»** выбрасывает пакет из `WorkshopItems` вместе со всеми его модами.
Добавить мод можно ссылкой на страницу мастерской или голым ID. Кнопка
**«Добавить коллекцию»** разворачивает коллекцию в список входящих в неё модов
— порядок берётся тот же, что на странице коллекции.
Mod ID, который нужен серверу, лежит внутри самого мода (`mod.info`), поэтому
панель читает уже скачанные моды с диска:
```
<server_dir>/steamapps/workshop/content/108600/<workshop id>/mods/<мод>/mod.info
~/Zomboid/mods/<мод>/mod.info # моды, положенные вручную
```
Пока сервер не скачал мод, его строка помечена «ещё не скачан» и галочка
недоступна: Mod ID неизвестен. Файлы загружает сам сервер при запуске по
списку `WorkshopItems` — то есть достаточно добавить моды, сохранить и
запустить сервер, после чего они станут доступны для включения.
Один пакет мастерской может содержать несколько модов — в списке они идут
отдельными строками, и включать их можно по отдельности.
## Профили серверов
Профиль — это отдельный сервер: свой мир, свой `*.ini`, свои настройки