【マイクラ】datapackコマンドの使い方・構文・データパック管理【Java版】

この記事はマイクラJava版のデータパック管理向けです
統合版(BE)のビヘイビアーパックとは仕様が異なります
Java版26.1.2時点の仕様を中心に、1.21系列との違いもあわせて整理しています

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

マイクラJava版でデータパックを入れていると、

「データパックが読み込まれているか確認したい」
「入れたはずなのに動かない」
「複数のデータパックの優先順位を変えたい」
「一時的に無効化したい」

…という場面、かなりありますよね。

そういう時に使うのが、今回紹介する/datapackコマンドです。

/datapackは、データパックを作るためのコマンドというより、ワールドに入っているデータパックを確認・有効化・無効化・順番調整するための管理コマンドです。

特にJava版1.21以降はデータパックのフォルダ名変更、Java版1.21.9以降はpack.mcmetaの仕様変更が入っているので、昔の情報をそのまま真似すると普通に詰まります。

筆者も最初は、データパック自体が悪いのか、読み込み順が悪いのか、フォルダ名が悪いのか分からず、/reload/datapack listを何回も打つ羽目になりました。
なのでこの記事では、実際に管理で使う順番で整理していきますね。

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

  • /datapack listで読み込み状態を確認する方法
  • /datapack enabledisableの使い方
  • firstlastbeforeafterによる優先順位の意味
  • /reloadとの違いと、データパックが反映されない時の見直し方
  • Java版1.21以降・1.21.9以降・26.1系で注意する変更点

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

※本記事はMinecraft Java Edition向けです。
※ゲーム内の仕様については、Minecraft WikiおよびMinecraft.net公式リリースノートを参考にしています。
※コマンドを実行するには、基本的にチートON、またはサーバーOP権限が必要です。


目次

1. datapackコマンドとは?
2. まず覚えるべき基本構文
3. データパックが入っているか確認する方法
4. データパックを有効化する方法
5. データパックを無効化する方法
6. 読み込み順と優先順位の考え方
7. /reloadとの違いと使い分け
8. 1.21以降で詰まりやすいフォルダ構成
9. pack.mcmetaとバージョン違いの注意点
10. よくあるトラブルとチェックポイント
11. まとめ
12. 参考文献

この記事で分かること
・Java版の/datapackコマンドの使い方
・データパックの有効化・無効化・優先順位の管理方法
・1.21以降のデータパック仕様変更で詰まらないための確認ポイント


1. datapackコマンドとは?

/datapackコマンドは、現在のワールドに入っているデータパックを管理するコマンドです。

できることは主にこの4つです。

  • データパック一覧を表示する
  • データパックを有効化する
  • データパックを無効化する
  • データパックの読み込み順を調整する

データパックは、ワールドフォルダ内のdatapacksフォルダに入れて使います。
そして、ワールド読み込み時や/reload実行時に読み込まれます。

具体的には、シングルプレイならだいたい下記の場所ですね。

.minecraft/saves/ワールド名/datapacks

このdatapacksフォルダの中に、データパックのフォルダ、または.zipファイルを入れると、ワールド側が読み込み候補として認識します。

ただし、ここで大事なのが、入れただけで正しく動くとは限らないということです。

  • フォルダ構成が間違っている
  • pack.mcmetaが壊れている
  • バージョンが合っていない
  • 読み込み順で別データパックに上書きされている
  • そもそも無効化されている

こういう場合、データパックは入っているのに動きません。

そこでまず使うのが、/datapack listです。

体験談
データパックが動かない時、いきなり中身のJSONやmcfunctionを疑うより、まず/datapack listで「そもそも認識されているか」を見る方が早いです。
ここを飛ばすと、存在しないパックをずっと修正している…みたいなことになります。


2. まず覚えるべき基本構文

/datapackコマンドの基本構文は下記です。

コマンド 用途 よく使う場面
/datapack list データパック一覧を表示 まず確認するとき
/datapack list enabled 有効化済みだけ表示 現在動いているパック確認
/datapack list available 利用可能なパックを表示 入っている候補の確認
/datapack enable <name> データパックを有効化 無効パックを使う時
/datapack disable <name> データパックを無効化 一時停止・切り分け
/datapack enable <name> first 最初に読み込む 優先度を低くしたい時
/datapack enable <name> last 最後に読み込む 優先度を高くしたい時
/datapack enable <name> before <existing> 指定パックの直前に読み込む 細かく順番を決める時
/datapack enable <name> after <existing> 指定パックの直後に読み込む 細かく順番を決める時
/datapack create <id> <name> 空のデータパックを作成 Java版1.21.6以降で土台を作る時


