【パルワールド】マルチから専用サーバーへデータ移行!自宅サーバーの建て方と設定手順【Linux完全ガイド】

※当サイトはアフィリエイト広告(Amazonアソシエイト含む)を利用しています。

プログラミング

「友達と一緒にパルワールドを遊びたいけど、ホストがログアウトするとみんな遊べなくなる……」

「人数制限を超えて、もっと大人数で遊びたい!」

「純粋にサーバーを立ててみたい!」

そんな悩みをお持ちではありませんか?

最初は招待コードを使ったマルチプレイで十分でも、ハマればハマるほど「24時間稼働する専用サーバー(Dedicated Server)」が欲しくなりますよね。

この記事では、既存のマルチプレイのセーブデータを引き継ぎつつ、Linux(Ubuntu)を使って自宅サーバーを建てる手順を徹底解説します。

初心者の方には「VPS」がおすすめ!

この記事では「自宅サーバー(Linux)」での構築方法を解説しますが、ぶっちゃけコマンド操作やネットワークの設定はかなり難易度が高いです。また、PCを24時間つけっぱなしにするため、電気代やパーツの消耗も気になります。

  • コマンド操作は苦手……
  • ポート開放とかよくわからない
  • PCの電気代が心配

という方は、レンタルサーバー(VPS)を使うのが圧倒的に簡単で安上がりかもしれません。以下の記事で、VPSを使って簡単にサーバーを建てる方法を紹介しているので、まずはコチラをチェックしてみてください。


前提条件

v0.1.2.0(2024/01/21現在)の環境で検証しています。OSはUbuntuを想定しています。※Linux自体のインストール方法は本記事では割愛します。

また、公式サイトや以下の記事の内容を参考にしています。

最大32人 パルワールド Linux 専用サーバの立て方 - Qiita
現在のパルワールドは「Steam版」のみ専用サーバに接続できます。 「Xbox PC Game Pass版」は招待コードを使ったマルチプレイのみ可能で、その場合は最大4人までのプレイに限られます。 公式による Palworld tech g...

steam用のユーザーを作成

SteamCMDを安全に実行するために、steamというアカウントを新しく作成し、ユーザーを切り替えます。

$ sudo useradd -m steam
$ sudo passwd steam
$ su steam

SteamCMDのインストール

SteamCMDに必要なパッケージと、SteamCMDをインストールします。

なお、以下に示すコードはubuntuでの例です。

その他のディストリビューションをお使いの方ははこちらの方法でインストールしてください。

$ sudo add-apt-repository multiverse
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install steamcmd

ディレクトリの作成

管理しやすくするためにパルワールド用のディレクトリを作成します。

$ mkdir ~/palworld/

専用サーバーのインストール

専用サーバーをディレクトリを指定してインストールします。

$ steamcmd
steam> force_install_dir ~/palworld/
steam> login anonymous
steam> app_update 2394010 validate
steam> exit

サーバーの起動確認

インストールディレクトリに移動し、シェルスクリプトを実行すると、サーバーが起動します。

$ cd ~/palworld/
$ ./PalServer.sh

もし下記のエラーメッセージが表示された場合

.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory

次の手順を実行してください。

$ mkdir -p ~/.steam/sdk64/
$ ln -s ~/palworld/linux64/steamclient.so ~/.steam/sdk64/

自動起動の設定

サーバーの起動と同時に実行されるように、systemdに登録します。

$ sudo nano /etc/systemd/palworld-server.service
[Unit]
Description=Palworld Dedicated Server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target

[Service]
ExecStartPre=/home/steam/steamcmd/steamcmd.sh +force_install_dir /home/steam/palworld +login anonymous +app_update 2394010 validate +quit
ExecStart=/home/steam/palworld/PalServer.sh port=8211 players=32 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
Restart=always
User=steam
Group=steam
TimeoutStartSec=300

[Install]
WantedBy=multi-user.target

以上の内容を記載して、Ctrl+S(保存)、Ctrl+X(終了)を押してください。ポート番号やユーザー名、最大プレイヤー人数などは適宜書き換えてください。専用サーバーは初期設定でUDP 8211を使用します。

ExecStartPreの行で起動前に専用サーバーを更新しています。

デーモンをリロードし、自動で起動するように設定します。先程作ったファイルを編集するたびにデーモンのリロードが必要です。

$ sudo systemctl daemon-reload
$ sudo systemctl enable palworld-server.service

サーバーの起動

上から順番に、起動、状態確認、停止のコマンドです。

