マイクラのstorage(ストレージ)は、コマンドでのデータ保存・取り出しができる機能です。JSONフォーマットで数値や文字列を自由に保存でき、好きなタイミングで取り出して使えます。スコアボードと違って、他のワールドへも簡単に転用できるのが特徴です。

この記事ではstorageの作り方や使い方を、わかりやすく解説しています。実際に試した結果も紹介しているので、ぜひ参考にしてください。(検証バージョン:Java版1.12.3)




マイクラのstorage(ストレージ)の作り方

ストレージはデータを保存すると自動的に作成される

storage(ストレージ)は/dataコマンドや/execute storeコマンドでデータを保存したときに、自動的に作成されます。例えば、/dataコマンドを以下のように実行すると、otameshi1(minecraft:otameshi1)というストレージが作成され、「001」という名前に、「ようこそ」という値(テキスト)が保存されます。

#data mergeを使う場合
/data merge storage otameshi1 {001:”ようこそ”}

#data modifyを使う場合
/data modify storage otameshi1 001 set value “ようこそ”

ストレージが作られると、「ストレージ変数◯◯を変更しました」とチャット欄に表示されます。

ストレージが保存されているのはdataフォルダ

ストレージは、以下のフォルダに生成されます。

C:\Users\(ユーザー名)\AppData\Roaming\.minecraft\saves\(ワールド名)/data

「command_storage_minecraft.dat」が、ストレージのファイル名です。複数のストレージを作った場合も、この1つのファイルに内容が保存されます。

独立したファイルになっているので、そのまま他のワールドのdataフォルダにコピーすれば使い回すこともできます。

生成・更新されるタイミング

初めてストレージを作る場合、セーブしてタイトルに戻るタイミングでファイルが作成されます。また、コマンドでストレージのデータを削除したときに、ファイルが更新されるのもセーブしてタイトルに戻るタイミングです。

ストレージの内容の確認方法

command_storage_minecraft.datは、メモ帳などでひらこうとすると文字化けして見れません。内容をさっと確認したいときは、以下のサイトが便利です。command_storage_minecraft.datをドラッグ&ドロップするだけで、内容を表示してくれます。

NBT Editor

ストレージは、キーとデータの両方で日本語が使えます。日本語だと、NBT Editorで開いたときに一瞬で内容がわかって楽です。

ストレージを削除する方法

ストレージの削除は、dataコマンドでできます。

#ストレージ「kiroku」のうち、「ボス」の内容を削除
data remove storage minecraft:kiroku “ボス”

または、command_storage_minecraft.datを削除すれば、すべてのストレージが消えます(次回の使用時に再度作られます)。




マイクラのstorage(ストレージ)の使用例

調べてみたはいいものの、実際に使ってみないとよくわからん!ということで、すべてのボスを倒したときにだけ報酬がもらえるしくみを、ストレージを使って作ってみました。

火・水・草の3体のボスをたおした状態で感圧板をふむと、ネザライト装備一式がゲットできるダンジョンのようなものです。ボスにはタグをつけておき、execute unless entityで消滅を検知します。

#ボスの消滅検知(リピートコマンドブロック)
execute unless entity @e[tag=kusa] run setblock ~2 ~ ~-1 redstone_block

指定したタグのついたエンティティがいなくなると、次のコマンドブロックが作動するしくみです。リピートコマンドブロックは常時実行すると重くなるので、必要なタイミングでレッドストーンブロックを出現させて動かしています。

それぞれの部屋に入ると、ボスが出現&検知スタート。倒すと下のコマンドが実行され、ストレージにデータが保存されます。

#ストレージへの保存
data modify storage kiroku “ボス” append value “草”

ボスを倒すと、光の柱が出現するしかけも作っておきました。

3体のボスすべてを倒した状態で感圧板をふむと、チェストが出てきます。中にはネザライト装備一式が入っています。

1体または2体では出てこなかったので、チェックは正常に機能していそうです。

#チェック用のコマンド
execute if data storage kiroku {“ボス”:[“火”,”水”,”草”]} run setblock ~ ~2 ~-1 chest[facing=south]{Items:[{Slot:0b,id:”minecraft:netherite_sword”,count:1},{Slot:1b,id:”minecraft:netherite_helmet”,count:1},{Slot:2b,id:”minecraft:netherite_chestplate”,count:1},{Slot:3b,id:”minecraft:netherite_leggings”,count:1},{Slot:4b,id:”minecraft:netherite_boots”,count:1}]}

チェストの記述で長いコマンドになっていますが、runより前がストレージのデータをチェックするコマンドです。”ボス”のキーに”火”、”水”、”草”のデータがあると、run以降のコマンドが実行されるしくみ。

何度かためしてみましたが、ボスをたおす順番は関係なさそう。どの順でたおしてもチェストが出現しました。

ここをクリックすると、このワールドのデータがダウンロードできます(Java1.12.3)。

ということで、ストレージの使い方まとめでした。最初は理解に苦しみましたが、慣れたら使うのは難しくありませんでした。配布ワールドを作ったりしなければ使わない機能だと思いますが、あらゆるデータが自由に保存できるので、いろいろな使い方ができそうです。面白い使い方があったら、ぜひコメントで教えて下さい!