ドキュメント › Storia
安全性と互換性
Storia を入れると何が変わり、何が変わらないのか。データの扱い、プレイヤーへの影響、バニラやプラグインとの互換性をまとめました。
Storia を入れる前に知っておきたいことを 1 ページにまとめました。結論から言うと、Storia 独自の機能は バニラと同じ結果になるように作られていて、ワールドは普通の Minecraft 形式のまま保存されます。 いつでも Paper や Folia に戻せます。
ひと目で#
| 気になること | 答え |
|---|---|
| ワールドは独自形式になる? | なりません。普通の Anvil 形式(リージョンファイル)のままです。 |
| Paper・Folia・バニラに戻せる? | 戻せます。ワールドフォルダをそのまま使えます。 |
| 地形は変わる? | 変わりません。同じシード値なら、バニラとまったく同じ地形になります。 |
| レッドストーンやモブの動きは? | Storia 独自の変更は同じ結果を保ちます。違いが出るのは、もとになった Folia の仕様の部分です。 |
| プレイヤーの情報を外部に送る? | 送りません。送るのは、サーバーの台数などの匿名の統計(bStats)だけで、オフにできます。 |
| プラグインは動く? | Folia に対応したプラグインだけが動きます。 |
データの扱い#
ワールドとプレイヤーデータ#
- ワールド、プレイヤーデータ、進捗、統計は、普通の Minecraft と同じ形式・同じ場所に保存されます。 Storia をやめたくなったら、ワールドフォルダを Paper などのサーバーにそのまま持っていけます。
- Storia Cluster では、ワールドは Relay の
cluster-world/に、これも普通の形式で保存されます。 Cluster をやめるときは、このフォルダを 1 台の Storia に置くだけです。 - ファイルはいったん一時ファイルに書いてから置き換えるので、途中で止まっても書きかけのファイルは残りません。
外部への送信#
プレイヤーの名前・IP アドレス・チャット・ワールドの中身は、どこにも送りません。送るのは次の 2 つだけです。
| 送信 | 内容 | 止め方 |
|---|---|---|
| bStats の統計 | サーバーの台数・人数、Storia・Minecraft・Java のバージョン、OS、CPU のコア数、単体か Cluster か、RAM ワールドを使っているか。どれも匿名で、30 分に 1 回送ります | サーバー:plugins/bStats/config.yml の enabled: false。プロキシ:plugins/bStats/config.txt の enabled=false |
| バージョン確認 | /version を実行したときだけ、GitHub に新しいリリースがあるかを確認 |
実行しなければ送信しません |
集まった統計は、誰でも見られます:Storia・Storia Proxy。 26.2-4 までは、Folia・Velocity の統計として送っていました。Storia Relay は何も送りません。
Cluster の通信#
- ワーカー・Relay・プロキシの間の通信は、決めた合言葉(
secret)ですべて暗号化・認証されます(AES-256-GCM)。 合言葉そのものは送られません。詳しくは 暗号化とセキュリティ。 - この通信には、チャンク・インベントリ・位置などワールドのすべてが含まれます。Relay とワーカーは、自分で管理しているマシンで 動かしてください。
プラグインの共有データ#
プラグイン API で共有したデータは、Relay(単体なら storia-shared/)に暗号化せずにファイルとして保存されます。
パスワードなど秘密の情報を入れる場合は、プラグイン側で暗号化してください。
障害が起きたとき#
| 起きたこと | どうなるか |
|---|---|
| サーバーのプロセスが落ちた | 最後の自動保存以降の変更が失われます(普通のサーバーと同じ)。RAM ワールドは、次の起動時に RAM 上のコピーから復旧します。 |
| マシンの電源が落ちた(RAM ワールド使用中) | RAM の内容が消え、最後の同期以降の変更が失われます。同期の間隔は ram-world.sync-interval-seconds(初期値 5 分)です。 |
| Relay が止まった(Cluster) | ワーカーは動き続け、書き込みを cluster-spool/ に貯めて、Relay が戻ったら送ります。止まっている間は、新しいプレイヤーはログインできません。 |
| ワーカーが 1 台止まった(Cluster) | そのワーカーのプレイヤーは切断されます。ワールドは Relay にあるので、ほかのワーカーで入り直せます。/stop で止めた場合は、先にほかのワーカーへ移すので切断されません。 |
| Relay からプレイヤーデータを読めなかった(Cluster) | ログインを断ります。空のデータで上書きして持ち物を消すことはありません。 |
どの場合でも、定期的なバックアップは必要です。バックアップはディスク上のワールド(Cluster なら Relay の cluster-world/)から取ります。
プレイヤーへの影響#
変わらないこと#
- クライアントの Mod は要りません。 普通の Minecraft 26.2 のクライアントで入れます。
- 地形・ブロック・アイテム・戦闘・クラフトはバニラと同じです。地形生成の高速化は、バニラと 1 ビットも違わない結果になることを確認しています。
- 近くにいるプレイヤーは、Cluster でも常に同じサーバーで動きます。一緒に遊んでいる相手が別のサーバーに分かれることはありません。
変わること(混んでいるときだけ)#
| 機能 | いつ | プレイヤーから見た変化 | オフにするには |
|---|---|---|---|
| Tick Guard | 1 つの場所が重すぎるとき | 密集したモブ(1 チャンクに 16 体以上)の反応が少し遅れる。プレイヤーの近く 8 ブロック以内のモブは変わらない | tick-guard.enabled: false |
| プレイヤーごとの予算 | 重い場所で、エリトラなど高速で移動しているとき | その人の描画距離が短くなる。速度が落ちれば戻る | player-budget.enabled: false |
| メモリの保護(プレイヤーごとの予算) | Java のヒープが 85% を超えたとき | 全員の描画距離が 1 段階ずつ短くなる | player-budget.enabled: false |
| Cluster の移動 | ワーカー間を移るとき | 26.1・26.2 のクライアントは何も起きない。ViaVersion 経由の古いクライアントは短い読み込み画面が出ることがある | Cluster を使わない |
サーバーに余裕があるときは、これらの機能は何もしません。
バニラとの互換性#
Storia 独自の変更#
Storia が加えた変更は、どれもバニラと同じ結果を保つように作られています。
- 地形生成の高速化:同じシード値なら、同じ地形・同じ構造物になります。
- エンティティの押し合いの高速化:押し合いの結果は同じです。
- Tick Guard:ブロック(レッドストーン、ピストン、ホッパー、作物)には一切触れません。重いときに、密集したモブが 次の行動を考え直す回数を減らすだけです。移動・重力・水流・当たり判定は毎 tick 動きます。
Folia から受け継いだ違い#
Storia は Folia のフォークなので、Folia とバニラの違いはそのまま受け継ぎます。主なものは次のとおりです。
- ワールドを「リージョン」に分けて並列に動かすので、離れた場所どうしの処理の順番がバニラと同じとは限りません。 普通の遊び方で違いに気づくことはほとんどありませんが、非常に長い距離をまたぐ装置などでは、動きが変わることがあります。
/scoreboard・/teamなど、一部のコマンドがありません。- 詳しくは Folia の README を参照してください。
Cluster での違い#
- プラグインはワーカーごとに別々に動きます。プラグインのデータを共有するには プラグイン API を使います。
- 時刻・天気・ゲームルール・スコアボード・地図は、全ワーカーで共有されます。詳しくは 複数サーバーで 1 つのワールド。
プラグインとの互換性#
- Folia に対応したプラグイン(
plugin.ymlにfolia-supported: true)だけが動きます。Paper 専用のプラグインは動きません。 - Folia に対応していれば、Storia のために書き換える必要はありません。
- 詳しくは プラグインの互換性。
試すときのおすすめ#
- 今のワールドのバックアップを取る。
- コピーしたワールドで Storia を起動し、使っているプラグインと装置が動くかを確かめる。
- 問題がなければ本番に移す。合わなければ、ワールドをそのまま元のサーバーに戻す。
おかしな動きを見つけたら、GitHub で教えてください。