データフォルダを開く
サーバーのデータフォルダを新しいチャットの作業フォルダとして選択します。エージェントはlist_dirでフォルダを一覧表示するため、何も触れる前にSaves、Backups、Modsを確認できます。Windows PCでは、サーバーを別のデータパスで起動していない限り、デフォルトの場所はユーザーのAppData\Roamingフォルダ内のVintagestoryDataフォルダです。
ゲームのアップデートが公開され、ワールドを失うことなくMODとワールドを更新したいと考えています。Vintage Storyサーバーの設定を変更したりMODを追加したりすることは、ワールドの読み込みを停止させる可能性がある2つの変更です。そのため、このワークフローは決まった順序でそれらを実行します:セーブデータをコピーする、1つ変更する、サーバーを起動してログを読み取る、次に1つ変更する。Cascadia Mergeはファイルの作業を行い、各結果をカードとして表示します。すべての決定はあなたが下し、ファイルが変更されている間はサーバーを停止したままにします。パスを入力する時間ではなく、差分とログを読む時間に時間を費やし、変更する前に各MODのバージョンを記録してください。そうすれば、そのリストが更新日の記録として役立ちます。
サーバーのデータフォルダを新しいチャットの作業フォルダとして選択します。エージェントはlist_dirでフォルダを一覧表示するため、何も触れる前にSaves、Backups、Modsを確認できます。Windows PCでは、サーバーを別のデータパスで起動していない限り、デフォルトの場所はユーザーのAppData\Roamingフォルダ内のVintagestoryDataフォルダです。
サーバーを停止した状態で、エージェントはバックアップスクリプトを使ってSavesフォルダをBackupsにコピーします。カードで終了コードを読み、Backupsフォルダの2回目のlist_dirを求め、次に進む前に新しいコピーが本当にそこに存在することを確認します。
serverconfig.jsonを編集するか、1つのMODを置き換えます。両方を同時に実行しないでください。エージェントは設定変更の差分を表示し、Ask firstモードでそれを受け入れるか拒否します。手動で置き換えるMODは.zipファイルとしてModsフォルダに配置され、1ラウンドで変更されるのは1つのファイルだけです。
自分のスクリプトでサーバーを起動し、エージェントにログ内の失敗したMODを検索させ、ゲームから接続します。何かが壊れた場合、どの変更が原因だったかがわかり、開始時に作成したコピーからそのファイルを移動するか、その行を復元できます。
Mods/見つかりましたMods/examplemod/modinfo.json読み取りversion Mods/3件の一致mod-list.txt保存済み{
"ServerName": "Friends World",
"Port": 42420,
"MaxClients": 10,
"Password": null,
"AllowPvP": false,
"AdvertiseServer": false
}これは完全なファイルではなく、プレースホルダー値のみを含むserverconfig.jsonの抜粋です。ゲームポートは42420(TCP)で、nullパスワードはパスワードが設定されていないことを意味するため、インターネットにワールドを公開する前にパスワードを追加してください。サーバーが停止している間のみ実際のファイルを編集し、Savesフォルダの隣に自分のコピーを保管してください。
変更する前にまず確認することから始めましょう。エージェントはlist_dirとglobを使ってデータフォルダ内のModsフォルダを見つけ、read_fileを使ってフォルダ内にある各MODのmodinfo.jsonを開き、write_fileを使って名前とバージョンのプレーンリストを作業フォルダに保存します。ホストサーバー上のMODについてサポートが必要な場合は、エージェントがアクセスできるファイルにのみ作業できるため、まずそのデータフォルダに到達できることを確認してください。リストを印刷します。プレイヤーが持っているMODと比較し、サーバーとプレイヤーが同じMODとバージョンを必要とするため、更新するものを決定します。まだ何も変更されておらず、更新前に何がインストールされていたかの記録があり、後で元に戻す必要がある場合に役立ちます。
ワールドはSavesフォルダ内の1つの.vcdbsファイルなので、ゲームのアップデート、MODの変更、設定の変更の前にそのフォルダをコピーしてください。まずサーバーを停止します。エージェントはcopy_fileを使ってワールドファイルをBackupsフォルダに配置し、Shellは自分のバックアップスクリプトを実行し、カードで実際の終了コードを報告します。一度も復元されていないコピーは単なる推測に過ぎないため、予備のフォルダに一度復元し、開いてワールドが存在することを確認してください。そうしてから、ファイルを変更する作業部分に進み、変更が失敗した場合に戻れる安全な方法を持ちます。何も削除せず、コピーなしでセーブデータは削除されません。フォルダに複数のワールドがある場合は、それらのいずれも見逃されないように、Savesフォルダ全体をコピーします。
今、1つのことだけを変更します。Vintage Storyサーバーの設定を調整するには、エージェントはedit_fileをserverconfig.jsonに対して使用し、Ask firstモードで差分を表示します。MODを更新するには、公式MODデータベースからのみ新しい.zipをModsフォルダに自分で配置します。MODをインストールした後ワールドが読み込まれない場合、最後の変更が疑わしく、そのファイルを移動することで元に戻すことができます。ここで停止してください。最初のMODがテストされる前に2つ目のMODを追加しないでください。一度に2つの変更を行うと原因が隠れてしまいます。Plan onlyは、実行せずにまず手順を書き出すことができるため、更新日のチェックリストを2番目の管理者も読めるようにしたい場合に便利です。
自分のスタートスクリプトでサーバーを起動します。Shellがそれを実行し、実際の終了コードを表示し、その後grepがサーバーログからfailedとerrorの単語を検索します。専用サーバーのトラブルシューティングはそのログから始まり、カードは一致する行をすべてリスト表示するため、順番に読むことができます。どのログファイルが最新かわからない場合はglobがログファイルを見つけます。次に、ゲームから接続してワールドを歩き回ります。ログがクリーンで、2番目のプレイヤーが接続した後にのみ、変更が完了したと受け入れます。クリーンでない場合は、1つ前のステップに戻り、最後ではなく最初のエラーを読み、ワールド自体が破損した場合はセーブデータのバックアップを復元します。