基本は、まずlistで状態確認。
次に必要ならenabledisable
読み込み順を変えたい時だけfirstlastbeforeafterを使う、という流れです。

なお、<name>にはデータパック名を入れます。
ゲーム内では、だいたい下記のように表示されます。

[file/my_datapack]
[vanilla]

この場合、コマンドではこんな感じで指定します。

/datapack disable "file/my_datapack"

パック名にスペースや記号が入っている時は、ダブルクォーテーションで囲むのが安全です。

ここで地味に詰まりやすいです。
フォルダ名はmy datapackみたいにスペース入りでも動く場合がありますが、コマンド指定時は面倒になります。
自作するなら、最初からmy_datapackのように英小文字・数字・アンダーバー中心にしておくのがおすすめです。


3. データパックが入っているか確認する方法

データパックを入れたら、まず下記コマンドを実行します。

/datapack list

これで、現在のワールドで認識されているデータパックが表示されます。

より分けて確認するなら、下記の2つを使います。

/datapack list enabled
/datapack list available

enabledは、現在有効化されているデータパックです。
availableは、ワールド内で利用可能なデータパック候補です。

見る順番としては、筆者はいつもこうしています。

  1. /datapack list availableで入っているか確認
  2. /datapack list enabledで有効化されているか確認
  3. 表示名を見て、file/パック名を控える
  4. 必要ならenableまたはdisableする

ここで、availableにも出てこない場合は、コマンド以前の問題です。

よくある原因はこのあたりです。

  • datapacksフォルダに入っていない
  • zipの中にさらにフォルダが入っていて、二重構造になっている
  • pack.mcmetaがデータパック直下にない
  • pack.mcmetaのJSONが壊れている
  • 対応バージョンが違いすぎる

正しい基本構成はこんな感じです。

my_datapack
├── pack.mcmeta
└── data
    └── yuzukaki
        └── function
            └── load.mcfunction

ポイントは、pack.mcmetaがデータパックの直下にあることです。

例えば、zipを解凍した時にこうなっていると失敗しやすいです。

my_datapack
└── my_datapack
    ├── pack.mcmeta
    └── data

この場合、上のmy_datapackではなく、中のmy_datapackが本体です。
datapacksフォルダに入れる階層を間違えると、/datapack listに出てこないので注意してくださいね。


4. データパックを有効化する方法

データパックを有効化する基本コマンドはこれです。

/datapack enable "file/my_datapack"

これで、指定したデータパックを読み込みます。

ただし、複数データパックを使っている場合は、どの順番で読み込むかもかなり大事です。
なので、実際には下記のように指定することも多いです。

/datapack enable "file/my_datapack" last

lastは、最後に読み込む指定です。
データパックでは、後から読み込まれたものの方が優先されやすいので、自作パックや上書きしたいパックはlastに置くと分かりやすいです。

逆に、土台として先に読み込ませたいパックなら、firstを使います。

/datapack enable "file/base_pack" first

使い分けの目安
・他のパックに上書きされてもいい土台系 → first
・他のパックより優先させたい自作・調整系 → last

データパックを入れたのに機能が反映されない時、パック自体は壊れていなくても、読み込み順で負けていることがあります。
レシピ、タグ、ルートテーブル、関数タグなどを複数パックで触っている場合は、ここを疑いましょう。

Java版1.21.6以降なら/datapack createも使えます

Java版1.21.6以降では、空のデータパックを作る/datapack createも追加されています。

/datapack create yuzukaki_test "Yuzukaki Test"

これは、現在のワールド用に空のデータパックディレクトリを作るコマンドです。
自分でpack.mcmetaを手書きするより、そのバージョンに合った土台を作りやすいのがメリットですね。

ただし、これは「便利な土台作成コマンド」であって、関数やレシピの中身まで全部作ってくれるわけではありません。
あくまで、データパック作成の入口として使うイメージです。

サーバーで使う場合は、通常のOP権限だけでなく、サーバー所有者向けのコマンドとして扱われる点にも注意してください。


5. データパックを無効化する方法

データパックを無効化する場合は、下記のように入力します。

/datapack disable "file/my_datapack"

これで、そのデータパックは現在のワールドから無効化されます。

ただし、無効化する前に少し注意です。

データパックの種類によっては、ワールド内に次のような影響を残していることがあります。

  • スコアボードを追加している
  • コマンドストレージにデータを保存している
  • カスタムレシピを追加している
  • ルートテーブルを変更している
  • 常時実行のtick関数を使っている
  • ワールド生成やディメンション系のデータを触っている

