Полторы сотни параметров сплошным списком читать невозможно. Теперь они
разбиты на разделы — «Основное», «PVP и урон», «Убежища», «Античит» и так
далее, — свёрнутые по умолчанию, кроме первого. Поиск раскрывает разделы с
совпадениями и прячет остальные, а раскрытые разделы не схлопываются при
возврате на вкладку.
Категории составлены по настоящим конфигам Build 41 и 42: все 144 ключа
.ini и 270 параметров песочницы раскладываются без остатка. Нумерованные
и однотипные ключи (AntiCheatProtectionType1..24, *Loot, Animal*, Firearm*)
подхватываются по префиксу, а незнакомые попадают в «Прочее» — в новых
версиях игры ключи добавляют, и терять их со страницы нельзя.
Описания параметров панель больше не выдумывает, а берёт из самого
конфига: игра пишет их комментариями на языке сервера. Полный текст — во
всплывающей подсказке, начало — под полем; поиск ищет и по описанию, так
что параметр можно найти по-русски.
Заодно исправлено сохранение файлов с виндовыми переводами строк: панель
переписывала их в LF, и правка одного параметра меняла каждую строку
файла. Проверено на реальном SandboxVars.lua: правка одного значения
меняет ровно одну строку, размер файла не меняется.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Панель принудительно ставила -Xms равным -Xmx: куча не растёт на ходу, но
JVM обязана занять весь объём при старте. На машине с 5 ГБ ОЗУ сервер с
4g так вообще не поднимался — «Failed to allocate initial Java heap».
Теперь -Xmx задаётся как раньше, а -Xms стал отдельным полем профиля и по
умолчанию пуст: JVM берёт память по мере надобности. Пара значений
проверяется при сохранении профиля, а не при запуске сервера, — про
опечатку лучше узнать из формы, чем из лога упавшего сервера.
Там же в супервизоре: ожидание автоподъёма стало отдельным состоянием.
Раньше упавший сервер уходил в цикл «падение — пауза 10 секунд — падение»,
причём во время паузы он считался остановленным, и прервать это было
нечем. Теперь паузу видно в статусе с обратным отсчётом и её можно
отменить, а после трёх падений сразу после запуска подряд панель
перестаёт поднимать сервер сама: так проявляется нехватка памяти или
битый конфиг, и перезапуск тут не помогает.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Вместо двух отдельных списков (Workshop ID и Mod ID) — один список модов:
галочка включает мод, перетаскивание задаёт порядок загрузки, кнопка
убирает пакет вместе со всеми его модами.
Чтобы галочкам было за что зацепиться, панель читает mod.info уже
скачанных модов: серверу в Mods нужен именно Mod ID, а он лежит внутри
пакета мастерской и вручную его приходилось искать в описании мода. Пока
мод не скачан, строка помечена и галочка недоступна — Mod ID неизвестен.
Один пакет мастерской может содержать несколько модов; теперь они видны
отдельными строками и включаются по отдельности.
Коллекции: кнопка разворачивает коллекцию Steam в список входящих в неё
модов, сохраняя порядок со страницы коллекции. И мод, и коллекция
принимаются как ссылкой, так и голым идентификатором.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Менеджер запускает сервер PZ как дочерний процесс и держит его stdin/stdout:
отсюда живая консоль без RCON, стриминг логов через SSE и корректная
остановка по цепочке quit -> SIGTERM -> SIGKILL для всей группы процессов.
Сам менеджер работает под systemd.
Что входит:
- управление жизненным циклом сервера, автозапуск и автоподъём после падения;
- метрики процесса из /proc и состояние хоста, список игроков онлайн;
- редакторы servertest.ini и SandboxVars.lua, сохраняющие исходное
форматирование файлов;
- моды: списки Workshop ID и Mod ID с порядком загрузки, названия из Steam;
- бэкапы мира по расписанию и вручную, с ротацией и восстановлением;
- установка и обновление сервера через SteamCMD;
- вход по логину и паролю, первичная настройка по одноразовому коду.
Веб-интерфейс без сборщика, вшит в бинарник через embed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>