mcpField
M
minecraft-modpack-server

minecraft-modpack-server

github.com/nousresearchクラウド・DevOps258.1k90 回インストール今日更新
リポジトリ

minecraft-modpack-server について

minecraft-modpack-server は、サーバーパックから Minecraft の Mod サーバーを構築するためのスキルです。NeoForge または Forge の導入、設定、性能調整、ファイアウォール、バックアップを案内します。

主な機能

  1. 01サーバーパックと Mod ローダーの確認
  2. 02ゲームのバージョンに応じた Java の導入
  3. 03サーバー設定と JVM 引数の調整
  4. 04ポート開放と起動スクリプトの作成
  5. 05バックアップ設定と稼働状況の確認

活用シーン

  1. 01サーバーパック ZIP から Mod サーバーを構築
  2. 02人数とハードウェアに合わせて性能調整
  3. 03ホワイトリストやゲームモードなどを設定
  4. 04ワールドのバックアップを予約しログを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nousresearch/hermes-agent --skill minecraft-modpack-server

インストール後、Claude Code で/minecraft-modpack-serverを入力して読み込まれたか確認します。

詳細

Minecraft Modpack サーバーのセットアップ

使用する場面

  • ユーザーがサーバーパックの zip から MOD 導入済み Minecraft サーバーをセットアップしたい場合
  • NeoForge/Forge サーバーの設定についてサポートが必要な場合
  • Minecraft サーバーのパフォーマンス調整やバックアップについて質問された場合

最初にユーザーの希望を確認する

セットアップを始める前に、次の項目をユーザーに確認してください。

  • サーバー名/MOTD — サーバーリストに何を表示しますか?
  • シード値 — 指定したシード値を使いますか、それともランダムにしますか?
  • 難易度 — ピースフル/イージー/ノーマル/ハードのどれにしますか?
  • ゲームモード — サバイバル/クリエイティブ/アドベンチャーのどれにしますか?
  • オンラインモード — true(Mojang 認証、有効なアカウント)にしますか、それとも false(LAN/非正規アカウントにも対応)にしますか?
  • プレイヤー数 — 何人のプレイヤーを想定していますか?(RAM と描画距離の調整に影響します)
  • RAM の割り当て — 指定しますか、それとも MOD の数と利用可能な 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/ フォルダー。 スクリプトを確認し、MOD ローダーの種類とバージョン、必要な 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. MOD ローダーをインストールする

ほとんどのサーバーパックにはインストールスクリプトが含まれています。起動せずにインストールするには、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 を設定する

MOD 導入済みサーバー/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)

プレイヤー数と MOD の数に合わせて RAM を調整します。MOD 導入済みサーバーの目安:

  • 100~200 個の MOD:6~12GB
  • 200~350 個以上の MOD:12~24GB
  • OS やその他のタスク用に、少なくとも 8GB を空けておきます
-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 -

注意点

  • MOD 導入済みサーバーでは必ず allow-flight=true に設定してください。ジェットパックや飛行機能を持つ MOD を使うと、そうしなければプレイヤーがキックされます。
  • max-tick-time=180000 以上に設定してください。MOD 導入済みサーバーでは、ワールド生成中にティックに時間がかかることがよくあります。
  • 初回起動には時間がかかります(大規模なパックでは数分)。慌てないでください。
  • 初回起動時の「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 を追加します。

コメント