単純な便利系データパックなら、無効化してもそこまで問題ないことが多いです。
ですが、ワールド生成・ディメンション・常時処理系のデータパックは、外すタイミングを間違えると面倒です。

特に配布ワールドや大型データパックでは、説明文に「途中で抜かないでください」と書かれている場合もあります。
そういうものは、素直に説明に従いましょう。

筆者のおすすめ
検証中のデータパックを外す時は、いきなり本番ワールドで無効化せず、コピーしたワールドで試すのが安全です。
とくにサーバー運営中なら、バックアップは必須です。

また、vanillaなどの標準パックは基本的に触らない方が良いです。
普通のプレイで無効化する対象は、基本的にfile/〇〇で表示される自分で入れたデータパックだと思ってください。


6. 読み込み順と優先順位の考え方

データパック管理で一番ややこしいのが、読み込み順です。

/datapack enableには、読み込み位置を指定する構文があります。

/datapack enable "file/my_pack" first
/datapack enable "file/my_pack" last
/datapack enable "file/my_pack" before "file/existing_pack"
/datapack enable "file/my_pack" after "file/existing_pack"

ここで大事なのは、firstは優先度が低く、lastは優先度が高いという考え方です。

読み込み順をイメージすると、こんな感じです。

first側:先に読み込まれる → あとから上書きされやすい
last側 :後に読み込まれる → 他より優先されやすい

なので、複数のデータパックが同じデータを触っている場合、後から読まれるパックが勝ちやすいです。

例えば、2つのデータパックが同じレシピを変更している場合。

base_recipe_pack  → 先に読み込み
custom_recipe_pack → 後に読み込み

この場合、custom_recipe_pack側の内容が優先される可能性が高いです。

beforeafterは、既に有効化されているパックを基準にして位置を決めます。

/datapack enable "file/my_pack" after "file/base_pack"

これは、base_packの後にmy_packを読み込む指定です。
つまり、my_packの方がbase_packより優先されやすくなります。

逆に、下記ならbase_packより前に読み込みます。

/datapack enable "file/my_pack" before "file/base_pack"

注意点として、すでに有効化されているデータパックに対して、もう一度enableを打つと失敗することがあります。
読み込み順を整理したい場合は、いったんdisableしてから、位置指定つきでenableし直す方が分かりやすいです。

/datapack disable "file/my_pack"
/datapack enable "file/my_pack" last

体験談
複数データパックを入れている時に「片方だけ効かない」場合、原因が中身のミスではなく読み込み順だったことがあります。
特にタグやレシピをいじるパックは、last側に置くかどうかで結果が変わることがあるので、ここは必ず確認しましょう。


7. /reloadとの違いと使い分け

データパック管理では、/reloadもよく使います。

/reload

/reloadは、現在有効化されているデータパックを再読み込みするコマンドです。

つまり、役割はこうです。

  • /datapack:データパックの一覧確認・有効化・無効化・順番調整
  • /reload:有効化済みデータパックの中身を再読み込み

自作データパックを編集している時は、かなり頻繁に使います。

例えば、load.mcfunctiontick.mcfunctionを書き換えたら、ゲーム内でこうします。

/reload

その後、関数が認識されているか確認します。

/function yuzukaki:load

ただし、/reloadしても反映されない時は、以下のどこかで引っかかっている可能性が高いです。

  • JSONのカンマやカッコが壊れている
  • .mcfunction内に存在しないコマンドを書いている
  • 1.21以降なのにfunctionsフォルダを使っている
  • tags/functionsのままになっている
  • pack.mcmetaのバージョン形式が合っていない
  • そもそも/datapack list enabledに出ていない

Java版では、データパック内に無効なデータがあると、変更が適用されず、以前の読み込み状態のままになることがあります。
/reloadしたのに変わらない」という時は、チャット欄だけでなく、ログも見ると原因が見つかりやすいです。

重要
.mcfunction内に書くコマンドには、基本的に先頭の/を付けません。
チャットで打つ時は/say testですが、mcfunction内ではsay testです。
ここ、初心者さんはかなり引っかかりやすいです。


8. 1.21以降で詰まりやすいフォルダ構成

Java版1.21以降のデータパックで、特に注意したいのがフォルダ名の単数形変更です。

昔の解説記事や古いデータパックでは、下記のような構成がよく出てきます。

data/namespace/functions

ですが、Java版1.21以降では、関数フォルダは基本的に下記です。

data/namespace/function

functionsではなく、functionです。

同じように、タグ側も変わっています。

data/minecraft/tags/functions

ではなく、

data/minecraft/tags/function

です。

この違いで、/datapack listには出るのに、/function候補に関数が出てこないことがあります。

1.21以降で意識したい主な変更

