Skip to content

Repository files navigation

GameServerManager

GameServerManager: Unified Game Server Management Tool

日本語 | English

Windows上のゲームサーバーを、ひとつのGUIから管理するアプリです。使用するゲームを選び、同じPC内にあるサーバーの起動・停止・設定・バックアップを操作できます。

今後も継続的に、他のゲームのサーバー管理機能を追加していく予定です。

現在は各ゲームにつきサーバー1件・管理対象ワールド1つに対応しています。 同じゲームの複数サーバーや複数ワールドを登録して切り替える機能はありません。異なるゲームのサーバーは、それぞれ登録できます。

主な機能

  • ARK: Survival Ascended / Valheim / Windrose / Satisfactory / Conan Exiles に対応
  • サーバーの起動・正常停止、SteamCMDによる更新・インストール
  • 停止中のワールドと設定のバックアップ・復元
  • 設定ファイルの新規作成・登録、ゲームごとの設定をGUIで編集

現状,Valheimでは実機での起動・参加・正常停止・バックアップ作成・SteamCMDによる更新完了を確認しています。他のゲームの実機操作や復元、新規作成からの一連の動作は未確認です。対応状況と制約をご確認ください。

動作環境

  • Windows x64(同じPC内のサーバー管理)
  • 各ゲームの専用サーバーの動作要件を満たすPC
  • 更新・インストールにはSteamCMD(アプリ設定からダウンロード、または既存の steamcmd.exe を指定)
  • ソースからのビルドには、Rust(rustup)と Visual Studio C++ Build Tools / Windows SDK
  • Rustのバージョンは rust-toolchain.toml で固定しています。

ビルドと起動

リリースビルド

リポジトリを取得し、ルートフォルダーのPowerShellで実行します。

.\build-release.bat

GUIと正常停止用ヘルパーをまとめてリリースビルドし、完了時に生成先を表示します。生成先はリポジトリのルートを基準に、次のとおりです。

ファイル 生成パス
管理アプリ target\x86_64-pc-windows-msvc\release\manager-gui.exe
正常停止用ヘルパー target\x86_64-pc-windows-msvc\release\gsm-ctrlc-helper.exe

任意のフォルダーに配置して起動

生成した2つのexeを同じフォルダーへコピーします。配置先は任意です(例: D:\Apps\GameServerManager)。正常停止用ヘルパーもアプリと一緒に配置してください。画像はexeに埋め込まれているため、実行時にassetsフォルダーをコピーする必要はありません。ビルド済みアプリの実行にRustは不要です。

manager-gui.exeをダブルクリックして起動します。初回は管理データの保存先を選ぶ画面が開くので、「参照…」でフォルダーを選ぶか、絶対パスを入力して「この保存先で開く」を押します。次回以降は選んだ場所を自動で使用します。

保存先はアプリ設定 → 保存先で確認・変更できます。登録情報・アプリ設定・処理記録の保存先であり、ゲーム本体・ワールド・バックアップの保存先とは別です。保存先を変更すると、選択したフォルダーのデータで管理画面を開き直します。元のデータは移動・削除しません。すべてのサーバーを停止し、実行中・未完了の作業を解消してから変更してください。

保存先の記憶は%LOCALAPPDATA%\GameServerManager\data-location.jsonに保存します。ドライブの取り外しなどで保存先が見つからない場合は、保存先の選択画面で案内します。

明示的に保存先を指定する起動方法も使えます。この指定は記憶済みの保存先より優先され、記憶自体は変更しません。

.\manager-gui.exe --backend local --data-dir 'D:\GameServerManagerData'

開発用スクリプトやtools\start-packaged.ps1は保存先を明示するため、GUIで選んだ場所よりスクリプトの指定が優先されます。通常利用ではexeを直接起動してください。

ソースから開発用ビルドで起動

リポジトリのルートで実行します。

.\run-manager.ps1

GUIと正常停止用ヘルパーを開発用ビルドで起動します。管理データは .manager-data/ に保存されます。詳細は開発ガイドを参照してください。

