「Datapackを作ったのに、ゲームに反映されない」「コマンドが動かない」——そんな経験はありませんか?この記事では、Datapack初心者が最初にぶつかるよくあるエラーとその対処法を、原因から丁寧に解説します。エラーを自力で読み解けるようになると、制作スピードが格段に上がります。
対応バージョン:Java Edition 1.21.11
この記事を読む前に
以下の知識があると、この記事をスムーズに読み進められます。
- Datapackの基本的なフォルダ構成(Datapackってなに?フォルダ構成を理解しよう)
.mcfunctionファイルの基本(はじめての.mcfunctionファイルを作ろう)
まず確認:/reload を忘れずに
Datapackのファイルを編集したあとは、まず VSCode などのエディタで ファイルを保存(Ctrl+S / Mac: Cmd+S) してから、ゲーム内で /reload コマンドを実行してください。「保存」と「リロード」の両方が揃って初めて変更が反映されます。VSCode のタブに●マーク(未保存の印)が残っていたら、まだ保存されていないサインです。確認してから /reload を実行しましょう。


エラーログの読み方
/reload を実行すると、チャット欄やログファイルにエラーメッセージが表示されます。まずここを確認する習慣をつけましょう。ログファイルは .minecraft/logs/latest.log にあります。エラーが出た場合は、メッセージに含まれるファイル名や行番号をヒントに原因を探します。

よくあるエラーと対処法
エラー1:pack_format が一致していない
pack.mcmeta に記述する pack_format の値は、バージョンごとに決まっています。Java Edition 1.21.11 では 48 を指定する必要があります。値が古いままだと、Datapackが認識されなかったり、機能しない場合があります。
{
"pack": {
"description": "My Fast Datapack",
"min_format": [94, 1],
"max_format": [94, 1]
}
}
pack_format はバージョンアップのたびに変わります。別バージョン用のDatapackを流用するときは必ず確認しましょう。
エラー2:フォルダ名・ファイルパスの間違い
Datapackのファイルは、決められたフォルダ構成に従って配置する必要があります。パスが1文字でも間違っていると、ゲームはそのファイルを認識できません。
正しい構成例(関数ファイルの場合):
my_datapack/
├── pack.mcmeta
└── data/
└── my_namespace/
└── function/
└── hello.mcfunction
ポイントは、functions(複数形)ではなく function(単数形)であることです。1.21以降は単数形が正しいフォルダ名です。また、data の直下はネームスペース(自分で決める識別子)であることも忘れずに。
エラー3:複数形フォルダ名を使っている(旧バージョンの書き方)
Java Edition 1.21 以前のDatapackでは functions、tags/functions のように複数形のフォルダ名が使われていました。しかし1.21以降は単数形(function、tags/function)に変更されています。古いDatapackをそのまま使うと動かない原因になります。
// 旧バージョン(1.20以前)
data/my_namespace/functions/hello.mcfunction
data/my_namespace/tags/functions/tick.json
// 1.21以降(正しい書き方)
data/my_namespace/function/hello.mcfunction
data/my_namespace/tags/function/tick.json
エラー4:.mcfunction の構文ミス
.mcfunction ファイルの中にコメントや空行は問題ありませんが、コマンドの書き方が1文字でも間違っていると、そのコマンドだけ(または関数全体が)実行されません。よくあるミスを確認しましょう。
- スペルミス:
sayをsaと書くなど - スラッシュを先頭につける:
/say Helloと書いてしまう(.mcfunction内ではスラッシュは不要) - 全角スペースや全角文字の混入:日本語IMEがオンのまま書いてしまうことが原因
# 正しい例
say Hello, World!
give @a diamond 1
# よくある間違い(スラッシュをつけてしまっている)
/say Hello, World!
/give @a diamond 1
エラー5:load.json / tick.json のパスが間違っている
関数を自動で実行させるために使う load.json や tick.json は、minecraft ネームスペース下の特定のパスに配置する必要があります。また、中に書く関数のパスも正確に記述しなければなりません。
// ファイルの配置場所
data/minecraft/tags/function/load.json
data/minecraft/tags/function/tick.json
// load.json の中身(例)
{
"values": [
"my_namespace:setup"
]
}
values に書く関数名は ネームスペース:フォルダパス/ファイル名 の形式です。.mcfunction の拡張子は書きません。
エラー6:ネームスペースに大文字や記号を使っている
ネームスペース(data/ 直下のフォルダ名)には、小文字の英数字・アンダースコア(_)・ハイフン(-)のみ使用できます。大文字や日本語、スペースを含めるとDatapackが正しく認識されません。
// 良い例
my_datapack
mypack
my-namespace
// 悪い例(使ってはいけない)
MyDatapack
マイパック
my namespace
まとめ
- ファイルを変更したら VSCode で必ず保存(Ctrl+S)してから、
/reloadを実行し、チャット欄のエラーログを確認する pack_formatはバージョンに対応した値(1.21.11 では 94.1)を指定する- 1.21以降はフォルダ名が
function(単数形)に変わっている点に注意する .mcfunction内ではコマンドの先頭にスラッシュは不要- ネームスペースには小文字・アンダースコア・ハイフンのみ使用可能
エラーが解消してDatapackが動くようになったら、次は「13. Datapackを配布用にzip化して公開しよう」で、作ったDatapackを他の人に配れる形に仕上げる方法を学んでみましょう。