よく使うところだけ整理すると、こんな感じです。

古い書き方 1.21以降の書き方 用途
functions function mcfunctionファイル
tags/functions tags/function load・tickなどの関数タグ
recipes recipe レシピ
advancements advancement 進捗
loot_tables loot_table ルートテーブル
predicates predicate 条件判定
structures structure 構造物
item_modifiers item_modifier アイテム修飾子


特に、初心者さんが最初に触るのはfunctiontags/functionだと思います。
なので、最低限ここだけは覚えておきましょう。

load.jsonとtick.jsonの置き場所

load.jsontick.jsonを使う場合は、下記の場所です。

data/minecraft/tags/function/load.json
data/minecraft/tags/function/tick.json

中身の例はこんな感じです。

{
  "values": [
    "yuzukaki:load"
  ]
}

そして、実行される関数ファイルは下記です。

data/yuzukaki/function/load.mcfunction

loadはデータパック読み込み時や/reload時に実行されます。
tickは毎tick実行されます。

tickは便利ですが、毎tick実行なので、重い処理を入れすぎるとワールドが重くなります。
最初は、sayや軽いスコアボード処理など、動作確認用の最小構成から始めるのがおすすめです。


9. pack.mcmetaとバージョン違いの注意点

データパックが読み込まれない時、かなりの確率でpack.mcmetaが原因になります。

pack.mcmetaは、マイクラに「これはデータパックですよ」と認識させるためのファイルです。
データパック直下に置きます。

my_datapack
├── pack.mcmeta
└── data

Java版1.21.9以降で新しく作る場合の考え方は、min_formatmax_formatで対応するデータパック形式を指定する形です。

例として、Java版26.1系向けなら下記のような形になります。

{
  "pack": {
    "min_format": [101, 1],
    "max_format": [101, 1],
    "description": "Yuzukaki Test Datapack"
  }
}

Java版1.21.11向けなら、データパックバージョンは94.1なので、考え方としては下記です。

{
  "pack": {
    "min_format": [94, 1],
    "max_format": [94, 1],
    "description": "Yuzukaki Test Datapack"
  }
}

ここで注意したいのが、94.1のような小数を、そのまま古いpack_formatに入れないことです。
古い記事のノリでこう書くと、バージョンによっては壊れます。

{
  "pack": {
    "pack_format": 94.1,
    "description": "Bad Example"
  }
}

👆これは避けた方が良いです。

Java版1.21.9以降では、パック形式にマイナーバージョンが入るようになり、min_formatmax_formatの指定が重要になっています。
自信がない場合は、/datapack createで土台を作るか、最新仕様に対応した生成ツールでpack.mcmetaを作るのが安全です。

1.21.6以降はJSONもより厳しめに見ましょう

Java版1.21.6では、JSONファイルが厳格に解析されるようになっています。
そのため、次のようなミスは避けましょう。

  • 最後の項目に余計なカンマを付ける
  • コメントをJSON内に書く
  • ダブルクォーテーションを忘れる
  • {}[]の閉じ忘れ
  • 全角記号を混ぜる

例えば、下記は末尾カンマがあるので危険です。

{
  "values": [
    "yuzukaki:load",
  ]
}

正しくはこうです。

{
  "values": [
    "yuzukaki:load"
  ]
}

体験談
JSONのエラーは、見た目では本当に分かりづらいです。
とくに末尾カンマは、見慣れていないと全然気づきません。
反映されない時は、コマンドより先にJSONの形を疑うのも大事です。

2026年からバージョン番号が26.x系に変わっています

もう1つ大事な点として、2026年からJava版もバージョン番号が年ベースになっています。

そのため、旧来の感覚で「1.21.11の次は1.22かな?」と思うと少し混乱します。
2026年の正式リリースでは、Java版26.1のような表記になります。

データパックを探す時も、今後は「1.21.11対応」だけでなく、26.1対応・26.x対応の表記を見る必要があります。

また、Java版26.1系ではデータパックバージョンが101.1になっています。
1.21.11の94.1とは違うので、古いpack.mcmetaをそのまま使い回すと警告や読み込み失敗の原因になります。

1.21.11世代のコマンド変更にも注意

Java版1.21.11世代では、ゲームルール名が名前空間ID寄りに整理されています。
自作データパックの関数内で古いゲームルール名を書いている場合、更新時にエラーの原因になることがあります。

例として、古い書き方ではこういうものがありました。

gamerule doMobSpawning false

新しい世代では、対応する名前空間IDの形を確認して書く必要があります。

gamerule minecraft:spawn_mobs false

