きっかけ
サーバーにある Palworld のデータはローカルプレイで使える様に移動できるのか疑問だったので調べてわかった事をメモ。
ikuma0366 さんの記事を見て、この情報をベースにセーブデータを覗いてみました。
セーブデータの場所
専用サーバーで遊んだ場合
専用サーバー全体のセーブデータとプレイヤー毎のセーブデータがわかれている。
どちらもサーバー側で保存されているので、プレイヤー側でセーブデータを探しても見つからない。
専用サーバーのセーブデータ
1 | PalServer/Pal/Saved/SaveGames/0/<サーバーID>/Level.sav |
内容例
情報量が多く json 化すると 数GBの容量になる、中身を覗いてみて、わかった事だけメモ。
- 接続した事のあるプレイヤー情報
- 捕獲された後のパル情報
- 各プレイヤーの最後にいた位置
- 他にも沢山ありすぎてワロタ
- その他、プレイヤー毎のセーブデータ以外の情報全て
プレイヤー毎のセーブデータ
1 | PalServer/Pal/Saved/SaveGames/0/<サーバーID>/Players/<プレイヤーID※先頭8文字>以降は0.sav |
- ファイル名の例
1
813399F0000000000000000000000000.sav
813399F0 という8文字目までを見れば ok
内容例
こっちは情報量が比較的少なく、json 化しても 数KBの容量、中身を覗いてみて、わかった事だけメモ
- キャラメイクの設定値
- レシピ アンロック情報(アンロックした事があるレシピのみ記載)
- ボスの討伐状況(倒した事があるパルのみ記載)
- パルを捕まえた数(捕まえた事があるパルのみ記載なので全て1以上)
- 手記の入手状況(入手した事がある手記のみ記載)
このファイル内にプレイヤー名の記載はないため Level.sav から確認するのが確実
コンプリートしたデータを一つ用意できればコンプリートしたデータを他のプレイヤーにコピーする事はできそう
ソロで遊んだ場合
以下のパスにセーブデータが保存されている様ですが、この記事では、この中のセーブデータについては触れてないです。
1 | C:\Users\noma3\AppData\Local\Pal\Saved\SaveGames\<ワールドのID> |
.sav の中身の見方
.sav は Unreal Engine のゲームで使われるセーブデータではあるものの、Unreal Engine 経由でないと直接中身を見る事が出来ないので、
有志が作成したツール(convert.py)を使って、json 化する必要がある
また、Unreal Engine のゲームは .json をセーブデータとして扱わないので、もしセーブデータを書き換えて使いたいなら .sav に戻してやる必要がある。
このツールの動作には python 3.9 以上が必要との事、一応 3.12 でも動作した。
json 化の方法
1 | convert.py "savファイルのパス" --to-json |
.sav 化の方法
1 | convert.py ".jsonファイルのパス" --from-json |
おまけ
Level.sav.json からプレイヤーを探す正規表現
vim で使った正規表現なので サクラエディタ だと少し変わるかも。
1 | IsPlayer": {\n.*\": true |
これで接続したことのあるプレイヤー名を確認した。
筆者が管理してるサーバーのプレイヤーID.sav 対応表
ファイル名 | ユーザー名 |
---|---|
813399f0*.sav | noma |
65332aeb*.sav | KOB |
06d842d5*.sav | sakura |
e74926a0*.sav | yocha-424 |
120f57b4*.sav | pia24mo |
e7574940*.sav | にゃんごろげ |
98e4c6ac*.sav | せつこ |
d3a7451e*.sav | mavu33 |