見出し画像

Palworldのマルチサーバーを建てよう【ConoHa for GAME版】

バーチャル美少女プログラマー/麻雀VTuberの新篠ゆうです。

久々に超ハマれそうなゲームが出たので、さっそくマルチサーバーを建ててみました。
今回はConoHa for GAMEでマルチサーバーを建てる手順の紹介になります。
(ConoHa for GAMEやNitoradoとかでテンプレートが出てきたらわざわざこの方法で建てなくていいので、それまでの繋ぎです。)

2023/1/24 追記
最初からPalworldのテンプレートを選ぶか、再構築でPalworld選ぶだけでよくなりました

サーバー構成

手順

1. ConoHa for GAMEでサーバー契約する

ARKテンプレートを選んでおいてください。
プランや期間はお好みで。

2. 左メニューのセキュリティグループからセキュリティグループを追加

適当な名前でセキュリティグループを追加して、UDPの8211ポートを開けます。(公式ドキュメントは8221ですが、8211が正しいです。)

左メニューのサーバーから契約したサーバーの詳細画面へ行き、追加したセキュリティグループを設定する。

3. コンソールからログイン(rootユーザー)

初回はrootでログイン。
ARKのサーバーを止めます。
(ConoHaのコンソールからコピペできないのでコマンドは手打ちです。もしtypoしてたら教えてください。)

# systemctl stop ark-server.service
# systemctl disable ark-server.service

ログイン時にARKサーバーに関するメッセージが表示されていたと思いますが、それもメッセージ中にある `rm motd` みたいなコマンドで消すことができます。

また、rootユーザーだと権限が強すぎてPalWorldのサーバーが起動できないようになってるので、ユーザーを追加します。

# useradd -m palworld
# passwd palworld
# usermod -aG sudo palworld
# su -

4. コンソールからログイン(palworldユーザー)

steamcmdはすでに入っているので、サーバーのDLからやります。
公式のドキュメントと微妙にパスが違ってます。
一度エラーが出ますが、起動してみます。

$ steamcmd +login anonymous +app_update 2394010 validate +quit
$ cd .steam/SteamApps/common/PalServer/
$ ./PalServer.sh

起動してみるとおそらく `steamclient.so` に関するエラーが発生します。
実際には `steamclient.so` ファイルがあるのですが、パスの問題で読み込めなくなっているようです。
これを解決するために、指定されたパスにファイルをコピーします。

$ mkdir ~/.steam/sdk64/
$ cp ~/.steam/SteamApps/common/PalServer/linux64/steamclient.so ~/.steam/sdk64/

この後 `./PalServer.sh` を起動してみると、`[S_API FAIL]` とかすごくエラーっぽい表示は出ますが、一応サーバーは起動します。

5. uwfによるポート開放

2.で行ったポート開放だけではうまく反映されないようで、uwfでもポート開放の設定が必要になります。
ここまでやると、ゲーム内の専用サーバーのページで、サーバーの詳細画面にあるサーバーのIPアドレスを入れてあげれば接続できるようになります。

$ sudo ufw allow 8211/udp

6. サーバー設定の変更

サーバーのデフォルト設定をコピーして、必要なところを変更します。

$ cd .steam/SteamApps/common/PalServer/
$ cat DefaultPalWorldSettings.ini > ./Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
$ vi ./Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

私はまだ初日で難易度がわからないので、とりあえずServerNameだけ変えました。

7. systemctlへの登録

サーバー再起動時に自動で起動されるように、systemctlに登録します。
(3.でARKのサーバーを止めたのと逆)

$ cd /etc/systemd/system/
$ sudo vi palworld.service

`ark-server.service` を参考に、とりあえず以下のファイルを作成しました。

[Unit]
Description=palworld
After=network-online.target

[Service]
Type=simple
WorkingDirectory=/home/palworld/.steam/SteamApps/common/PalServer/
LimitNOFILE=100000
User=palworld

ExecStartPre=/usr/games/steamcmd +login anonymous +app_update 2394010 validate +quit
ExecStart=/bin/bash -c "./PalServer.sh"
ExecStop=/bin/kill -s INT $MAINPID

Restart=on-failure
RestartSec=30
TimeoutSec=600

[Install]
WantedBy=multi-user.target

ConoHa のコンソールの「テキスト送信」は長い文章だと途中で切れるみたいなので、3行ずつ貼り付けました。

できたらお試し起動とsystemdへの登録を行います。

$ sudo systemctl daemon-reload
$ sudo systemctl start palworld.service
$ sudo systemctl status palworld.service
$ sudo systemctl enable palworld.service

この後再起動してもう一度ログインし `sudo systemctl status palworld.service` を実行してみて、 statusが `active(runnning)` になっていれば成功です。

さいごに

以上がConoHa for GAMEでマルチサーバーを建てる手順になります。
早くサーバーのテンプレートにPalworld追加されないかな。

普段は麻雀の段位戦ばかりやっているVTuberですが、もし麻雀に興味があったらチャンネル登録よろしくお願いします!


この記事が気に入ったらサポートをしてみませんか?