Palworld専用サーバーをDiscordで管理 〜参加者誰でも起動や停止で可用性UP〜
こんにちはRcatです。
今回はリリースからすさまじい勢いの新作パルワールドのサーバー管理系の話です。
私はこういった専用サーバーを立てるゲームでサーバーをよく立てるのですが、可用性が鯖主に左右されるという欠点があります。
レンタルサーバーかつシェルの知識のある参加者はできないことはないでしょうけれども…。
つまり専用サーバーのくせに参加者がいつでも参加できないのでは、セッション合流式のゲームとなんら変わりません。
というわけでDiscordを使って、みんなで管理できるようにしちゃいましょう。
ちなみに、今回は下記で作成したサーバー管理ツールをパルワールドで使用するための方法となります。
事前準備
事前準備としてサーバーのセットアップを行います。
環境
今回対象とするのは次の環境です。
OS : Linux (Ubuntu)
CPU : N100
MEM : 16GB
ハードウェアの詳細は次の記事をご確認ください。
セットアップ
最初にSteamcmdのセットアップを行います。
下記を参考にやったらできたのでこちらでやる前提です。
https://blog.ahh.jp/?p=29774
なお、記事の中で出てくる"sudo dpkg –add-architecture i386"の部分に関してはうまくいかなかったのですが、スキップしても問題ありませんでした。
サーバーをセットアップ
セットアップが完了したSteamcmdを使ってサーバーをインストールします。
上記で紹介したセットアップ方法だと"steamcmd"がコマンドとして使用できるので実行します。
次に"force_install_dir"コマンドでインストール先を決定します。
次に匿名ユーザーでログインします。"login anonymous"
よくある間違いとして先にログインをしてからインストール先決定をしますが、その順番だと警告が出ます。別に問題なくインストールできますが、急に仕様が変わってエラーになる可能性も否定できないので、この順番でやる方がいいでしょう。
最後にサーバーをインストールします。"app_update 2394010 validate"
ここで言う"2394010"が、パルワールドのサーバーのIDになります。
逆に言えばこのIDさえ分かればどんなゲームでも同じ方法でサーバーを立てられます。
実行例
初回はアップデートだけでなく、全体のダウンロードが入るのでもう少し時間がかかる。
$ steamcmd
Logging directory: '/home/rcat/Steam/logs'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
OK
Steam>force_install_dir /SSD/palworld
Steam>login anonymous
Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Steam>app_update 2394010 validate
Update state (0x5) verifying install, progress: 0.19 (4194304 / 2248053389)
Update state (0x5) verifying install, progress: 30.65 (688978846 / 2248053389)
Update state (0x5) verifying install, progress: 67.35 (1514175245 / 2248053389)
Success! App '2394010' fully installed.
Steam>quit
ダウンロードが終わったら"PalServer.sh"を実行することでサーバーを立てることができます。
一度実行して稼働することを確認してください。
管理ツールのセットアップ
準備ができたら私オリジナルの管理ツールをセットアップしていきます。
この汎用管理ツールを使うことで、Discordのボットから指示を受け付けることができます。
上記の記事からツールを配布していますので、ダウンロードしてください。
また、一通り読んでいただき、サーバーの定義方法などは理解した前提で進めていきます。
ダウンロードして展開したものを任意のフォルダーに格納してください。
この中で絶対に必要なのがpyファイルとHTMLになります。それ以外はなくても大丈夫です。
start.sh
ここから先は上記記事を読了済みで理解している前提です。
まず起動スクリプトの紹介です。
こちらが私が作成した起動スクリプトです。
二重起動の防止処理の後にサーバーの起動が入っているだけです。
ちなみに公式の起動スクリプトがあるので、それを起動しに行くだけの超簡単な構造です。
あと、アップデートがあった時に自動で適用できるようにアップデートスクリプトを先に挟んでいるという特徴もあります。
update.sh
アップデートスクリプトの内容はいかになります。
先ほどの、サーバーインストールコマンドと全く同じこと事が書いてあります。
ただし改行ができないので、各コマンドをプラスでつなぐという方法を取っています。
stop.sh
サーバーを停止させるスクリプトです。
ここではRCONを使用し、セーブの指示を出した後、シャットダウンの指示を送っています。
少なくともを調べた時点では、RCONを使用して安全にシャットダウンしているのはこの方法のみだと思います。
サーバーコマンドとRCONに関しては下記記事をご確認ください
実行方法
下記記事の操作方法をご確認ください。
限定告知
現在メルカリでサーバー用のPCを出品中!
ARKや7dtd、マイクラなどで使用した実績あり、サーバー用途ならまだまだ現役です!
本記事から来た趣旨のコメントで本ツールとパルワールドサーバーセットアップします。
※想定外のトラブルによりセットアップできない場合があります。
[メルカリ] デスクトップPC Core i7 4770 16GB SSD 512GB H87
https://jp.mercari.com/item/m28409472219?utm_source=android&utm_medium=share&source_location=share
サーバー定義の配布
今回紹介したパルワールド専用のサーバー定義は以下にて配布中です。
使ってみたいという方は使用してみてください。
当たり前ですが、ファイルパスなどは異なってくるので、そのあたりは書き換えてください。
なお、入手には下記有料ライン以下のキーワードが必要です。
利用規約に同意の上お買い上げください。
ちなみに内容は記事に貼っている画像と同じなので、面倒な方かこれ位なら情報もくれたしいいかなと思っていただけた方向けです。
続きをみるには
¥ 100