Skip to content

Sumire-Labs/MCSS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MCSS - MCServer Starter 1.13

PowerShell 7+ 製の Minecraft サーバー起動・管理スクリプト。サーバーJARのダウンロードからJVMチューニング、自動再起動まで1つのスクリプトで完結します。

⚠️Bashネイティブ版の作業を進めていますが、テストされていません。⚠️

特徴

  • サーバーJAR自動ダウンロード — 初回セットアップ時に各APIからサーバーJARを取得
    • Vanilla (Mojang公式)
    • Paper
    • Fabric
    • Forge
    • NeoForge
    • CleanroomLoader
  • MCバージョン+ローダーバージョン選択 — APIから一覧取得して矢印キーで選択
  • GCプロファイル — G1GC (Aikar flags) / ZGC / Shenandoah を切り替え可能
  • JVMフラグの一元管理launch.txt で全設定を管理。Forge 1.17+ の user_jvm_args.txt は不要
  • Javaバージョン自動検出 — バージョンに応じたフラグを自動追加/除外
  • 自動再起動 & クラッシュ検出 — 異常終了時に自動再起動。短時間の連続クラッシュを検出して停止
  • EULA同意フロー — コンソール内でEULAに同意して eula.txt を自動生成
  • ANSI対応のリッチUI — カラー表示、プログレスバー、矢印キー選択

動作要件

  • PowerShell 7+ (pwsh) — ダウンロード
  • Java — サーバーのバージョンに合ったJDKが必要

初回セットアップ

初回起動時に対話型ウィザードが起動します:

  1. サーバーJAR — ファイル名を入力(存在しなければダウンロードを提案)
  2. サーバー種類 — Vanilla / Paper / Fabric / Forge / NeoForge / Cleanroom から選択
  3. バージョン選択 — MCバージョン → ローダー/ビルドバージョンの順に選択
  4. メモリ設定 — 最小・最大メモリを指定(例: 4G, 8G
  5. GCプロファイル — G1GC / ZGC / Shenandoah を選択
  6. GCフラグ編集 — デフォルトフラグを確認・カスタマイズ

設定は launch.txt に保存され、次回以降は自動的に読み込まれます。

launch.txt

全ての設定を1ファイルで管理します。直接テキストエディタで編集可能です。

# ============================================================
# MCServer Starter 1.13 - Configuration
# ============================================================

ServerJar=paper-1.21.8-123.jar
MinMemory=4G
MaxMemory=8G
GCProfile=g1gc

# ============================================================
# GC Flags
# 1行に1フラグ。'#' はコメント。
# ============================================================
[gc_flags]
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-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:MaxTenuringThreshold=1

設定をリセットしたい場合は launch.txt を削除してスクリプトを再実行してください。

Forge 1.17+ / NeoForge の起動

Forge 1.17以降とNeoForgeはinstallerが run.bat + win_args.txt を生成する方式です。本スクリプトでは:

  • run.bat / run.sh / user_jvm_args.txt は自動的に削除されます
  • win_args.txt の内容はJavaの @file 記法で直接展開されます
  • JVMフラグは全て launch.txt から適用されます
  • launch.txtServerJar@ARGS:パス という特殊値が設定されます
# launch.txt での表示例
ServerJar=@ARGS:C:\server\libraries\net\minecraftforge\forge\1.20.1-47.4.16\win_args.txt

Javaバージョン自動対応

スクリプトはJavaのメジャーバージョンを自動検出し、以下のフラグを自動的に追加/除外します:

フラグ 条件
-XX:+ParallelRefProcEnabled Java 17未満 かつ G1GC使用時のみ追加
-XX:+ZGenerational Java 21〜22 かつ ZGC使用時のみ追加
-XX:+UseCompactObjectHeaders Java 24以降のみ追加 (Project Lilliput)

クラッシュ検出

サーバーがexit code 0以外で停止した場合、自動的に再起動を試みます。

  • スライディングウィンドウ方式 — 直近300秒間のクラッシュ回数をカウント
  • 5回連続クラッシュで停止 — 短時間に連続クラッシュした場合のみ自動再起動を停止
  • 正常終了 (exit code 0) では再起動しない/stop コマンドでの停止に対応
  • プログレスバー付きカウントダウン — 再起動前に任意のキーでキャンセル可能

ライセンス

MIT License - Copyright (c) 2026 s12kuma01

About

MCServerStarter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PowerShell 54.5%
  • Shell 45.5%