Чтобы установить сервер NeoForge, скачайте установщик NeoForge для своей версии Minecraft, запустите его с --installServer в пустой папке, укажите настройки памяти в user_jvm_args.txt, примите EULA и запускайте сервер через run.sh (или run.bat в Windows), а не через java -jar. Моды кладутся в mods/, их настройки появляются в config/ и в папке serverconfig/ мира после первого запуска, и у каждого игрока должны быть те же моды тех же версий. Многих сбивает с толку то, что у современного сервера NeoForge нет единого jar-файла для запуска - лаунчером служит скрипт запуска, - а это очень важно на хостинговых панелях, построенных вокруг java -jar.
NeoForge, Forge и какая версия вам нужна#
NeoForge - форк Forge, отделившийся от него в 2023 году. Для Minecraft 1.20.1 он выпускал сборки, почти идентичные Forge, под старой нумерацией Forge. Начиная с 1.20.2 это отдельный загрузчик со своей нумерацией версий, и большинство новых модпаков линейки Forge ориентированы на NeoForge, а не на Forge.
Номер версии говорит, под какую версию Minecraft она собрана:
| Minecraft | Версия NeoForge | Java |
|---|---|---|
| 1.20.1 | 47.1.x (нумерация в стиле Forge) | 17 |
| 1.20.2 | 20.2.x | 17 |
| 1.20.4 | 20.4.x | 17 |
| 1.21 | 21.0.x | 21 |
| 1.21.1 | 21.1.x | 21 |
| 1.21.4 | 21.4.x | 21 |
Начиная с 1.20.2 закономерность такая: первые два числа NeoForge - это второе и третье числа версии Minecraft, а последнее - номер сборки. На сайте NeoForge перечислены актуальные сборки для каждой версии; используйте ту, которую называет ваш модпак, или последнюю стабильную сборку для этой версии Minecraft, если собираете набор сами.
Два факта о совместимости избавят от большой путаницы:
- Моды Forge не загружаются на NeoForge начиная с 1.20.2, если автор их не пересобрал. На 1.20.1 большинство модов Forge работает на NeoForge, поэтому многие паки для 1.20.1 до сих пор используют Forge.
- Начиная с 1.20.5 моды NeoForge описывают себя в `META-INF/neoforge.mods.toml`, а не в
mods.tomlот Forge. Мод Forge, положенный на сервер NeoForge 1.21, вообще не распознаётся как мод, и это может выглядеть так, будто мод просто игнорируется.
Столбец Java не обсуждается. Сервер NeoForge 1.21 на Java 17 сразу падает с UnsupportedClassVersionError; пак для 1.20.1 на гораздо более новой Java может падать более странными способами. Полная таблица и соответствующий ей размер кучи - в статье флаги JVM и версии Java.
Запуск установщика#
Установщик - небольшой jar-файл, который скачивает ванильный сервер, библиотеки NeoForge и маппинги и записывает файлы запуска. Ему нужны Java и подключение к интернету, и запускать его следует в пустой папке.
$ mkdir neoforge-server && cd neoforge-server$ curl -O https://maven.neoforged.net/releases/net/neoforged/neoforge/21.1.77/neoforge-21.1.77-installer.jar$ java -jar neoforge-21.1.77-installer.jar --installServerВерсия в этих строках - пример. Когда установка закончится, в папке будет:
| Путь | Что это |
|---|---|
libraries/ | NeoForge, пропатченная игра и все нужные ей библиотеки |
run.sh, run.bat | Скрипты запуска для Linux и Windows |
user_jvm_args.txt | Сюда идут ваши параметры JVM - память и флаги |
neoforge-...-installer.jar.log | Лог установщика, пригодится, если что-то пошло не так |
После успешной установки jar-файл установщика и его лог можно удалить. Не удаляйте и не переставляйте ничего в libraries/: скрипт запуска ссылается на файл внутри неё по пути.
run.sh и user_jvm_args.txt#
Откройте run.sh, и вы увидите примерно следующее:
#!/usr/bin/env sh# Add custom JVM arguments to user_jvm_args.txt# Add custom program arguments (such as nogui) before "$@"java @user_jvm_args.txt @libraries/net/neoforged/neoforge/21.1.77/unix_args.txt "$@"Синтаксис @file говорит Java читать аргументы из файла. user_jvm_args.txt - ваш; unix_args.txt (или win_args.txt) внутри libraries/ принадлежит NeoForge и содержит путь к модулям, главный класс и всё остальное, что нужно загрузчику. Никогда не редактируйте второй файл: он генерируется заново при обновлении NeoForge, а ошибка в нём даёт сообщения об отсутствующих модулях, которые очень трудно разобрать.
Память и флаги указываются в user_jvm_args.txt, по одному или несколько на строку. Установщик создаёт его полным комментариев, а строка памяти в нём закомментирована:
# Xmx and Xms set the maximum and minimum RAM usage.-Xms6G-Xmx6G-XX:+UseG1GC-XX:+ParallelRefProcEnabled-XX:MaxGCPauseMillis=200Задавайте -Xmx ниже лимита памяти машины или контейнера, а не равным ему. Java использует память и вне кучи - metaspace, стеки потоков, нативные буферы, - и серверы с модами расходуют её больше, чем vanilla, из-за огромного числа классов. Для контейнера с лимитом 8 ГБ куча примерно в 6.5 ГБ - разумный потолок. Если куча заполнит весь контейнер, процесс будет убит извне вообще без краш-репорта.
Добавьте nogui как аргумент программы, чтобы сервер не пытался открыть окно состояния: либо передайте его скрипту (./run.sh nogui), либо допишите перед "$@" в самом скрипте.
Первый запуск#
Первый запуск - самый медленный за всю жизнь сервера NeoForge, и он делает три вещи, о которых нужно знать.
- Он останавливается на EULA. Сервер создаёт
eula.txtсeula=falseи завершается. Измените значение наeula=trueи запустите снова. Эта строка - ваше согласие с EULA Mojang, и именно поэтому ни один установщик не может выставить её за вас, не спросив. - Он генерирует конфиги. Каждый мод записывает свои настройки по умолчанию. Общие и стартовые настройки попадают в
config/; настройки, которыми сервер управляет для конкретного мира, хранятся в папке самого мира, вworld/serverconfig/, и создаются вместе с миром. - Он генерирует мир. Мир с модами генерации создаётся гораздо медленнее ванильного. Генерация чанков спавна на большом паке может занять несколько минут.
[main/INFO] [net.neoforged.fml.loading.moddiscovery...]: Found 142 mods[Server thread/INFO] [minecraft/MinecraftServer]: Preparing level "world"[Server thread/INFO] [minecraft/MinecraftServer]: Done (94.512s)! For help, type "help"Важна строка Done. Пока она не появилась, сервер всё ещё загружается, сколько бы это ни длилось.
Откуда берутся конфиги для каждого мира, решают две папки:
- `defaultconfigs/` в корне сервера содержит шаблоны. Когда создаётся новый мир, любой найденный здесь серверный конфиг копируется в
serverconfig/мира вместо встроенного значения мода по умолчанию. Модпаки используют это, чтобы поставлять свои настроенные параметры. - `world/serverconfig/` содержит рабочие копии для этого мира. Для существующего мира редактируйте их, остановив сервер. Правка
defaultconfigs/ничего не меняет в уже существующем мире.
Именно это разделение порождает классическую жалобу «я изменил конфиг, и ничего не произошло»: отредактирован был шаблон, а мир уже использовал свою копию.
Моды и что должно совпадать на клиенте#
Моды кладутся в mods/ в виде jar-файлов. NeoForge читает их все при запуске, проверяет объявленные зависимости и отказывается стартовать, если какой-то не хватает или версия вне диапазона, называя мод и версию, которую он ожидал. Обычно это сообщение понятно; прочитайте его, прежде чем искать в интернете.
Второе правило касается игроков. Любой мод, который добавляет блоки, предметы, сущности, измерения или рецепты, должен быть установлен и на клиенте, той же версии. Игрокам лучше получать пак через лаунчер, который ставит ровно то, что есть на сервере, - CurseForge, Modrinth, Prism Launcher или пак, который предоставляет сам сервер. Как превратить опубликованный пак в сервер, рассказано в статье серверы модпаков с CurseForge и Modrinth.
Моды, которых не должно быть на сервере, - клиентские: рендеры, загрузчики шейдеров, миникарты, которые только рисуют, моды HUD и меню. На NeoForge клиентский мод на сервере обычно роняет запуск с сообщением вроде такого:
java.lang.RuntimeException: Attempted to load class net/minecraft/client/...for invalid dist DEDICATED_SERVERСтектрейс под этой строкой называет виновный мод. Удалите его из папки mods/ сервера, а не из паков игроков. Более подробное руководство по чтению таких отчётов - в статье сервер с модами без крашей.
Запуск на хостинговой панели#
На собственной машине с Linux вы запускаете ./run.sh nogui внутри screen, tmux или сервиса systemd - и готово. С хостинговыми панелями иначе. Большинство запускает сервер командой, которая ожидает один jar-файл, - что-то вроде java -Xmx... -jar server.jar, - а у современного сервера NeoForge такого jar-файла нет.
Есть два чистых пути:
- Команда запуска, которая вызывает файлы аргументов. Если команду запуска можно задать как
java @user_jvm_args.txt @libraries/net/neoforged/neoforge/<version>/unix_args.txt nogui, сервер запустится ровно так, как его запустил быrun.sh. Не забывайте менять версию в этом пути при каждом обновлении NeoForge. - Jar-файл стартера сервера. Свежие установщики NeoForge умеют класть небольшой jar-файл стартера для хостингов, которые могут выполнять только
java -jar; он читает те же файлы аргументов и запускает сервер за вас. Запустите установщик с--help, чтобы узнать, есть ли такая опция в вашей версии и как она называется.
Что бы вы ни выбрали, задавайте память ровно в одном месте. Если панель передаёт свой -Xmx, а в user_jvm_args.txt есть другой, Java возьмёт тот, что идёт в командной строке последним, и вы потратите вечер, выясняя, почему у кучи не тот размер.
В RE:NODE линейка Minecraft устанавливается с Paper и подходящей версией Java, поэтому NeoForge вы настраиваете сами: загрузите установленную папку архивом через файловый менеджер (он распаковывает архивы на месте) или по SFTP, проверьте версию Java и jar-файл во вкладке Startup и запустите. Белого списка разрешённых модов нет, как нет и установщика модпаков в один клик. Плюс самостоятельной установки в том, что вы точно знаете, какая сборка NeoForge и какие моды стоят на сервере.
Настройки, которые стоит изменить на сервере с модами#
Несколько ванильных настроек в server.properties на NeoForge важнее, чем на Paper:
view-distance=8simulation-distance=6max-tick-time=60000allow-flight=trueПочему каждая из них:
- `view-distance` и `simulation-distance` умножают число загруженных чанков, а чанки с модами тяжелее. Начните ниже, чем на vanilla, и поднимайте, только если у MSPT есть запас.
- `max-tick-time` - это watchdog: если один тик длится дольше указанного числа миллисекунд, сервер намеренно роняет сам себя. По умолчанию
60000. Большие паки иногда срабатывают на нём во время генерации мира или крупного сохранения.-1полностью отключает watchdog, и тогда настоящие зависания остаются незамеченными; лучше поднять значение, чем отключать. - `allow-flight=true` обычное дело на серверах с модами, потому что джетпаки, кольца полёта и предметы творческого полёта для ванильной проверки на полёт выглядят точь-в-точь как полёт, и она кикает игрока.
Сгенерируйте мир заранее, до того как в нём начнут играть. Моды генерации мира делают генерацию чанков в разы дороже, а генерация ландшафта во время игры - источник большинства «случайных» скачков лагов на сервере с модами. Chunky работает на NeoForge; порядок действий - в статье граница мира и предгенерация.
Обновление NeoForge и поддержание работы#
Чтобы обновить NeoForge в пределах той же версии Minecraft, запустите более новый установщик в той же папке. Он запишет новые библиотеки и обновит скрипты; mods/, config/, мир и user_jvm_args.txt останутся нетронутыми. Если команда запуска в панели указывает на путь с версией внутри libraries/, обновите и этот путь.
Безопасный порядок:
- Остановите сервер и снимите бэкап мира,
mods/,config/иdefaultconfigs/вместе. Мир, восстановленный рядом с модами не тех версий, - это не восстановление. - Запишите версии, на которых вы сейчас: Minecraft, NeoForge, пак и Java.
- Установите новую сборку NeoForge, запустите сервер, когда никого нет онлайн, и прочитайте лог с самого начала.
- Зайдите и проверьте места, где люди строились, прежде чем объявлять об обновлении.
Смена версии Minecraft - совсем другая работа: каждый мод нужно заменить его сборкой для новой версии, и многих ещё не будет. Относитесь к этому как к новому серверу, которому достался мир, и сначала прочитайте статью обновление версии Minecraft.
Слоты для бэкапов входят в каждый тариф Minecraft от RE:NODE, хранятся вне машины, которую защищают, и один из них можно заблокировать от ротации, пока вы тестируете обновление. Восстановление - одна кнопка, и это как раз подходящее количество усилий, чтобы откатить неудачное обновление модов.
FAQ#
Почему после установки NeoForge нет jar-файла сервера?
С тех пор как загрузчики линейки Forge перешли на систему модулей, установщик создаёт дерево libraries/ и скрипты запуска вместо одного исполняемого jar-файла. Скрипты передают Java два файла аргументов, и именно это запускает сервер. Используйте скрипты, эквивалентную команду запуска или jar-файл стартера сервера.
Можно ли ставить моды Forge на сервер NeoForge?
На 1.20.1 в основном да, потому что NeoForge для этой версии очень близок к Forge. Начиная с 1.20.2 - нет: загрузчики разошлись, и моду нужна сборка под NeoForge. Начиная с 1.20.5 NeoForge даже не распознаёт мод Forge как мод.
Сколько памяти нужно серверу NeoForge?
Лёгкому паку на 50-100 модов для небольшой компании обычно хватает 4-6 ГБ кучи. Большим паку «всё в одном» на несколько сотен модов часто нужно 8 ГБ и больше. Подробности - в статье сколько RAM нужно серверу Minecraft; всегда оставляйте запас между кучей и лимитом контейнера.
Могут ли игроки с vanilla зайти на сервер NeoForge?
Только если каждый мод на сервере серверный и ничего не требует на клиенте. Как только мод добавляет контент, ванильным клиентам отказывают. На практике на сервере NeoForge играют с соответствующим модпаком.
Где менять настройки мода для моего мира?
В world/serverconfig/ для настроек, которыми управляет сервер, и в config/ для общих - при остановленном сервере. Файлы в defaultconfigs/ применяются только при создании нового мира.




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