$ sudo systemctl start palworld-server.service
$ systemctl status palworld-server.service
$ sudo systemctl stop palworld-server.service

ファイアウォールの設定

例としてufwの設定を行います。専用サーバーは初期設定でUDP 8211を使用します。

$ sudo ufw enable
$ sudo ufw allow 8211
$ sudo ufw reload

ポート開放の設定

お使いのルーターでポート開放をしてください。専用サーバーは初期設定でUDP 8211を使用します。

ルーターによっては設定の名称がポートマッピングやポートフォワーディング、静的NATなどの場合もあります。

サーバーへ接続

ゲームクライアントを起動し、「マルチプレイに参加する(専用サーバー)」を選択します。

下部の入力欄に『IPアドレス:ポート番号』を入れ、「接続」を押します。

公式サイトより

自宅内から接続する場合はサーバーのローカルIPアドレス、自宅外から接続する場合はグローバルIPアドレスを入力してください。

サーバーの設定

有志の方が設定ファイルジェネレーターを作ってくれています。

PalwebWorld_Setting_Gen

これを使って生成した設定値を、以下のファイルに保存してください。

~/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

セーブデータの引き継ぎ(サーバー側)

元々招待コードを作っていた人のパソコンにデータが保存されています。

C:\Users\{ユーザー名}\AppData\Local\Pal\Saved\SaveGames\{ユーザーID}\{ワールドID}\

「Players」「Level.sav」「LevelMeta.sav」の3つのファイルを下記のディレクトリにコピーしてください。

~/palworld/Pal/Saved/SaveGames/0/{ワールドID}/

ファイルのコピーにはWinSCPなどを使うと便利です。

なお、v0.1.2.0(2023/01/21現在)の時点では、元々招待コードを作っていた人のデータは引き継げない(?)ので、事前にチェストにアイテムを移動させたり、パルを別の人に譲渡しておいてください。

セーブデータの引き継ぎ(ローカル側)

マルチプレイに参加していた人のパソコンにも先程の場所にローカルデータが保存されています。

C:\Users\{ユーザー名}\AppData\Local\Pal\Saved\SaveGames\{ユーザーID}\{ワールドID}\

ワールドIDはサーバー側の人と共通です。

専用サーバーに一度参加したあと、マルチプレイのワールドIDのフォルダーにある「LocalData.sav」を専用サーバーのワールドIDのフォルダーにコピーしてください。

マルチプレイのホストだった人も「LocalData.sav」をコピーしてください。

まとめ:快適なパルワールドライフを!

以上で移行作業は完了です!これでホストのPCが落ちていても、24時間いつでもパルワールドが遊べるようになります。

「やっぱりコマンド操作が難しくて挫折しそう……」「ポート開放がうまくいかない」という方は、面倒な設定が一切不要なVPSを検討してみてください。月々数千円でこれらの手間がすべてなくなります。


おまけ:自宅サーバーをもっと有効活用しませんか?

せっかくLinuxサーバーを24時間稼働させるなら、パルワールド以外の用途にも使ってみませんか? PCのリソース(CPUやメモリ)が余っているなら、航空機の位置情報を追跡する「Flightradar24」のフィードを行うのも面白いですよ。数百円〜数千円のUSBチューナーがあれば、あなたの家が管制塔になります。

コメント

  1. ・。・ より:

    サーバーを立てる予定で、招待コードを作成していた立場です。
    記事の内容的には招待コード側の人はLocalData.savを移さないようですが、LocalData.savを入れるのではうまく動かないってことでしょうか?

    • GardenTree GardenTree より:

      こちらの記載漏れです。
      マルチプレイのホストの人もLocalData.savをコピーしてください。

  2. 愛餡 より:

    「v0.1.2.0(2023/01/21現在)の時点では、元々招待コードを作っていた人のデータは引き継げない」ってあったけどマルチプレイのホストの人もLocalData.savをコピーすれば引き継げるようになるのかな?

    • GardenTree GardenTree より:

      マルチプレイのホストの人もLocalData.savをコピーしてください。
      ただし、装備やパルなどは引き継げず、チュートリアルの進行やマップなどが引き継げます。

  3. malt より:

    装備やパルなどは引き継げず、チュートリアルの進行やマップなどが引き継げるとのことなのですが、レベルや振り分けたステータス情報なども引き継がれるのでしょうか。
    単純にパルを含めた「所持品」のデータが無くなるという感じですか?

    • GardenTree GardenTree より:

      レベルや振り分けたステータス情報なども消えてしまいます。所持品のデータもなくなります。

タイトルとURLをコピーしました