本記事ではAzureでPalworldサーバーを構築後のデータ移行について執筆する。
Azureでのサーバー構築については別記事で執筆予定。
構築環境
- Palworld:v1.0.2.101103
- Azure Ubuntu 24.04 LTS
- VMサイズ:Standard D4s v3(4vCPU / 16GB RAM)
- Docker Compose
- Dockerイメージ:thijsvanloef/palworld-server-docker
- ホスト:Steam版
- ゲスト:Xbox Game Pass版
構築の経緯
ローカルマルチではホストがゲームを起動していないと遊べません。そのため、ホストがいない時間でも遊べる環境を作りたいと考えました。
Azureは利用した時間だけ課金されるため、24時間起動しない運用であればVPSより安くなる可能性があります。また、業務でAzureを触る機会があり、基本的な操作には慣れていたことも選んだ理由です。
実現したいこと
- Azure上にPalworldコミュニティサーバーを構築
- ローカルマルチのワールドを移行
- SteamホストとXbox Game Passゲストのデータを引き継ぐ
- 毎日深夜1時にPalworldサーバー自動シャットダウン
ローカルマルチのワールドを移行
1.移行元ホストがAzureで作った専用サーバーにアクセス。

2.適当にキャラを作り、ゲーム開始後すぐにログアウト。
3.するとAzureサーバーのPlayers配下にplayer IDが格納される。
Pal/Saved/SaveGames/0/xxxxxxxxxxxxxxxx/Players

4.格納されたplayer IDをメモ。これがホスト用のplayer IDと分かるようにする。
┗.sav前の32桁の数字がplayer ID。
5.移行元ゲストがAzureで作った専用サーバにアクセス。
6.適当にキャラを作り、ゲーム開始後すぐにログアウト。
7.格納されたplayer IDをメモ。これがゲスト用のplayer IDと分かるようにする。
8.Palworld Save Converter | TroubleChute Hubで移行元ワールドデータを変換する。
STEP 1
移行元ホストのworldフォルダをアップロード。
C:\Users\ユーザ名\AppData\Local\Pal\Saved\SaveGames\XXX\32桁の英数字

すると移行元のプレーヤー情報が表示される。

STEP 2
メモしたホスト用のplayer IDを右側に張り付ける。

STEP 3
メモしたゲスト用のplayer IDをNew player ID (optional)に張り付ける。

その後チェックを入れ、Convertを押下。

すると、変換後のワールドデータが指定したフォルダへ出力される。

9.変換したフォルダの中身をAzureのワールドフォルダ配下に上書きする。
※上書きの前にAzureのパルワールドコンテナを停止してください。

※重要
ワールドデータをコピーする際は WorldOption.sav はコピーしないこと をおすすめします。
このファイルにはサーバー設定も保存されており、コピーするとSERVER_NAMEなどが反映されない原因になる場合があります。
10.パルワールドコンテナ起動。
docker compose up -d

11.ゲームにログインしてデータ移行できてるか確認。
キャラクター作成に飛ばなかったら成功です。
ハマったポイント① サーバー名が変更されない
症状
PalWorldSettings.iniにサーバー名が反映されているのに、ゲーム内ではDefault Palworld Serverのまま表示される現象が発生。
原因
移行元から
WorldOption.sav
をコピーしていため。
解決方法
docker compose down
パルワールドコンテナ停止。

WorldOption.sav
を退避(リネーム)
WorldOption.sav.bak

docker compose up -d
パルワールドコンテナ起動。

ゲームを開始し、コミュニティサーバーにて設定したサーバ名を検索。
コミュニティサーバー一覧で、設定したサーバー名を検索し正しく表示されることを確認。

ハマったポイント② 最大人数が32人のまま
使用した
thijsvanloef/palworld-server-dockerでは、MAX_PLAYERSは反映されず、PLAYERSを使用する必要がありました。
compose.yaml
MAX_PLAYERS: "2"
では変更されなかった。
PLAYERS: "2"
が正しい。
PalWorldSettings.ini
ServerPlayerMaxNum=2
になっていることも確認。
ハマったポイント③ SCPでコピーできない
ゲームデータを移行元pcからAzureへ移行する際、コマンドラインでSCP転送を試みました。
しかしSCPコマンドでは公開鍵認証で苦戦したため、GUIで操作できるWinSCPを利用しました。
WinSCPを使う場合はAzureの秘密鍵pemファイルをppkファイルに変換が必要です。
後日別記事で執筆予定。
移行結果
- キャラクター:〇
- 拠点:〇
- パル:〇
- ワールド:〇
- サーバー名:〇(
WorldOption.sav対応後) - マップ:拠点は表示されるが、大部分が未踏に。要検証。
まとめ
Azureへ移行したことで、ホストPCを起動しなくてもゲームを開始できるようになり、2人で遊ぶ環境がかなり快適になった。
ローカルマルチからAzure専用サーバーへの移行自体は問題なく行えた。
一方でマップが拠点以外未踏になってしまった。

一番苦戦したのは、WorldOption.sav がサーバー設定を保持していたことです。
PalWorldSettings.ini ではサーバー名を変更できていても、WorldOption.sav をコピーしているとゲーム内では Default Palworld Server のまま表示されました。
コミュニティサーバーでは同じ名前のサーバーが複数表示されるため、自分のサーバーを判別しづらくなります。
defaultで検索するとたくさんでてくる↓

同じ症状で困っている方は、WorldOption.sav をコピーせずに移行する、もしくは一度退避してからサーバーを起動してみてください。
私の環境ではこれで Default Palworld Server の問題が解消し、設定したサーバー名で正常に表示されるようになりました。

コメント