MSU
Этот мод призван автоматизировать процесс обновления модов на Fabric-серверах
- Загрузчики
- FabricForge
- Скачиваний на Modrinth
- 611
- Подписчиков на Modrinth
- 5
- версий
- 14
- Обновлён
- 17 октября 202617 окт.
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Minecraft Server Updater
Этот мод экспериментальный!
Учитывай, что могут быть проблемы!
Minecraft Server Updater (MSU) — серверная утилита для Fabric и Forge, которая поддерживает сервер Minecraft в актуальном состоянии: проверки через Modrinth, безопасное staging, установка через wrapper, автоматизация и поддержка отката.
Устанавливай подходящий jar: minecraft-server-updater+fabric-… на Fabric, minecraft-server-updater+forge-… на Forge. Это отдельные файлы, они не взаимозаменяемы.
MSU создан для владельцев серверов и админов, которые хотят обновлять моды без постоянных ручных обновлений!
Основная идея: Проверить, что устарело, сложить безопасные обновления в отдельную область, а затем дать wrapper'у применить их чисто перед следующим запуском сервера.
Главное
- Безопасный процесс обновления: проверка → staging → применение при перезапуске
- Разрешение модов через Modrinth
- Поддержка списков модов, папок-образцов и файлов
.mrpack - Обслуживание Fabric Loader / лаунчера или обслуживание Forge loader / shim / args-файла
- Опциональные проверки обновления версии Minecraft
- Поддержка самообновления MSU
- Режимы автоматизации для проверки, staging или установки
- Откат и проверка загрузки
- Команды
/msuтолько для операторов - Читаемый вывод статуса с понятными причинами, почему можно делать staging
✨ Набор функций
Безопасный процесс проверка → staging → применение
MSU не заменяет работающие jar'ы модов, пока сервер Minecraft запущен.
Вместо этого используется трёхшаговый процесс:
- Проверка — запрос к Modrinth и осмотр настроенного источника.
- Staging — скачивание или подготовка файлов замены в
.minecraft-server-updater/. - Применение — при следующем запуске wrapper'а файлы из staging устанавливаются до старта Fabric или Forge.
Так обновления остаются предсказуемыми и не трогают jar'ы, которые сервер использует прямо сейчас.
Проверки обновлений модов
MSU проверяет, есть ли у настроенных модов более новые совместимые сборки для той версии Minecraft, на которой сервер работает сейчас.
Поддерживаемые источники модов:
| Тип источника | Что делает |
|---|---|
mod-list | Отслеживает один slug, id или точное имя проекта Modrinth на строку в .minecraft-server-updater/mod-list. |
mods-folder | Использует jar'ы в папке-образце как управляемый набор модов. |
mrpack | Использует файл или URL пака Modrinth как управляемый источник. |
Записи в mod-list разрешаются только по прямому id/slug проекта Modrinth или по точному результату поиска — MSU не угадывает по неоднозначным именам.
Обслуживание сервера
MSU может проверять и готовить серверное обслуживание для текущей версии Minecraft.
- Fabric: Fabric Loader и
fabric-server-launch.jar, когда включено. Fabric API для запущенной версии обрабатывается проверками/staging модов. Ванильныйserver.jarменяется только при смене версии Minecraft. - Forge: последний Forge для запущенной версии Minecraft (shim, сгенерированный установщиком,
run.bat/run.shиlibraries/…/win_args.txtилиunix_args.txt). Ванильный jar лежит в `libraries/net/minecraft/server//, а не как корневойserver.jar`.
Обновления Minecraft
Когда включён server-upgrade, MSU может проверять готовность к:
- Последнему релизу Minecraft
- Конкретной целевой версии Minecraft
Обновления сервера отделены от обычных проверок модов. Проверки модов всегда нацелены на версию, на которой сервер реально работает. Проверки обновления сервера нацелены на настроенную версию обновления и могут включать:
- Jar сервера Minecraft (корневой
server.jarна Fabric или библиотечный jar Forge для этой версии) - Лаунчер / loader Fabric или вывод установщика Forge для целевой версии
- Fabric API для целевой версии на Fabric (показывается среди кандидатов обновления сервера, а не как обычное обновление из mod-list)
- Опциональный preflight модов для цели обновления, когда включён
- Совместимый с целью jar MSU, когда версия Minecraft меняется (файлы MSU для Fabric и Forge публикуются отдельно)
Самообновление
MSU может проверить, доступна ли на Modrinth более новая сборка MSU, и подготовить собственную замену к следующему перезапуску. При обновлении сервера до новой версии Minecraft может потребоваться подготовить вместе с ним совместимую с целевой версией сборку MSU. Используй файл Fabric на Fabric и файл Forge на Forge.
Совмещённая подготовка
/msu stage all может объединить безопасные выбранные цели в один план подготовки к перезапуску, позволяя применить обслуживание сервера, обновления модов, самообновления и совместимые обновления Minecraft за один перезапуск с одной резервной копией.
Если обновление сервера настроено, но небезопасно для подготовки, совмещённая подготовка останавливается на нём и не подготавливает другие цели, пока не будет решён вопрос с предварительной проверкой сервера.
📋 Понимание вывода проверки
MSU сообщает о безопасности отдельными строками, чтобы ты видел, разрешена ли подготовка и почему нет.
Строки о безопасности подготовки
| Строка | Значение |
|---|---|
Server safe to stage: true | Обслуживание или обновление сервера можно подготовить. |
Server safe to stage: false; … | Подготовка сервера заблокирована; причина указана в той же строке (например, отсутствует MSU или Fabric API на Modrinth для целевой версии, либо провалена предварительная проверка модов). |
Safe to stage mods: true/false | Разрешена ли команда /msu stage mods для запущенной версии Minecraft. |
Mods stage blocked: … | Показывается, когда подготовка модов заблокирована (например, no updates available, неизвестные jar-файлы, блокировки политикой или проблемы с точным набором mrpack). |
Mods ready for target: true/false | Готовы ли управляемые моды к настроенной целевой версии обновления сервера (только предварительная проверка; это не то же самое, что «обновления доступны сегодня»). |
Две версии Minecraft в одном check all
/msu check all может показать обе:
check server— использует целевую версию обновления (например, 26.2), когда обновление включеноcheck mods— использует запущенную версию (например, 26.1.2)
Это сделано намеренно, но легко понять неправильно. Пример:
- Раздел сервера:
Fabric API [missing → 0.152.1+26.2]означает, что обновление сервера установит Fabric API для целевой версии — а не то, что твоя проверка модов нашла обычное обновление мода. - На Forge раздел сервера указывает Minecraft / Forge (например,
26.2 / 65.1.3) вместо Fabric Loader / Fabric API. - Раздел модов:
0 updates availableозначает, что ничего не нужно подготавливать на версии, которую ты запускаешь сейчас, даже если запланировано обновление.
Что блокирует stage all
Совмещённая подготовка соблюдает безопасность по порядку:
- Если доступно обновление сервера, но
Server safe to stage: false,stage allостанавливается и не подготавливает моды или самообновление, пока не пройдёт предварительная проверка сервера. - Моды включаются, когда это безопасно для совмещённого плана — в том числе в некоторых случаях обновления, когда у модов нет обновлений на запущенной версии, но они всё ещё готовы к целевой.
- Самообновление подготавливается только когда это безопасно и ещё не выполнено как часть обязательной замены MSU при обновлении сервера.
Используй /msu status после подготовки, чтобы увидеть совмещённый план до перезапуска.
🧩 Поддерживаемые источники обновлений
MSU построен вокруг настроенного источника обновлений.
mod-list
Лучше всего подходит для серверов, где ты хочешь поддерживать в актуальном состоянии выбранный список проектов Modrinth.
Файл по умолчанию: .minecraft-server-updater/mod-list (один проект на строку; не массив JSON).
Пример:
fabric-api
lithium
c2me-fabricНа Forge перечисляй проекты Modrinth для загрузчика Forge так же (один slug, id или точное название на строку).
MSU находит эти проекты через Modrinth и проверяет совместимые сборки для запущенной версии Minecraft.
mods-folder
Лучше всего подходит для серверов, которые держат справочную папку с проверенными jar-файлами.
Папка по умолчанию: .minecraft-server-updater/mods-folder.
MSU читает эталонные jar-файлы, по возможности определяет проекты Modrinth и управляет обновлениями из этого набора.
mrpack
Лучше всего подходит для серверов на основе модпака Modrinth.
MSU может управлять проектами из файла .mrpack или по URL модпака Modrinth.
advanced.mrpackMode управляет поведением:
| Режим | Поведение |
|---|---|
exact (по умолчанию) | Подготавливает точные файлы и хеши пака; строгие проверки Minecraft / загрузчика. |
tracking | Рассматривает id проектов пака как управляемый список и подбирает последние совместимые сборки. |
🛡️ Модель безопасности
MSU спроектирован так, чтобы избегать рискованной замены на живую.
Он не подменяет запущенные jar-файлы на ходу
Сервер продолжает использовать текущие загруженные файлы до перезапуска.
Подготовленные обновления хранятся отдельно
Загрузки и файлы для замены сначала готовятся в staging-области MSU.
Обёртка применяет обновления до запуска
Когда сервер запускается через обёртку, MSU применяет подготовленный план до старта Fabric или Forge. Без --wrap (Fabric) или --wrap-forge (Forge) вы всё ещё можете проверять и готовить, но при перезапуске ничего не применится.
Поддержка отката
Когда подготовленный план применяется, MSU может записать метаданные резервной копии. Если проверка запуска не проходит, поддержка отката помогает восстановить предыдущие рабочие файлы.
Неизвестные/кастомные jar-файлы обрабатываются осторожно
Неизвестные jar-файлы могут быть показаны и удержаны согласно политике по локальному имени файла, но MSU не считает их управляемыми через Modrinth или проверенными на совместимость, если их не удаётся распознать.
Предварительная проверка обновления сервера
Когда включено, MSU проверяет, что управляемые моды (и необходимые зависимости) выглядят совместимыми с целевой версией Minecraft, прежде чем разрешить подготовку обновления сервера. На Fabric Fabric API для целевой версии обрабатывается как часть пути обновления сервера, когда это необходимо.
Деструктивное удаление неуправляемых модов
Когда включено для источников mod-list или mrpack, подготовка может показать неуправляемые .jar-файлы, которые будут удалены при применении. Применение блокируется, пока advanced.allowRemoveUnmanagedMods не станет true и на активном подготовленном плане не будет выполнена команда /msu stage confirm-destructive true.
Восстановление после запуска и карантин
После неудачного запуска автоматизация и ручная подготовка блокируются до /msu boot clear-failure. Если недействительный подготовленный план помещён в карантин во время применения, подтвердите его через /msu quarantine acknowledge перед следующей подготовкой.
⚙️ Команды
Корень команд по умолчанию:
/msuВсе команды /msu требуют прав оператора/администратора.
Дерево команд
/msu
├── status
├── reload
├── check
│ ├── mods | server | self | all
├── stage
│ ├── mods | server | self | all
│ ├── confirm-destructive true | false
│ └── cancel
├── rollback [backupId]
├── boot
│ ├── clear-failure
│ └── force-retry
│ ├── current
│ └── <fingerprintId>
├── quarantine
│ ├── acknowledge
│ └── delete confirm
└── config
├── reset [param]
└── set
├── source <type> [path]
├── automation <mode> [targets]
├── interval <minutes>
├── debug <on|off>
├── server-maintenance <on|off>
├── server-upgrade <token>
├── mrpack-mode <exact|tracking>
├── release-channel <channel> [mod]
├── held <on|off> <mod>
└── required <on|off> <mod>Краткая справка
| Команда | Назначение |
|---|---|
/msu status | Показать подготовленный план, информацию о среде выполнения, конфиг, автоматизацию, откат, предупреждения об опасных состояниях и состояние форматирования. |
/msu reload | Перезагрузить конфиг с диска и перезапустить автоматизацию. |
/msu check mods | Проверить настроенные моды на запущенную версию Minecraft. |
/msu check server | Проверить готовность к обслуживанию сервера и опциональному обновлению. |
/msu check self | Проверить наличие самообновления MSU. |
/msu check all | Запустить все настроенные проверки (разделы сервера, модов и self, где применимо). |
/msu stage mods | Подготовить обновления модов только для запущенной версии Minecraft. |
/msu stage server | Подготовить безопасное обслуживание или обновление сервера. |
/msu stage self | Подготовить замену jar-файла MSU. |
/msu stage all | Подготовить все безопасные выбранные цели в один объединённый план. |
/msu stage cancel | Очистить подготовленный план. |
/msu stage confirm-destructive true / false | Подтвердить или снять деструктивное удаление неуправляемых модов на активном подготовленном плане. |
/msu rollback | Восстановить самую свежую резервную копию применения. |
| `/msu rollback ` | Восстановить именованную резервную копию. |
/msu boot clear-failure | Очистить запись о неудачном запуске и серию неудачных запусков (не снимает удержание с модов). |
/msu boot force-retry current | Разрешить автоматизации повторить текущий отпечаток неудачного обновления. |
| `/msu boot force-retry ` | Разрешить автоматизации повторить конкретный отпечаток неудачного обновления. |
/msu quarantine acknowledge | Подтвердить помещённый в карантин недействительный подготовленный план, чтобы автоматизация могла продолжиться. |
/msu quarantine delete confirm | Удалить подтверждённые файлы доказательств из карантина. |
/msu config reset | Перезаписать конфиг задокументированными значениями по умолчанию. |
| `/msu config reset ` | Сбросить конкретный раздел конфига (например, source, release-channel). |
/msu config set … | Изменить источник, автоматизацию, интервал, debug, обслуживание сервера, обновление, режим mrpack, канал релизов, удерживаемые моды или обязательные моды. |
Долгие проверки могут писать в лог сервера; в RCON вы можете увидеть уведомление в фоне — полный вывод смотрите в logs/latest.log.
🤖 Автоматизация
MSU умеет запускать фоновые проверки по таймеру.
Режимы автоматизации:
| Режим | Поведение |
|---|---|
disabled | Никакой фоновой активности. |
check | Только отчёт; файлы никогда не подготавливаются. |
stage | Проверяет и подготавливает безопасные обновления; вы перезапускаете, когда готовы. |
install | Проверяет, подготавливает, затем останавливает сервер, чтобы обёртка применила обновления при перезапуске. |
Цели автоматизации:
| Цель | Назначение |
|---|---|
mods | Проверять или подготавливать обновления настроенных источников модов (для текущей версии MC). |
server | Проверять или подготавливать обслуживание сервера Fabric или Forge и опциональные обновления Minecraft. |
self | Проверять или подготавливать самообновление MSU. |
Пример:
/msu config set automation stage server mods self
/msu config set interval 360Используйте install только если сервер запускается через обёртку (--wrap или --wrap-forge) и вы готовы к тому, что MSU остановит сервер для установки при перезапуске.
Автоматизация блокируется, пока активна запись о неудачной загрузке, ожидает подтверждения помещённый в карантин некорректный план или не очищен и не перезапущен принудительно отпечаток неудачного обновления.
🚀 Быстрый старт
- Положите подходящий jar MSU в
mods/. Fabric: `minecraft-server-updater+fabric-.jar. Forge:minecraft-server-updater+forge-.jar`. Не смешивайте оба jar на одном сервере. Текущие имена не содержат версию Minecraft; список поддерживаемых версий игры смотрите в файле на Modrinth. - Настройте источник обновлений.
- Запустите проверку.
- Подготовьте доступные обновления.
- Запускайте из корня сервера с обёрткой для вашего загрузчика (замените стандартный
run.bat/run.shна Forge).
Обёртка для Fabric
Запускайте из каталога, где лежит fabric-server-launch.jar. Эти скрипты выбирают первый mods/minecraft-server-updater+fabric-*.jar (или mods/minecraft-server-updater.jar).
start.bat (Windows):
@echo off
REM set ram requirements here:
set MC_XMX=2G
set MC_XMS=2G
cd /d "%~dp0"
for %%F in ("mods\minecraft-server-updater+fabric-*.jar" "mods\minecraft-server-updater.jar") do (
java -jar "%%F" --wrap -- java -Xmx%MC_XMX% -Xms%MC_XMS% -jar fabric-server-launch.jar --nogui
goto :after
)
echo No Minecraft Server Updater jar found in mods\
pause
exit /b 1
:afterstart.sh (Linux):
#!/usr/bin/env sh
# set ram requirements here
MC_XMX="${MC_XMX:-2G}"
MC_XMS="${MC_XMS:-2G}"
cd "$(dirname "$0")" || exit 1
for jar in mods/minecraft-server-updater+fabric-*.jar mods/minecraft-server-updater.jar; do
if [ -f "$jar" ]; then
exec java -jar "$jar" --wrap -- java -Xmx"$MC_XMX" -Xms"$MC_XMS" -jar fabric-server-launch.jar --nogui
fi
done
echo "No Minecraft Server Updater jar found in mods/"
exit 1В Linux: chmod +x start.sh, затем ./start.sh.
Обёртка для Forge
Forge не использует --wrap -- java -jar …. --wrap-forge находит установленную координату в `libraries/net/minecraftforge/forge/-/и запускает так же, как стандартныйrun.bat`:
java @user_jvm_args.txt @libraries/net/minecraftforge/forge/<mc>-<forge>/win_args.txt --noguiПропишите RAM и другие флаги JVM в user_jvm_args.txt. Дополнительные аргументы после --wrap-forge (обычно --nogui) — это программные аргументы Minecraft. Не запускайте java -jar forge-*-shim.jar сами; оставшиеся jar установщика/шима в корне сервера — не то, что запускает обёртка.
start.bat (Windows):
@echo off
cd /d "%~dp0"
for %%F in ("mods\minecraft-server-updater+forge-*.jar" "mods\minecraft-server-updater.jar") do (
java -jar "%%F" --wrap-forge --nogui
goto :after
)
echo No Minecraft Server Updater jar found in mods\
pause
exit /b 1
:afterstart.sh (Linux):
#!/usr/bin/env sh
cd "$(dirname "$0")" || exit 1
for jar in mods/minecraft-server-updater+forge-*.jar mods/minecraft-server-updater.jar; do
if [ -f "$jar" ]; then
exec java -jar "$jar" --wrap-forge --nogui
fi
done
echo "No Minecraft Server Updater jar found in mods/"
exit 1После обновления Forge Minecraft/Forge обёртка находит новый win_args.txt / unix_args.txt при следующем запуске, так что запуск не остаётся привязанным к прежним координатам.
Пример ручного обновления
/msu check mods
/msu stage mods
/msu statusЗатем перезапустите через обёртку (start.bat, ./start.sh или строку java -jar mods/minecraft-server-updater+…jar … выше).
Пример обновления Minecraft
/msu config set server-upgrade latest
/msu check server
/msu stage all
/msu statusПрочитайте Server safe to stage перед подготовкой — если там false, устраните указанную причину (часто это публикация/установка совместимой с целевой версией сборки MSU на Modrinth) перед stage all.
📝 Пример конфигурации
Файл конфигурации:
config/minecraft-server-updater.jsonПример структуры:
{
"debug": false,
"mods": {
"sourceType": "mod-list",
"sourcePath": ".minecraft-server-updater/mod-list",
"releaseChannel": "any"
},
"server": {
"maintenance": true,
"upgrade": "off"
},
"selfUpdate": {
"enabled": true
},
"automation": {
"mode": "disabled",
"intervalMinutes": 360,
"targets": []
},
"advanced": {
"unknownModPolicy": "error",
"modUpgradePolicy": "warn",
"readinessMode": "all",
"mrpackMode": "exact",
"preflightBeforeServerUpgrade": true
}
}Частые команды конфигурации:
/msu config set source mod-list
/msu config set source mods-folder
/msu config set source mrpack modpack.mrpack
/msu config set server-maintenance on
/msu config set server-upgrade latest
/msu config set automation stage server mods self
/msu config set mrpack-mode exact
/msu config set debug onЕсли режим автоматизации — check, stage или install, но targets пуст, автоматизация работает вхолостую, пока вы не добавите цели.
🎨 Форматирование консоли
MSU поддерживает стилизованный вывод для своих строк серверного лога.
Продвинутая конфигурация:
"betterFabricConsoleFormatting": "auto"Доступные значения:
| Значение | Поведение |
|---|---|
auto | Стилизованный вывод MSU по умолчанию, когда цвет консоли разрешён. |
on | Принудительно стилизованный вывод MSU, когда цвет разрешён. |
off | Всегда обычный вывод серверного лога MSU. |
Если Better Fabric Console установлен отдельно на Fabric, MSU избегает двойного рендеринга и позволяет BFC обрабатывать форматирование Minecraft. Forge использует встроенный конвертер MSU. Обёрнутые серверы сохраняют цвет, когда обёртка задаёт -Dterminal.ansi=true.
❌ Чего MSU не делает
MSU намеренно консервативен.
Он не:
- Заменяет работающие jar-файлы, пока сервер запущен
- Считает неизвестные/кастомные jar-файлы проектами под управлением Modrinth
- Применяет подготовленные обновления без обёртки (
--wrapили--wrap-forge) - Волшебным образом проверяет совместимость для файлов не с Modrinth
- Использует нечёткий поиск Modrinth для определения настроенных названий проектов
- Смешивает «рутинные обновления модов на текущей версии» с «подготовкой обновления сервера» в одной проверке — читайте разделы сервера и модов отдельно
- Запускает Fabric MSU jar на Forge или Forge MSU jar на Fabric
Рекомендуемый порядок работы
Обычные обновления модов (та же версия Minecraft):
/msu check mods
/msu stage mods
/msu statusПерезапусти через обёртку, когда будешь готов.
Планируемое обновление Minecraft:
/msu check server
/msu check mods
/msu stage all
/msu statusУбедись, что Server safe to stage: true, и просмотри общий план перед перезапуском.
Отложенное размещение:
/msu config set automation stage mods
/msu config set interval 360Установка без участия человека:
/msu config set automation install server mods selfИспользуй режим install только если сервер запускается через обёртку и ты не против, чтобы MSU остановил сервер для установки с перезапуском.
Зачем нужен MSU?
MSU даёт владельцам серверов на Fabric и Forge управляемый порядок обновления:
- Видно, что нужно обновить, ещё до любых изменений
- Понятные причины, когда размещение заблокировано
- Файлы размещаются безопасно, без затрагивания рабочих jar
- Обновления применяются до запуска через обёртку
- Файлы сервера и моды под управлением Modrinth остаются синхронизированными
- Рутинные проверки автоматизируются
- Есть откат на случай, если применённое обновление что-то сломало
Частые вопросы
Как установить MSU?
Установите Fabric под свою версию Minecraft, скачайте MSU под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть MSU?
У MSU есть сборки для Minecraft 26.1–26.3.
Нужен ли MSU на сервере?
Ставится только на сервер; игрокам ставить не нужно