Чтобы запустить модпак как сервер, начните с серверного пака, если он есть, - большинство крупных паков на CurseForge публикуют его отдельной загрузкой - и загрузите его вместе с подходящим загрузчиком и версией Java. Если серверного пака нет, папку сервера собирают из манифеста пака: экспорт CurseForge перечисляет моды по ID проекта и файла в manifest.json, а .mrpack от Modrinth перечисляет ссылки на загрузку в modrinth.index.json, отмечая, к какой стороне относится каждый мод. В любом случае оставшаяся работа одинакова: поставить нужный загрузчик, убрать клиентские моды, скопировать переопределения конфигов пака, выделить достаточно памяти и убедиться, что у игроков ровно та же версия пака. Ниже разобраны оба формата и все места, где процесс ломается.
Что такое модпак на самом деле#
Модпак - это три вещи в одной упаковке: загрузчик определённой версии (Forge, NeoForge, Fabric или Quilt), список модов определённых версий и набор переопределений - конфиги, скрипты, настройки по умолчанию, иногда ресурспаки, - которые превращают кучу модов в продуманный игровой опыт.
Клиентский пак, который вы ставите в лаунчере, включает все три части плюс всё, что видит игрок: шейдеры, миникарты, меню, звуки. Серверу нужны загрузчик, моды с игровой логикой и переопределения, влияющие на сервер. Клиентских частей у него быть не должно, а всё остальное должно быть точно тех же версий.
Отсюда три пути к серверу в порядке возрастания усилий:
- Скачать серверный пак, который сделал автор. Быстрее и надёжнее всего, потому что автор уже убрал клиентские моды.
- Собрать его из файла пака - экспорта CurseForge или
.mrpackот Modrinth - с помощью инструмента или вручную. - Собрать собственный пак из отдельных модов. Об этом рассказано в статье сервер с модами без крашей; эта статья - об опубликованных паках.
Прежде всего найдите на странице пака три факта и запишите их: версию Minecraft, загрузчик и его точную версию, а также версию пака. От них зависит каждый шаг ниже.
CurseForge: серверные паки и manifest.json#
На CurseForge вкладка Files пака перечисляет все релизы. Крупные паки обычно прикрепляют к каждому релизу серверный пак как дополнительный файл. Это zip-архив, отдельный от клиентской загрузки, и обычно в нём есть:
mods/с уже удалёнными клиентскими модамиconfig/, а часто иdefaultconfigs/,kubejs/илиscripts/- Скрипт запуска, а иногда README с рекомендуемым объёмом памяти и версией Java
Серверные паки различаются в одном важном отношении: в одних загрузчик уже установлен, libraries/ и скрипты запуска на месте; в других есть скрипт, который запускает установщик загрузчика при первом старте и скачивает файлы из интернета. Откройте скрипт запуска, прежде чем выполнять его, чтобы понимать, какой у вас вариант. Скрипты запуска и user_jvm_args.txt, которые используют паки линейки Forge, объясняются в статье установка сервера NeoForge.
Если у релиза нет серверного пака, у вас есть клиентский экспорт. Его ключевой файл - manifest.json:
{ "minecraft": { "version": "1.20.1", "modLoaders": [{ "id": "forge-47.3.0", "primary": true }] }, "manifestType": "minecraftModpack", "manifestVersion": 1, "name": "Example Pack", "version": "2.4.1", "files": [ { "projectID": 123456, "fileID": 4567890, "required": true } ], "overrides": "overrides"}Сами моды в манифесте не лежат. В нём ID проектов и файлов CurseForge, а папка overrides рядом содержит конфиги и скрипты, которые копируются поверх. Чтобы превратить ID в jar-файлы, нужно запросить каждый файл через API CurseForge - именно это делает приложение CurseForge при установке пака.
Есть подвох, характерный именно для CurseForge: авторы модов могут запретить распространение через сторонние сервисы. Инструменты, которые собирают папку сервера через API, не могут скачать такие моды автоматически и выведут их список, чтобы вы скачали их вручную со страницы каждого мода. На любом крупном паке ждите нескольких таких.
Modrinth: формат .mrpack#
Пак Modrinth - это файл .mrpack, то есть zip-архив с другим расширением. Внутри лежат modrinth.index.json и до трёх папок переопределений.
{ "formatVersion": 1, "game": "minecraft", "versionId": "2.4.1", "name": "Example Pack", "files": [ { "path": "mods/example-mod-1.3.0.jar", "hashes": { "sha1": "...", "sha512": "..." }, "env": { "client": "required", "server": "unsupported" }, "downloads": ["https://cdn.modrinth.com/data/..."], "fileSize": 215040 } ], "dependencies": { "minecraft": "1.21.1", "fabric-loader": "0.16.5" }}Для сервера в этом файле важны три части:
- `dependencies` называет версию Minecraft и загрузчик:
fabric-loader,quilt-loader,forgeилиneoforge, каждый со своей версией. Ставьте ровно это. - `env` говорит, является ли каждый файл
required,optionalилиunsupportedна клиенте и на сервере. Файл с"server": "unsupported"- клиентский, и на сервере ему не место. Это заявление автора пака, так что оно точно настолько, насколько автор его сделал, но это гораздо лучше, чем гадать. - `downloads` - прямые ссылки, а
hashesпозволяют проверить результат.
Папки переопределений применяются после загрузки файлов: overrides/ для обеих сторон, server-overrides/ только для сервера и client-overrides/ только для клиента. Скопируйте в папку сервера overrides/, а затем server-overrides/, именно в таком порядке, и не трогайте client-overrides/.
| Папка в .mrpack | Копировать на сервер? |
|---|---|
overrides/ | Да, первой |
server-overrides/ | Да, после overrides/ |
client-overrides/ | Нет |
Инструменты, которые собирают папку сервера#
Манифест можно разобрать вручную - открыть каждую ссылку, скачать каждый jar-файл, - и для пака на двадцать модов это нормально. Для двухсот модов используйте инструмент, который читает индекс и собирает папку:
- ServerPackCreator собирает серверный пак из пака CurseForge или Modrinth, в том числе удаляя список известных клиентских модов. У него есть графический интерфейс и режим командной строки.
- mrpack-install читает
.mrpack, скачивает серверные файлы и ставит загрузчик. Это один исполняемый файл, созданный ровно для этой задачи. - packwiz - собственный формат паков, который используют некоторые авторы; его установщик-загрузчик может обновлять сервер из опубликованного пака при каждом запуске:
java -jar packwiz-installer-bootstrap.jar -g -s server https://example.com/pack.toml. - Prism Launcher импортирует паки и с CurseForge, и с Modrinth на компьютере - удобный способ получить все jar-файлы на свою машину, прежде чем их сортировать.
Запускайте эти инструменты на своём компьютере, проверяйте результат и загружайте его на сервер. Инструмент, который молча пропустил мод, не сумев его скачать, или оставил мод, который должен был убрать, проще поймать локально, чем в логе сервера.
В RE:NODE нет установщика модпаков и нет интеграции ни с одним сайтом модов: линейка Minecraft работает на Paper с подходящей версией Java, а модпак вы ставите сами. Упакуйте готовую папку сервера в zip, загрузите её через файловый менеджер и распакуйте на месте или скопируйте по SFTP. Данные для подключения - в статье SFTP и файловый менеджер. Белого списка разрешённых модов нет, так что ничего из пака не блокируется.
Удаление клиентских модов#
Этот шаг даёт большинство крашей при первом запуске. Клиентские моды делятся на узнаваемые группы:
| Категория | Примеры | Почему ломают сервер |
|---|---|---|
| Рендеры и производительность | Sodium, Embeddium, OptiFine, Entity Culling | Обращаются к классам рендеринга, которых нет |
| Шейдеры | Iris, Oculus | То же самое |
| Интерфейс и HUD | Миникарты, которые только рисуют, моды подсказок и меню | Загружают клиентские экраны |
| Звук | Моды звуков и музыки | Загружают звуковой движок |
Загрузчики обращаются с ними по-разному. Fabric читает заявленное окружение каждого мода и на выделенном сервере тихо пропускает моды, помеченные как клиентские, так что аккуратно сделанный клиентский мод вреда не наносит. Краши на Fabric вызывают моды, которые объявляют себя для обеих сторон, но на самом деле такими не являются, и ошибка выглядит как Cannot load class ... in environment type SERVER. Forge и NeoForge менее снисходительны: клиентский мод часто роняет запуск с Attempted to load class net/minecraft/client/... for invalid dist DEDICATED_SERVER.
В обоих случаях стектрейс называет мод. Удалите его из папки mods/ сервера, запустите снова и повторяйте, пока сервер не дойдёт до Done. Ведите список удалённого: он снова понадобится при следующем обновлении пака.
Загрузчик, Java и команда запуска#
Когда моды разобраны, серверу нужны правильный загрузчик и правильная Java:
- Версия загрузчика из пака, точно. Не последняя. Пак, собранный на NeoForge
21.1.77, тестировался на этой сборке; более новая обычно подходит, но иногда нет. - Java под версию Minecraft. 1.20.4 и старше требуют Java 17 (1.16.5 и старше - Java 8), 1.20.5 и новее - Java 21. Таблица есть в статье флаги JVM и версии Java.
- Одно место для памяти. Серверные паки поставляются со скриптами запуска, которые задают память; панели часто задают её тоже. Используйте что-то одно. Если
-Xmxпередают оба, побеждает последний в командной строке.
На панели проверьте, что именно выполняет команда запуска. Паки Fabric запускаются из одного jar-файла лаунчера. Паки Forge и NeoForge начиная с 1.17 запускаются из файлов аргументов, а не из одного jar-файла, и эталоном того, какой должна быть команда, служит собственный скрипт пака.
Память, первый запуск и предгенерация#
Модпаки очень разные, поэтому берите рекомендацию автора пака за отправную точку, а цифры ниже - для проверки на здравый смысл:
| Размер пака | Типичная куча | Примечания |
|---|---|---|
| Лёгкий, 50-100 модов | 4-6 ГБ | Приключенческие паки и паки удобств |
| Средний, 100-200 модов | 6-8 ГБ | Большинство технических и магических паков |
| Тяжёлый, 250+ модов | 8-12 ГБ | Паки «всё в одном», крупная генерация мира |
Оставляйте место между кучей и лимитом памяти тарифа для metaspace и нативной памяти: серверы с модами загружают очень много классов. В RE:NODE тарифы Minecraft - от 2 до 14 ГБ, и контейнер, достигший лимита, останавливается и чисто перезапускается, а не уходит в swap: лог просто обрывается, без краш-репорта. Если это происходит во время игры, куча слишком близко к лимиту или тариф слишком мал. Подробно о размерах - в статье сколько RAM нужно серверу Minecraft.
Первый запуск большого пака может занять несколько минут, пока инициализируется каждый мод и генерируется мир. Ждите Done в консоли, а не того, что панель назовёт сервер онлайн. Затем сгенерируйте мир до прихода игроков: моды генерации мира делают генерацию чанков гораздо дороже, а исследующие игроки - обычный источник лагов на серверах с модами. Chunky работает на любом загрузчике, а порядок действий есть в статье граница мира и предгенерация.
Как держать игроков и сервер в одной версии#
Сервер с модами работает, только если у каждого игрока та же версия пака, что и на сервере. Практические договорённости:
- Публикуйте точный пак и версию в Discord или на сайте: «Example Pack 2.4.1 на CurseForge» или ссылку на версию в Modrinth.
- Не добавляйте моды, которых нет в паке, если только они не серверные (производительность, бэкапы, права, мосты чата). Всё, что добавляет контент, заставляет каждого игрока ставить мод вручную, и кто-нибудь обязательно ошибётся.
- Если без доработки не обойтись, опубликуйте собственный форк пака, чтобы игроки ставили что-то одно. И Modrinth, и CurseForge позволяют загрузить пак; packwiz создан ровно для этого.
Когда пак обновляется:
- Прочитайте список изменений на предмет удалённых модов. Удаление контентного мода стирает его блоки и предметы из мира.
- Снимите бэкап мира,
mods/,config/иdefaultconfigs/вместе. Восстановить мир рядом с не теми модами - не значит восстановить. В RE:NODE этот бэкап можно заблокировать, чтобы ротация не удалила его, пока вы тестируете. - Замените
mods/целиком, а не сливайте, чтобы старые версии не остались рядом с новыми. - Примените новые переопределения, но сохраните свои изменения - сравнивайте
config/, а не перезаписывайте вслепую. - Запустите сервер, когда никого нет онлайн, прочитайте лог с начала и скажите игрокам обновиться, прежде чем подключаться.
План на случай, если шаг 5 пойдёт не так, - в статье что делать, когда обновление мода всё сломало.
Разбор типичных сбоев#
«Mismatched mod channel list» или «missing mods» при подключении. Клиентский и серверный паки различаются. Экран перечисляет, какие моды есть на одной стороне и нет на другой. Обычно у игрока старая версия пака или вы убрали мод, который не был клиентским.
Сервер запускается, но в мире нет возможностей пака. Переопределения не скопированы или скопированы не туда. Проверьте, что config/, defaultconfigs/ и папка kubejs/, если она есть, лежат рядом с mods/, а не внутри другой папки.
Изменённые конфиги ни на что не влияют. Это серверный конфиг для конкретного мира, а вы отредактировали шаблон в defaultconfigs/. Рабочая копия лежит в world/serverconfig/.
После сборки из манифеста не хватает мода. На CurseForge автор запретил распространение через сторонние сервисы. Скачайте мод вручную с его страницы, сверив ID файла с manifest.json.
Сервер останавливается без ошибки. Память. Уменьшите кучу, чтобы она оставляла место под лимитом, или перейдите на тариф выше.
FAQ#
Можно ли просто загрузить на сервер клиентский модпак?
Можно, и на Fabric он часто запустится, потому что Fabric пропускает моды, помеченные как клиентские. На Forge и NeoForge он обычно падает на моде рендеринга или шейдеров. В любом случае папка сервера, собранная из серверного пака или манифеста, чище и расходует меньше памяти.
Где найти серверный пак на CurseForge?
На вкладке Files пака откройте нужный релиз и поищите серверный пак среди его дополнительных файлов. Он есть не у каждого пака, и версия серверного пака должна совпадать с клиентской версией, которую ставят игроки.
Что делать с файлом .mrpack?
Переименуйте его в .zip, чтобы заглянуть внутрь, или используйте инструмент вроде mrpack-install, который читает modrinth.index.json, скачивает серверные файлы, ставит загрузчик и применяет overrides/ и server-overrides/.
Могут ли игроки зайти с другой версией пака?
Обычно нет. Любое различие в контентных модах приводит к кику или рассинхрону. Мелкие патч-релизы иногда меняют только конфиги и всё равно подключаются, но надёжное правило - сервер и все игроки на одной версии пака.
Нужна ли серверу модпака база данных?
Самому паку нет: моды хранят данные в папке мира. Некоторые серверные моды для прав, логирования или веб-карт могут использовать внешнюю базу данных, и тарифы Minecraft в RE:NODE включают один слот базы данных, если он вам нужен.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.