すべてのコマンドが一気に壊れるわけではありませんが、古いデータパックを新しいバージョンへ持ってくる時は、フォルダ名・pack.mcmeta・ゲームルール名・アイテムコンポーネントあたりを重点的に見ましょう。


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

ここからは、/datapack管理でよくあるトラブルをまとめます。
困った時は、上から順番に見ていくと原因を絞りやすいです。

データパックが一覧に出てこない

まずはこれを実行します。

/datapack list available

ここに出てこない場合は、主に下記を確認してください。

  • [ ] datapacksフォルダに入っているか?
  • [ ] zipやフォルダが二重構造になっていないか?
  • [ ] pack.mcmetaがデータパック直下にあるか?
  • [ ] pack.mcmetaのJSONが壊れていないか?
  • [ ] Java版のデータパックを統合版に入れようとしていないか?
  • [ ] 対応バージョンが違いすぎないか?

一覧には出るけど動かない

この場合は、次に有効化されているかを見ます。

/datapack list enabled

availableにはあるのにenabledにない場合は、有効化します。

/datapack enable "file/my_datapack" last

有効化済みなのに動かない場合は、下記を確認しましょう。

  • [ ] /reloadしたか?
  • [ ] functionフォルダが単数形になっているか?
  • [ ] tags/functionになっているか?
  • [ ] .mcfunction内に先頭/を書いていないか?
  • [ ] JSONに末尾カンマがないか?
  • [ ] 読み込み順で別パックに上書きされていないか?

/functionの候補に出てこない

/functionを入力しても自作関数が候補に出ない場合、関数ファイルが読み込まれていない可能性が高いです。

1.21以降なら、まずフォルダ名を見てください。

data/yuzukaki/function/test.mcfunction

これが正しい形です。

古い記事のまま、こうなっていると失敗します。

data/yuzukaki/functions/test.mcfunction

functionsではなくfunctionです。

また、.mcfunctionファイル内に不正なコマンドがあると、その関数が読み込まれないことがあります。
最初は下記くらい簡単な関数で試しましょう。

say datapack loaded

これが動けば、土台は成功です。
その後、少しずつコマンドを足していく方が失敗箇所を見つけやすいです。

読み込み順を変えたのに反映されない

すでに有効化されているパックにenable ... lastを打っても、期待通りに順番が変わらないことがあります。
その場合は、一度無効化してから入れ直すのが分かりやすいです。

/datapack disable "file/my_datapack"
/datapack enable "file/my_datapack" last

その後、確認します。

/datapack list enabled

パックが複数ある場合は、表示順を見て、目的の位置に入っているか確認しましょう。

feature flagが必要なデータパックは後から入らない場合があります

一部のデータパックは、ワールド作成時の実験的機能やfeature flagを前提にしていることがあります。
このタイプは、ワールド作成後に/datapack enableで入れようとしても読み込めない場合があります。

配布データパックで「ワールド作成時に導入してください」と書かれているものは、途中導入せず、最初から新規ワールドに入れるのが安全です。

ここはかなり大事です。
便利系データパックなら途中導入でも動くことが多いですが、ワールド生成・実験的機能・ディメンション系は別です。
無理に途中導入すると、後から直す方が大変になります。


11. まとめ

以上、マイクラJava版の/datapackコマンドの使い方と、データパック管理の基本を解説しました。

要点を整理すると、次の通りです。

  • まず/datapack list availableで認識されているか確認する
  • 有効化済みかどうかは/datapack list enabledで見る
  • 有効化は/datapack enable "file/パック名"を使う
  • 無効化は/datapack disable "file/パック名"を使う
  • 優先させたいパックはlast側に置く
  • 編集後の反映は/reloadを使う
  • Java版1.21以降はfunctionsではなくfunctionに注意する
  • Java版1.21.9以降はpack.mcmetamin_formatmax_formatも確認する
  • 2026年以降はバージョン番号が26.x系になっているため、対応表記をよく見る

/datapackコマンドは、最初こそ少し分かりづらいですが、慣れるとデータパック管理がかなり楽になります。

特に、データパックが動かない時は、いきなり中身を全部疑うのではなく、

/datapack list available
/datapack list enabled
/reload

この3つで状況確認するだけでも、原因をかなり絞れます。

自作データパックでも、配布データパックでも、まずは「認識されているか」「有効化されているか」「読み込み順は合っているか」を見るのが大事です。

では、本日はここまでで終わります。
最後までご覧いただき、ありがとうございました。
柚子クラでは他にもマイクラJava版の便利装置や仕様解説をまとめているので、ぜひご覧くださいね(^^♪


12. 参考文献

この記事を書くにあたり、以下の公式情報・コミュニティWikiを参考にしています。