サーバー間のインベントリ同期
ネットワークサーバー間でインベントリ、体力、効果を転送する方法、これが必要な場面、アイテムが失われる可能性がある理由を説明します。
更新日 2026年8月13日
ネットワークでは、各サーバーが独自のプレイヤーデータを持ちます。サバイバルとロビーのインベントリは別物です。これらを同期する必要が生じることがあります。
必要なケース
- 1つのサバイバルワールドに複数のサーバーを配置する場合(負荷分散)。
- リソースワールドを別サーバーに置く場合。
不要なケース
- ロビーとミニゲーム:これらのインベントリは仕様として別々です。
- クリエイティブサーバー:サバイバルと同期するとアイテムの複製が可能になります。
実現方法
同期プラグイン(MySQLPlayerDataBridge、HuskSync など)は、インベントリ、エンダーチェスト、体力、空腹度、経験値、エフェクトを MySQL または Redis に保存し、切り替え時に転送します。
主なリスク
移行中に接続が切断されると、アイテムの消失や複製が発生します。リスクを抑えるためのルール:
- プラグインが対応している場合は、MySQL だけでなく Redis を使用してください。
- 移行中にサーバーを停止しないでください。データ転送中にネットワーク内のサーバーを1台停止させることは、消失の最も一般的な原因です。
- インベントリのログを有効にしてください。これがないと、苦情が来ても調査できません。
- データベースをバックアップしてください — データベースのダンプ。
代替案
多くの場合、同期するよりも、すべてを1つのゲームサーバーに統合し、サバイバルを分割しないほうが簡単です。分割が正当化されるのは、実際にパフォーマンスの限界に達したときだけです — 100人以上の同時接続に対応するサーバー。
Minecraftホスティングオフラインでもサーバーが稼働サーバーを作成
