Minecraft Modpack Server
Хостинг модифицированных серверов Minecraft (CurseForge, Modrinth).
Метаданные навыка
| Источник | Опциональный (устанавливается по запросу) — установите командой hermes skills install official/gaming/minecraft-modpack-server |
| Путь | optional-skills/gaming/minecraft-modpack-server |
| Версия | 1.0.0 |
| Автор | Teknium (teknium1), Hermes Agent |
| Лицензия | MIT |
| Платформы | linux, macos |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое Hermes Agent загружает при его активации. Именно эти инструкции видит агент, когда навык задействован.
Настройка Minecraft Modpack Server
Когда использовать
- Пользователь хочет поднять модифицированный сервер Minecraft из zip-архива серверного пака
- Нужна помощь с настройкой сервера NeoForge/Forge
- Вопросы об оптимизации производительности сервера Minecraft или настройке бэкапов
Сначала уточните предпочтения пользователя
Перед началом установки спросите:
- Название сервера / MOTD — что должно отображаться в списке серверов?
- Сид — конкретный сид или случайный?
- Сложность — peaceful / easy / normal / hard?
- Игровой режим — survival / creative / adventure?
- Online mode — true (авторизация Mojang, лицензионные аккаунты) или false (подходит для LAN/пиратских клиентов)?
- Количество игроков — сколько планируется одновременно? (влияет на выделение RAM и дальность прорисовки)
- Объём RAM — задать вручную или агент рассчитает исходя из числа модов и доступной памяти?
- View distance / simulation distance — задать вручную или агент подберёт по числу игроков и железу?
- PvP — включить или выключить?
- Вайтлист — открытый сервер или только по списку?
- Бэкапы — нужны автоматические? Как часто?
Если пользователю всё равно — используйте разумные значения по умолчанию, но всегда уточняйте перед генерацией конфига.
Шаги
1. Скачать и изучить пак
mkdir -p ~/minecraft-server
cd ~/minecraft-server
wget -O serverpack.zip "<URL>"
unzip -o serverpack.zip -d server
ls server/
Ищите: startserver.sh, установочный jar (neoforge/forge), user_jvm_args.txt, папку mods/.
По скрипту определите: тип загрузчика модов, версию и требуемую версию Java.
2. Установить Java
- Minecraft 1.21+ → Java 21:
sudo apt install openjdk-21-jre-headless - Minecraft 1.18–1.20 → Java 17:
sudo apt install openjdk-17-jre-headless - Minecraft 1.16 и ниже → Java 8:
sudo apt install openjdk-8-jre-headless - Проверка:
java -version
3. Установить загрузчик модов
В большинстве серверных паков есть установочный скрипт. Переменная вида INSTALL_ONLY позволяет выполнить только установку, без запуска сервера:
cd ~/minecraft-server/server
ATM10_INSTALL_ONLY=true bash startserver.sh
# Or for generic Forge packs:
# java -jar forge-*-installer.jar --installServer
Скрипт скачает библиотеки, пропатчит серверный jar и т. д.
4. Принять EULA
echo "eula=true" > ~/minecraft-server/server/eula.txt
5. Настроить server.properties
Основные параметры для модпака/LAN:
motd=\u00a7b\u00a7lServer Name \u00a7r\u00a78| \u00a7aModpack Name
server-port=25565
online-mode=true # false for LAN without Mojang auth
enforce-secure-profile=true # match online-mode
difficulty=hard # most modpacks balance around hard
allow-flight=true # REQUIRED for modded (flying mounts/items)
spawn-protection=0 # let everyone build at spawn
max-tick-time=180000 # modded needs longer tick timeout
enable-command-block=true
Параметры производительности (подбираются под железо):
# 2 players, beefy machine:
view-distance=16
simulation-distance=10
# 4-6 players, moderate machine:
view-distance=10
simulation-distance=6
# 8+ players or weaker hardware:
view-distance=8
simulation-distance=4
6. Настроить JVM-аргументы (user_jvm_args.txt)
Объём RAM подбирается под количество игроков и модов. Ориентир для модпаков:
- 100–200 модов: 6–12 ГБ
- 200–350+ модов: 12–24 ГБ
- Оставляйте не менее 8 ГБ свободными для ОС и других задач
-Xms12G
-Xmx24G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
7. Открыть порт в файрволе
sudo ufw allow 25565/tcp comment "Minecraft Server"
Проверка: sudo ufw status | grep 25565
8. Создать скрипт запуска
cat > ~/start-minecraft.sh << 'EOF'
#!/usr/bin/env bash
cd ~/minecraft-server/server
java @user_jvm_args.txt @libraries/net/neoforged/neoforge/<VERSION>/unix_args.txt nogui
EOF
chmod +x ~/start-minecraft.sh
Примечание: для Forge (не NeoForge) путь к файлу аргументов отличается — уточняйте в startserver.sh.
9. Настроить автоматические бэкапы
Создайте скрипт резервного копирования:
cat > ~/minecraft-server/backup.sh << 'SCRIPT'
#!/usr/bin/env bash
SERVER_DIR="$HOME/minecraft-server/server"
BACKUP_DIR="$HOME/minecraft-server/backups"
WORLD_DIR="$SERVER_DIR/world"
MAX_BACKUPS=24
mkdir -p "$BACKUP_DIR"
[ ! -d "$WORLD_DIR" ] && echo "[BACKUP] No world folder" && exit 0
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="$BACKUP_DIR/world_${TIMESTAMP}.tar.gz"
echo "[BACKUP] Starting at $(date)"
tar -czf "$BACKUP_FILE" -C "$SERVER_DIR" world
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "[BACKUP] Saved: $BACKUP_FILE ($SIZE)"
BACKUP_COUNT=$(ls -1t "$BACKUP_DIR"/world_*.tar.gz 2>/dev/null | wc -l)
if [ "$BACKUP_COUNT" -gt "$MAX_BACKUPS" ]; then
REMOVE=$((BACKUP_COUNT - MAX_BACKUPS))
ls -1t "$BACKUP_DIR"/world_*.tar.gz | tail -n "$REMOVE" | xargs rm -f
echo "[BACKUP] Pruned $REMOVE old backup(s)"
fi
echo "[BACKUP] Done at $(date)"
SCRIPT
chmod +x ~/minecraft-server/backup.sh
Добавьте запуск каждый час через cron:
(crontab -l 2>/dev/null | grep -v "minecraft/backup.sh"; echo "0 * * * * $HOME/minecraft-server/backup.sh >> $HOME/minecraft-server/backups/backup.log 2>&1") | crontab -
Подводные камни
- ВСЕГДА устанавливайте
allow-flight=trueдля модпаков — иначе сервер будет кикать игроков с джетпаками и летающими маунтами max-tick-time=180000или выше — модпаки часто дают длинные тики при генерации мира- Первый запуск МЕДЛЕННЫЙ (несколько минут для больших паков) — это нормально
- Предупреждения “Can’t keep up!” при первом запуске — норма, пройдут после начальной генерации чанков
- Если
online-mode=false, также выставляйтеenforce-secure-profile=false, иначе клиенты получат отказ - Скрипт
startserver.shиз пака нередко содержит цикл авторестарта — создайте отдельный скрипт запуска без него - Для перегенерации мира с новым сидом удалите папку
world/ - В некоторых паках есть переменные среды для управления поведением (например, ATM10 использует
ATM10_JAVA,ATM10_RESTART,ATM10_INSTALL_ONLY)
Проверка
pgrep -fa neoforgeилиpgrep -fa minecraft— проверить, что процесс запущен- Логи:
tail -f ~/minecraft-server/server/logs/latest.log - Строка “Done (Xs)!” в логе означает, что сервер готов к подключению
- Тест соединения: игрок добавляет IP сервера в раздел Multiplayer