Open5
Palworld Dedicated Serverのセーブデータをローカルでも利用できるようにする
参考にした記事
大まかな流れは以下と認識
- 自分のUIDを特定する
- 各セーブデータに記載されている自分のUIDをローカル用のUIDに修正する
palworld-save-toolsのインストール
セーブデータはそのままでは弄れないので以下のツールを利用する
環境構築が面倒だったので開発者向け手順でインストールする
pipenv install palworld-save-tools
自分のUIDを特定する
UIDの特定はjqとかでスマートやろうとしたけどjsonが巨大すぎて失敗
大人しく目grepした
プレイヤー名が日本語ならunicodeに変換しなきゃいけないっぽい
自分はそうではなかったのでその作業はやってない
PLAYER_NAME=<自分のプレイヤー名>
pipenv run palworld-save-tools Level.sav
grep -5 ${PLAYER_NAME} Level.sav.json
こんな感じのデータの見つかる
{
"player_uid": "xxxxxxxxx-0000-0000-0000-000000000000",
"player_info": {
"last_online_real_time": 26879912250000,
"player_name": "<自分のプレイヤー名>"
}
},
各セーブデータに記載されている自分のUIDをローカル用のUIDに修正する
00000000-0000-0000-0000-000000000001
がローカル用のUID
PLAYER_ID=<自分のUID>
sed -i s/${PLAYER_ID}/00000000-0000-0000-0000-000000000001/g Level.sav.json
pipenv run palworld-save-tools Level.sav.json
pipenv run palworld-save-tools Players/${PLAYER_ID}.sav
sed -i s/${PLAYER_ID}/00000000-0000-0000-0000-000000000001/g Players/${PLAYER_ID}.sav.json
pipenv run palworld-save-tools Players/${PLAYER_ID}.sav.json
mv Players/${PLAYER_ID}.sav Players/00000000000000000000000000000001.sav