最初の設定

  1. 初回起動で管理データの保存先を選びます。その後、管理するゲームを選び、「サーバー設定」を開きます。
  2. 新しく始める場合は「新規作成」を選び、設定ファイルの保存先・空の設置先・SteamCMDなどを入力します。既存環境は「設定ファイルの登録」から、対応するServerMaintainerの設定を選びます(ARK: Profile/*.ini、ほかのゲーム: config.toml)。
  3. 内容を確認して作成・登録します。登録内容は自動で反映されます。
  4. 新規環境は「サーバー操作 → 更新・インストール」を実行し、成功後の自動再読み込みを待ってから起動します。

新規作成は既存ファイルを上書きしません。Satisfactoryのclaim・初回セッション作成など、ゲーム内で行う初期設定もあります。詳細はサーバー設定ガイドを参照してください。

言語は画面左下の Language → 日本語 / English で切り替えられます。前回のゲーム・タブを記憶する設定は初期値オンです。保存済みの設定は維持します。

SteamCMDを用意する

SteamCMDは通常のSteamクライアントとは別のツールです。Steamをインストールしても一緒に入るものではありません。1つのSteamCMDを複数のゲームで共用でき、ゲームサーバー本体のインストール先はゲームごとに分けます。

  1. アプリ設定 → SteamCMDを開きます。
  2. 既定候補はC:\steamcmd\steamcmd.exeです。必要なら「配置フォルダーを選ぶ」で書き込み可能な別の場所を選びます。
  3. 未導入なら、空のフォルダーを指定して「ダウンロードして設定」を押します。Valveの配布元からZIPを取得・展開し、共通パスを保存します。既存ファイルは上書きしません。
  4. 導入済みなら「既存の exe を選ぶ」→「このパスを保存」を使います。

新規サーバー設定のSteamCMD欄には、保存した共通パス(未設定なら既定候補)を初期入力します。各ゲームで個別指定したパスを使用し、共通パスを変更しても既存のサーバー設定は自動更新しません。 個別の欄にある「既定パスを入力」で共通パスを取り込むこともできます。

この操作はSteamCMDの起動用exeを配置します。SteamCMDの初回自己更新は、ゲームサーバーの「更新・インストール」実行時に行います。同じSteamCMDの利用は順番に処理します。詳細と配置例の出典はSteamCMDガイドをご確認ください。

更新時はSteamCMD自体の初期化・自己更新を確認してからゲームサーバーを更新します。成功時は案内を表示し、管理画面を自動で再読み込みします。ほかの操作・設定編集中は終了するまで待機します。失敗時は作業履歴の詳細と「ログ」に表示されるSteamCMD更新ログを確認できます。「全文をコピー」には更新ログも含まれます。

データの取り扱い

管理データとゲームサーバーの設定

.manager-data/はrun-manager.ps1で起動した場合の管理データ保存先です。exeを直接起動した場合は、初回画面や「アプリ設定 → 保存先」で選んだフォルダーが同じ役割を持ちます。GUIの表示設定だけでなく、サーバーの登録情報や安全に操作するための記録も保存します。

保存内容 保存場所
テーマ・言語・通知・前回の画面の記憶 管理データ内のlocal-preferences.json
新規サーバー設定に初期入力するSteamCMDの共通パス 管理データ内のlocal-steamcmd.json
使用するゲーム・サーバー名・ワールド名などの管理用情報 管理データ内のlocal-app.json
登録した設定ファイルのパス・識別子・変更検知用ハッシュ 管理データ内のlocal-registrations.json
起動したプロセス・未完了操作・設定変更や復元の回復用記録 管理データ内のinstances/以下
ポート・パスワード・SteamCMDのパス・ワールド設定などの設定本体 新規作成・登録で指定したconfig.tomlやARKのプロファイル、各ゲームのINI・JSONなど
ゲーム本体・ワールド・バックアップ サーバー設定で指定した各保存先

「サーバー設定」「ワールド設定」で保存すると、対象の設定ファイルを更新します。登録情報に設定本文やパスワードを通常の設定値として複製する仕組みではありません。ただし、設定変更中はinstances/<サーバーID>/settings-undo.jsonに変更前後の設定本文を一時保存するため、パスワードなどが含まれる場合があります。 この記録は保存または回復が正常に完了すると削除され、処理が中断した場合などは回復のために残ります。

管理データのフォルダーだけでは、ゲームサーバーの設定本体やワールドをバックアップしたことにはなりません。また、GUI設定だけのフォルダーと考えて削除すると、登録情報や回復用記録も失われます。表示・通知などのアプリ設定を移す場合は「アプリ設定 → 設定の移行」のエクスポート/インポートを使ってください。SteamCMDの共通パスはPCごとに指定するため、このエクスポートには含めません。

バックアップと設定変更はサーバー停止中に行います。パスの変更では既存データを自動移動しません。GUIを終了してもサーバーは自動停止しません。

ゲーム設定やバックアップ、管理データ内の回復用記録にはパスワードなどが含まれる場合があります。ログや設定をIssueへ添付する際は、認証情報・個人情報・個人のパスを取り除いてください。

ドキュメント

ライセンス・出典

本プロジェクトのソースコードは MIT License で公開します。既存の著作権表示、依存ライブラリのライセンス、ゲーム画像の権利は第三者の権利表記を参照してください。ゲーム名・画像の権利は各権利者に帰属します。本アプリは各ゲームの公式ツールではありません。

About

Unified Game Server Management Tool

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages