{/ Эта страница автоматически передается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Сервер модпаков Minecraft

Хостинг модифицированных серверов Minecraft (CurseForge, Modrinth).

Метаданные навыки

Источник Встроенный (установлен по умолчанию)
Путь навыки/игры/minecraft-modpack-server
Платформы Linux, MacOS

Справочник: полный SKILL.md:::информация

Ниже приведено полное определение навыков, которые Hermes загружает при его активации. Это то, что агент видит в качестве инструкций, когда навыки активны.

Настройка модпаков сервера Minecraft

Когда использовать

Сначала выберите настройки пользователя

Перед началом настройки спросите пользователя: - Название сервера / MOTD — что должен быть в списке серверов? - Сид (семя) — конкретный сид или случайный? - Сложность — мирная / легкая / нормальная / сложность? - Режим игры — выживание / творчество / приключение? - Режим онлайн — true (аутентификация Mojang, лицензионные аккаунты) или false (для LAN/пираток)? - Количество игроков — сколько игроков ведет? (влияет на направление RAM и расстояние прорисовки) - Выделение RAM — или разрешите агенту решить на основе количества модов и доступной RAM? - Дистанция прорисовки/дистанция симуляции — или разрешите агенту выбрать на основе количества игроков и оборудования? - 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

3. Установите загрузчик модов

Большинство серверных модпаков включают установку скриптов. Используйте переменное окружение INSTALL_ONLY для установки без запуска:

cd ~/minecraft-server/server
ATM10_INSTALL_ONLY=true bash startserver.sh
# Или для обычных модпаков Forge:
# java -jar forge-*-installer.jar --installServer

Это загружает библиотеки, пропатчит серверный jar и т.д.

4. Примите лицензионное соглашение

echo "eula=true" > ~/minecraft-server/server/eula.txt

5. Настраиваем server.properties

Ключевые настройки для модифицированных/LAN:

motd=\u00a7b\u00a7lНазвание сервера \u00a7r\u00a78| \u00a7aНазвание модпака
server-port=25565
online-mode=true          # false для LAN без аутентификации Mojang
enforce-secure-profile=true  # соответствует online-mode
difficulty=hard            # большинство модпаков сбалансированы под сложный режим
allow-flight=true          # ОБЯЗАТЕЛЬНО для модифицированных (летающие маунты/предметы)
spawn-protection=0         # разрешить всем строить на спавне
max-tick-time=180000       # модифицированным нужно больше времени на тик
enable-command-block=true

Настройки производительности (в зависимости от оборудования):

# 2 игрока, мощная машина:
view-distance=16
simulation-distance=10

# 4-6 игроков, средняя машина:
view-distance=10
simulation-distance=6

# 8+ игроков или слабое оборудование:
view-distance=8
simulation-distance=4

6. Настройте аргументы JVM (user_jvm_args.txt)

Масштабируйте оперативную память в зависимости от количества игроков и модов. Эмпирическое правило для модифицированных: - 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 | греп 25565

8. Настраиваем запуск скрипта

cat > ~/start-minecraft.sh << 'EOF'
#!/bin/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'
#!/bin/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] Папка мира не найдена" && exit 0
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="$BACKUP_DIR/world_${TIMESTAMP}.tar.gz"
echo "[BACKUP] Начало в $(date)"
tar -czf "$BACKUP_FILE" -C "$SERVER_DIR" world
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "[BACKUP] Сохранено: $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] Удалено $REMOVE старых резервных копий"
fi
echo "[BACKUP] Завершено в $(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 -

Ловушки

Проверка