【マイクラ】オフラインプレイヤーデータとは?保存場所・仕様・注意点【Java版】

この記事はJava版のワールド・サーバーデータを触る方向けです
統合版(BE)とは保存形式や場所が違うので注意してください
プレイヤーデータを直接触る前に、必ずワールドのバックアップを取ってください

こんにちは。ゆずかきです。

マイクラJava版でサーバーを触っていると、たまに、

「ログインしたら持ち物が消えた」
「同じ名前なのに別人扱いになった」
playerdataフォルダにUUIDっぽいファイルがいっぱいあるけど、これ何?」

…みたいなことが起きることがあります。

これ、ワールドが壊れたというより、プレイヤーデータの紐づき先が変わっているだけのケースがけっこうあります。
特に、サーバーのonline-modeを切り替えた時や、オフラインモードのサーバーを運用している時に起きやすいです。

この記事では、オフラインプレイヤーデータとは何か?どこに保存されているのか?触る時に何を注意すればいいのか?を、できるだけ実用目線で整理していきますね。

この記事を読めば、次のことが分かります。

  • Java版のプレイヤーデータの保存場所が分かります👍
  • online-mode=true/falseでUUIDが変わる理由が分かります👌
  • 持ち物・経験値・エンダーチェスト・進捗などを移行する時の考え方が分かります
  • サーバー管理でやりがちな事故を避けやすくなります(^^♪

それでは、やっていきましょう!

※本記事はMinecraft Java版のワールド保存形式を前提に解説しています。
※ファイルを直接編集する場合は、必ずバックアップを取ってから作業してください。


目次

1. オフラインプレイヤーデータとは?
2. プレイヤーデータはどこに保存される?
3. playerdataフォルダの中身を理解する
4. オンラインUUIDとオフラインUUIDの違い
5. online-modeを切り替えると何が起きる?
6. オフラインモード運用で注意すべきこと
7. プレイヤーデータを移行する時の基本手順
8. データを直接編集する前にやること
9. よくあるトラブルとチェックポイント
10. まとめ
11. 引用・参考文献

この記事で分かること
・Java版のplayerdatastatsadvancementsの役割
・オフラインモードでUUIDが変わる理由
・データ移行時に触るべきファイルと注意点


1. オフラインプレイヤーデータとは?

まず最初に、言葉を整理しておきますね。

オフラインプレイヤーデータとは、簡単に言うと、オフラインモードのサーバーで作られたプレイヤー個別データのことです。

ここでいう「オフライン」は、シングルプレイでネットに繋がっていないという意味ではなく、サーバー設定の、

online-mode=false

のことを指している場合が多いです。

Java版サーバーには、接続してきたプレイヤーをMinecraftのアカウント情報と照合する設定があります。
通常は、

online-mode=true

で運用します。
この状態だと、サーバーは接続プレイヤーをMinecraftアカウントとして認証し、そのアカウント固有のUUIDにプレイヤーデータを紐づけます。

一方で、online-mode=falseにすると、サーバーはMinecraftアカウント認証を行いません。
その代わり、プレイヤー名を元にした別のUUIDでデータを作ります。

つまり、同じ「ゆずかき」という名前で入っているように見えても、

  • オンラインモードで入った時のUUID
  • オフラインモードで入った時のUUID

は別物になります。

ここが一番大事です。

見た目のプレイヤー名が同じでも、UUIDが違えばマイクラ側では別人扱いになります。

その結果、サーバー側では、

  • 持ち物が初期化されたように見える
  • 経験値が消えたように見える
  • エンダーチェストの中身が見えない
  • 進捗や統計が別扱いになる
  • 権限プラグインや経済プラグインでも別人扱いされる

ということが起きます。

体験談
サーバーの設定を触った後に「荷物が全部消えた!」と焦ることがありますが、実際には旧UUID側の.datファイルに残っているだけ、というケースもあります。
なので、まずは落ち着いてplayerdataフォルダを確認しましょう。


2. プレイヤーデータはどこに保存される?

Java版のワールドデータは、ワールドごとのフォルダにまとまっています。
その中に、プレイヤー個別データや進捗、統計データが保存されています。

シングルプレイなら、基本的には下記のような場所です。

Windows:
%appdata%\.minecraft\saves\ワールド名\

macOS:
~/Library/Application Support/minecraft/saves/ワールド名/

Linux:
~/.minecraft/saves/ワールド名/

ただし、シングルプレイの自分自身の状態は、playerdataではなくlevel.dat内のPlayerタグに保存される場合があります。
この記事で主に扱うのは、Java版サーバーやマルチプレイで使われるplayerdata/UUID.datです。

マルチサーバーなら、server.jarを置いているサーバーフォルダ内のワールドフォルダです。
初期設定のままなら、たいていは、

サーバーフォルダ/world/

にあります。

ただし、server.propertiesの、

level-name=world

を変更している場合は、その名前のフォルダがワールドフォルダになります。
例えば、

level-name=yuzukaki_world

なら、

サーバーフォルダ/yuzukaki_world/

が対象です。

👇代表的な保存場所を表にすると、こんな感じです。

場所 主な役割 触る場面
playerdata マルチプレイ時の持ち物・経験値・位置・エンダーチェストなど サーバー上のプレイヤー状態を移行したい時
stats 統計データ 採掘数・移動距離などの記録を移したい時
advancements 進捗・レシピ解放 進捗状況を移したい時
level.dat ワールド全体の設定・シングルプレイのプレイヤー情報など 通常は直接触らない


サーバーデータで初心者さんがまず見るべきなのは、playerdataフォルダです。
ここに、

UUID.dat

という形式でプレイヤーごとのデータが保存されています。

例としては、こんなファイル名です。

069a79f4-44e9-4726-a5be-fca90e38aaf5.dat

この長い文字列がUUIDです。
マイクラはプレイヤー名ではなく、このUUIDを見て「この人のデータはこれ」と判断しています。


3. playerdataフォルダの中身を理解する

playerdataフォルダの.datファイルには、プレイヤーの状態がNBT形式で保存されています。
普通のテキストファイルではないので、メモ帳で開いて編集するものではありません。

中に入っている代表的な情報は、下記のようなものです。

  • 現在いるディメンション
  • 現在位置
  • 体力や満腹度
  • 経験値レベル
  • インベントリの中身
  • 装備品
  • エンダーチェストの中身
  • リスポーン地点
  • ゲームモードに関係する能力情報

特に大事なのは、持ち物とエンダーチェストがここに入っているという点です。

「オンラインモードを切り替えたらアイテムが消えた」と感じる時、ワールド内のチェストや建築物が無事なら、まずこのplayerdataの紐づきズレを疑ってください。

体験談
筆者も最初、playerdataフォルダのUUIDファイルを見た時は「どれが誰のデータなの?」となりました。
でも仕組みは単純で、UUIDごとにプレイヤーの持ち物や状態が分かれているだけです。

ただし、注意点があります。

playerdataだけを移せば全部戻る、とは限りません。
進捗や統計も残したいなら、次のフォルダも一緒に確認しましょう。

advancements/UUID.json
stats/UUID.json

つまり、プレイヤーデータを丁寧に移行するなら、基本はこの3点セットです。

playerdata/UUID.dat
advancements/UUID.json
stats/UUID.json

この3つのUUIDをそろえると、持ち物・進捗・統計をかなり自然に移せます。

※プラグインサーバーの場合は、これに加えてプラグイン側のデータベースや設定ファイルも確認が必要です。


4. オンラインUUIDとオフラインUUIDの違い

ここがこの記事の核心です。

Java版のプレイヤーデータは、基本的にUUIDへ紐づきます。
ただし、このUUIDには大きく分けて2種類あります。

  • Minecraftアカウントに紐づくオンラインUUID
  • プレイヤー名から生成されるオフラインUUID

オンラインモードのサーバーでは、プレイヤーはMinecraftアカウントとして認証されます。
そのため、プレイヤー名を変更しても、基本的には同じアカウントのUUIDとして扱われます。

一方、オフラインモードでは、Minecraftアカウント認証をしないため、サーバー側がプレイヤー名からUUIDを作ります。
代表的には、

OfflinePlayer:プレイヤー名

という文字列を元にUUIDを生成する仕組みです。

つまり、オフラインモードでは、名前が変わるとUUIDも変わると考えておいた方が安全です。
大文字・小文字の表記揺れも事故原因になりうるので、オフラインモード運用では名前表記を統一するのが大事です。

👇違いを整理します。

種類 作られ方 主な特徴
オンラインUUID Minecraftアカウントに紐づく 名前変更をしても同じプレイヤーとして扱いやすい
オフラインUUID プレイヤー名を元に生成される 名前や表記が変わると別人扱いになりやすい


この仕様を知らないままonline-modeを切り替えると、かなり焦ります。

特に、

online-mode=false

でしばらく遊んだサーバーを、後から、

online-mode=true

に戻すと、プレイヤーのUUIDが変わります。
その結果、サーバーは新しいUUIDの.datファイルを作り、「新規プレイヤーが来た」と判断します。

重要
持ち物が消えたように見えても、古いUUID側の.datが残っていれば復旧できる可能性があります。
すぐにワールドを上書きしまくるより、まずバックアップを取って、旧ファイルを探しましょう。


5. online-modeを切り替えると何が起きる?

online-modeは、Java版サーバーのserver.propertiesにある設定です。

online-mode=true

なら、サーバーは接続プレイヤーをMinecraftアカウントとして認証します。
通常の個人サーバーなら、基本はこの状態で運用するのがおすすめです。

反対に、

online-mode=false

にすると、サーバーはMinecraftアカウント認証を行いません。
この状態だと、名前だけで接続者を扱うため、運用上のリスクが増えます。

online-modeを途中で切り替えると、起きやすいことは下記です。

  • プレイヤーの持ち物が消えたように見える
  • 初期スポーン地点から始まる
  • 経験値や装備が別扱いになる
  • エンダーチェストの中身が見えなくなる
  • 進捗がリセットされたように見える
  • 統計データが別ファイルになる
  • ホワイトリストやOP権限のUUIDが合わなくなる
  • 権限・経済・保護系プラグインで別人扱いになる

ここで大切なのは、ワールドの建築物が消えたわけではないということです。

ブロックやチェストなどのワールド本体は、基本的にregionなどのワールドファイル側にあります。
一方で、プレイヤーの持ち物や経験値はplayerdata側です。

なので、

「拠点は残っているけど、手持ちだけ初期化された」

という場合は、かなりの確率でプレイヤーデータ側の問題です。

online-modeを切り替える前にやること

サーバー設定を変更する前に、最低限これだけはやってください。

  • サーバーを停止する
  • ワールドフォルダを丸ごとコピーしてバックアップする
  • playerdatastatsadvancementsを確認する
  • 変更前後のUUIDをメモする
  • プラグインを使っている場合は、プラグインのデータ保存場所も確認する

特に、サーバーを起動したままファイルを触るのはおすすめしません。
読み書きのタイミングが重なると、思わぬ上書きや巻き戻りが起きることがあります。


6. オフラインモード運用で注意すべきこと

ここは少し厳しめに書きますね。

普通の個人サーバーなら、基本的にonline-mode=trueで運用する方が安全です。

online-mode=falseは、認証を切る設定です。
つまり、サーバーは「本当にそのMinecraftアカウントの持ち主か?」を確認しません。

そのため、環境によっては、他人が別のプレイヤー名で入ってくるリスクがあります。
小規模な身内サーバーでも、ポート開放して外部から入れる状態にしているなら、油断しない方がいいです。

特に注意したいリスク

  • 他人が管理者名を名乗って入る
  • 他人がメンバー名を名乗ってアイテムを抜く
  • OP権限やホワイトリストの管理が崩れる
  • プラグインのUUID管理がズレる
  • 名前変更や表記揺れでデータが分裂する

もちろん、プロキシサーバー構成などで一時的にオフラインモードを使うケースもあります。
ただしその場合でも、単純にonline-mode=falseへ変えるだけではなく、プロキシ側の認証・IP転送・ファイアウォール設定まで含めて組む必要があります。

初心者さん向けの結論
よく分からないままonline-mode=falseにするのはおすすめしません。
友達と遊ぶだけのサーバーでも、基本はonline-mode=trueで大丈夫です。

オフラインモードでどうしても運用するなら

どうしても必要があってオフラインモードを使うなら、最低限、下記は確認しておきましょう。

  • 外部から自由に接続できる状態にしない
  • ホワイトリストや認証系の仕組みを用意する
  • プレイヤー名の表記を統一する
  • 定期的にワールドをバックアップする
  • playerdataだけでなくプラグインデータも保管する
  • online-modeを気軽に切り替えない

特に、プラグインサーバーでは注意です。
権限、経済、土地保護、インベントリ管理などは、UUIDをキーにしてデータを保存していることが多いです。

バニラのplayerdataを直しても、プラグイン側のUUIDがズレたままだと、

「持ち物は戻ったけど権限がない」
「保護した土地が自分のものにならない」
「お金だけ消えている」

みたいなことが起きます。


7. プレイヤーデータを移行する時の基本手順

ここでは、オンラインモード・オフラインモード切り替え後に、旧データを新UUIDへ移したい時の考え方を紹介します。

※実作業は環境差が大きいので、必ずバックアップを取ってから行ってください。

1. まずサーバーを停止する

最初に必ずサーバーを停止します。
起動中にplayerdataを触るのは避けましょう。

stop

サーバーコンソールからstopで正常終了してから作業します。

2. ワールドフォルダを丸ごとバックアップする

playerdataだけではなく、ワールドフォルダを丸ごとコピーしてください。

world_backup_作業日/

のような名前で別フォルダに退避しておくと安心です。

体験談
「少し名前を変えるだけだから大丈夫」と思って作業すると、だいたい後で不安になります。
バックアップがあるだけで、かなり安心できます。これは本当に大事です。

3. 新旧UUIDを確認する

次に、移行元と移行先のUUIDを確認します。

よくあるパターンは、

  • 旧UUID:オフラインモード時代のUUID
  • 新UUID:オンラインモードに戻した後のUUID

です。

一度サーバーへログインすると、新しいUUIDの.datファイルが作られることがあります。
そのため、playerdataフォルダ内の更新日時を見ると、新しく作られたファイルを見つけやすいです。

playerdata/旧UUID.dat
playerdata/新UUID.dat

この2つを見分けます。

4. 旧UUIDのファイルを新UUID名へコピーする

基本の考え方は、旧データを新UUID名へコピーすることです。

playerdata/旧UUID.dat
↓ コピーして名前変更
playerdata/新UUID.dat

この時、いきなり上書きせず、新UUID側のファイルも退避しておくと安全です。

例:

新UUID.dat
↓
新UUID.dat.bak

そのうえで、旧UUIDの.datを新UUID名に変更して置き換えます。

5. 進捗と統計も必要なら同じように移す

持ち物だけで良いならplayerdata中心で見ればOKです。
ただ、進捗や統計も残したいなら、下記も同じように確認します。

advancements/旧UUID.json
stats/旧UUID.json

これを、

advancements/新UUID.json
stats/新UUID.json

へコピー・リネームします。

6. サーバーを起動して確認する

作業が終わったら、サーバーを起動してログインします。

確認するポイントは下記です。

  • 持ち物が戻っているか
  • 装備が戻っているか
  • 経験値が戻っているか
  • エンダーチェストが戻っているか
  • 進捗が戻っているか
  • 統計が戻っているか
  • 位置がおかしくないか

位置データも一緒に移るため、ログイン場所がネザーやエンドになることもあります。
危なそうなら、あらかじめ管理者が安全な場所を確保しておくと良いです。


8. データを直接編集する前にやること

playerdata.datファイルはNBT形式です。
そのため、普通のテキストエディタで編集するものではありません。

どうしても中身を直接確認したい場合は、NBTを扱えるツールを使うことになります。
ただし、初心者さんには、まずファイル名のコピー・リネームまでにしておくのをおすすめします。

作業前チェックリスト

  • [ ] サーバーを停止したか?
  • [ ] ワールドフォルダを丸ごとバックアップしたか?
  • [ ] 旧UUIDと新UUIDを間違えていないか?
  • [ ] playerdataだけでなくadvancementsstatsも確認したか?
  • [ ] プラグインサーバーならプラグインデータも確認したか?
  • [ ] 作業後にログインテストする人数を絞ったか?

特に、複数人サーバーでは、全員分を一気に直そうとしない方がいいです。
まず1人分だけ移して、正しく戻るか確認しましょう。

おすすめ手順
1人分で成功確認 → 2人目以降を同じ手順で対応、が安全です。

触らない方がいいファイルもある

ワールドフォルダ内には色々なファイルがありますが、意味が分からないものは触らない方がいいです。

特に、

region/
entities/
poi/
level.dat
session.lock

あたりは、今回の「持ち物が別人扱いになった」問題では、基本的に直接編集しません。

regionは地形や建築物、entitiesはエンティティ、poiは村人の職業ブロックやベッドなどに関係するデータです。
ここを不用意に触ると、プレイヤーデータどころではなく、ワールド全体に影響が出る可能性があります。


9. よくあるトラブルとチェックポイント

ここからは、実際に起きやすいトラブル別に整理しますね。

ログインしたら初期スポーンになった

まず疑うのはUUID違いです。

  • online-modeを最近変えたか?
  • プレイヤー名を変えたか?
  • オフラインモードで入ったことがあるか?
  • playerdataに似た更新日時のファイルが複数ないか?

このあたりを確認してください。

新しいUUIDの.datが作られているだけなら、旧UUID側のデータを移せば戻せる可能性があります。

持ち物は戻ったけど進捗が戻らない

playerdataだけを移した可能性があります。
進捗は、

advancements/UUID.json

側にあります。

旧UUIDのadvancementsファイルも、新UUID名へコピー・リネームして確認しましょう。

統計だけ戻らない

統計データは、

stats/UUID.json

です。

採掘数、移動距離、モブ討伐数などの記録を残したい場合は、ここも忘れずに移します。

エンダーチェストの中身がない

エンダーチェストの中身は、プレイヤーデータ側に保存されています。
なので、playerdata/UUID.datの対応がズレている可能性が高いです。

旧UUIDの.datを見つけて、新UUID名にコピーしてみましょう。

※作業前バックアップは必須です。

ホワイトリストに入れているのに入れない

オンラインモードとオフラインモードでUUIDが変わるため、ホワイトリスト側の情報が古いUUIDを見ている可能性があります。

whitelist.jsonを使っているサーバーでは、対象プレイヤーを一度削除して追加し直す方が早い場合があります。

また、OP権限についても、

ops.json

にUUID付きで保存されています。
UUIDが変わっている場合は、再付与が必要になることがあります。

プラグインの権限やお金だけ戻らない

これはバニラのplayerdataではなく、プラグイン側のデータ問題です。

権限プラグイン、経済プラグイン、土地保護プラグインなどは、独自のフォルダやデータベースにプレイヤーデータを持っていることがあります。

例えば、

plugins/プラグイン名/

の中に、UUIDごとのデータが保存されていることがあります。

この場合、バニラのplayerdataを直しても、プラグイン側ではまだ別人扱いのままです。
プラグインの仕様に合わせて移行する必要があります。

チェックポイントまとめ

  • [ ] online-modeを切り替えていないか?
  • [ ] 旧UUIDと新UUIDを把握しているか?
  • [ ] playerdata.datを移したか?
  • [ ] advancements.jsonも移したか?
  • [ ] stats.jsonも移したか?
  • [ ] whitelist.jsonops.jsonも確認したか?
  • [ ] プラグインデータもUUID管理になっていないか?
  • [ ] サーバーを停止してから作業したか?
  • [ ] 作業前バックアップを取ったか?

10. まとめ

以上、マイクラJava版のオフラインプレイヤーデータの保存場所・仕様・注意点について解説しました。

要点を整理すると、

  • Java版サーバーのプレイヤー個別データは主にplayerdata/UUID.datに保存される
  • 進捗やレシピ解放はadvancements/UUID.json、統計はstats/UUID.jsonに保存される
  • オンラインモードとオフラインモードではUUIDが変わる
  • UUIDが変わると、同じプレイヤー名でも別人扱いになる
  • online-modeの切り替え前には必ずワールドを丸ごとバックアップする
  • データ移行では、playerdataadvancementsstatsをセットで見る
  • プラグインサーバーでは、プラグイン側のUUIDデータも確認する

このあたりを押さえておけば、

「持ち物が消えた!」
「別人扱いになった!」

という時も、かなり落ち着いて対処できます。

特に大事なのは、見た目の名前ではなくUUIDで管理されているという点です。
マイクラは、プレイヤー名だけで持ち物を見ているわけではありません。

なので、サーバー設定を触る時は、

online-mode=true

と、

online-mode=false

の違いをしっかり理解してから変更しましょう。

初心者さん向けに言うなら、基本はonline-mode=true運用がおすすめです。
どうしてもオフラインモードを使うなら、バックアップ・認証・UUID管理までセットで考えてくださいね。

では、本日はここまでで終わります。
最後までご覧いただき、ありがとうございました。
柚子クラでは他にもJava版のサーバー管理や便利装置について解説しているので、是非ご覧くださいね(^^♪


11. 引用・参考文献

この記事を書くにあたり、以下のコミュニティWiki・技術資料を参考にしています。