「キャラIDによるデータ管理」が理解できない人はブラウザバックでお願いします。
尚、ご理解いただけているとは思いますが、at your own riskです。
当方は一切の責任を負いません。
「理解はできないけれど、どうしてもセーブデータの移行がしたい」という方は、有志の方が公開されている下記スクリプトで行うとよいでしょう。
https://github.com/xNul/palworld-host-save-fix
なぜ書こうと思ったのか?
ネットを検索すれば数多くのセーブデータ移行方法が見つかるが、WindowsのSteamCMD版Palworldサーバーにおけるセーブデータの移行については記事が無い。
また専用サーバーやレンタルサーバーでの方法では移行出来なかったので、私が実際に行い移行に成功した方法を書いておくことにした。
下準備
-
移行先のWindowsマシンにSteamCMDをインストール
-
SteamCMDからPalworldのサーバーをインストール
login anonymous force_install_dir "d:\pal-server" app_update 2394010
-
サーバーを起動し、クライアントから接続+新規キャラを作成する
-
サーバーを停止する
この時に作成した新規キャラのファイル名をメモしておく。
移行元のセーブデータ修正
-
有志が作ったセーブデータ変換ツールをダウンロード(要Python実行環境)
https://github.com/cheahjs/palworld-save-tools -
移行元のLevel.savとキャラクターのsavファイルを上記ツールでjsonに変換する
不慮の事故を防ぐため、ファイルをどこかに一度退避して、退避先のファイルで変換しましょう
-
変換後のLevel.sav.jsonを開き、移行元のキャラデータのファイル名頭8文字の16進数を、上記下準備で作成した新規キャラの同8文字に置換する
この時、英字は小文字にしておくこと(9D5E2D92 -> 9d5e2d92)
jsonファイルが数百MBとなっているので、メモリ展開型テキストエディタで開かないとこの置換作業で詰む。
SubLime Textなら可能。VSCodeは「置換できません」となるので注意。キャラで生産したテクノロジーやパルの所有権にキャラIDが記述されているため、この置換は1000個以上になる。
さらに複数人でサーバーを使っていた場合、この作業をキャラクターの人数分繰り返す必要がある。
コーヒーでも飲みながら気長にやりましょう。 -
同様にキャラデータのjsonファイル内のキャラIDも置換する(2か所)
-
再度変換ツールを使いjsonファイルをsavファイルに変換する
移行作業
- 移行元の
PalWorldSettings.ini
を移行先にコピーする - 移行先の
GameUserSettings.ini
を開き、DedicatedServerName
を移行元のIDに置き換える - 移行元のSaveGamesフォルダを移行先にコピーする
- 移行先のLevel.savを上記で編集したLevel.savに置き換える
- 編集したキャラクターファイルを移行先にコピーする。移行先にある移行元のキャラクターファイルは消しておく
- サーバーを起動、接続しキャラ&環境が移行出来ていることを確認する
以上になります。お疲れさまでした。