【マイクラ】advancementコマンドの使い方・構文・入力例【Java版】

この記事はJava版の/advancementコマンド解説です
統合版(BE)の実績とは仕様が違うので注意してください
進捗の付与・取り消しをするコマンドなので、サバイバル本編の攻略というより管理・検証向けです

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

マイクラJava版でワールドを作っていると、たまに、

「進捗を1個だけ付け直したい」
「配布ワールドのテストで、進捗をリセットしたい」
「サーバーイベント用に、全員へ同じ進捗を付与したい」

…みたいな場面が出てきます。

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

このコマンドを使うと、プレイヤーの進捗を付与したり、逆に取り消したりできます。
ただし、構文にonlyfromuntilthroughなど少し紛らわしい指定が出てくるので、最初はかなり分かりづらいです。

筆者も最初に触った時、

fromuntil、どっちがどっち?」
everythingって本当に全部消えるの?」
「コマンドブロックで@sを使ったら動かないのはなぜ?」

というところで普通に迷いました。

なのでこの記事では、マイクラJava版のadvancementコマンドの使い方・構文・入力例を、実際に使う場面ベースで整理していきますね。

この記事を読めば、次のことが出来るようになります。

  • 進捗を1個だけ付与・取り消しできます👍
  • 全進捗のリセットや全付与を安全に扱えます👌
  • only / from / until / through / everythingの違いが分かります
  • コマンドブロックやサーバーで使う時のミスを減らせます(^^♪

※本記事はJava版向けです。統合版(BE)の実績システムとは別物です。
※Java版は2026年のリリースから、年ベースの26.x系表記へ移行しています。この記事ではJava版1.21.11〜26.1.2系の仕様を前提にしています。
※古い記事に出てくる/advancement testは、現在のJava版では使いません。

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


目次

1. advancementコマンドとは
2. 使う前に知っておきたい前提条件
3. advancementコマンドの基本構文
4. grantとrevokeの違い
5. everythingの使い方|全進捗を付与・削除する
6. onlyの使い方|特定の進捗だけ操作する
7. from・until・throughの違い
8. よく使う入力例まとめ
9. コマンドブロックで使う時の注意点
10. 進捗IDの調べ方
11. 1.21.11から26.x系への移行で注意したい変更点
12. うまく動かない時のチェックポイント
13. まとめ
14. 参考文献

この記事で分かること
・Java版の/advancementコマンドの基本
・進捗を付与・取り消しする具体的な入力例
only / from / until / through / everythingの使い分け
・初心者がやりがちなミスと対策


1. advancementコマンドとは

/advancementは、Java版の進捗を操作するコマンドです。

進捗とは、Java版で表示される「石器時代」「ダイヤモンド!」「モンスターハンター」などの達成要素のことですね。
サバイバルで条件を満たすと、画面右上に通知が出るあれです。

この進捗を、コマンドで強制的に、

  • 達成済みにする
  • 未達成に戻す
  • 全部まとめて付与する
  • 全部まとめて消す
  • 指定した進捗ツリーだけ操作する

ということができます。

例えば、自分に「ダイヤモンドの防具を手に入れる」系の進捗を付けるなら、こうです。

/advancement grant @s only minecraft:story/shiny_gear

逆に、その進捗を取り消すならこうです。

/advancement revoke @s only minecraft:story/shiny_gear

grantが付与、revokeが取り消しです。
ここさえ分かれば、まず第一段階はOKです。

advancementコマンドはどんな時に使う?

普段のサバイバルで必須というより、主な使い道は下記です。

  • 配布マップのテスト
  • サーバーイベントの進捗管理
  • 進捗がバグった時の修正
  • 検証ワールドでの進捗確認
  • データパックの動作確認
  • 進捗を全部消して、もう一度やり直したい時

体験談
筆者の感覚では、普通のサバイバル攻略というより、ワールドを作る側・検証する側で便利なコマンドです。
ただし、間違えてeverythingを使うと全進捗が一気に消えるので、そこだけは本当に注意してくださいね。


2. 使う前に知っておきたい前提条件

/advancementコマンドを使う前に、まずは前提を確認しておきましょう。
ここを知らずに入力すると、コマンド自体は合っているのに動かないことがあります。

Java版限定のコマンドです

/advancementJava版限定です。
統合版(Bedrock Edition)では、Java版の進捗とは別に「実績」があります。

そのため、統合版のチャット欄で同じように入力しても、この記事の通りには動きません。

注意!
「マイクラ 進捗 コマンド」で検索するとJava版の記事と統合版の記事が混ざることがあります。
advancementという単語が出てきたら、基本的にJava版向けだと思ってください。

チート、またはOP権限が必要です

シングルプレイなら、ワールド作成時にチートをオンにするか、LANに公開してチートを許可する必要があります。

サーバーなら、OP権限が必要です。
/advancementは管理系コマンドなので、誰でも自由に打てるコマンドではありません。

対象はプレイヤーです

/advancementの対象に指定できるのは、プレイヤーです。
ゾンビや村人などのモブに進捗を付けることはできません。

よく使う対象指定は下記です。

指定 意味 使う場面
@s 実行者自身 自分に付与する時
@p 最寄りのプレイヤー ボタン式の装置など
@a 全プレイヤー サーバー全員へ付与する時
@r ランダムなプレイヤー イベント用
プレイヤー名 指定したプレイヤー 個別対応


普通に自分で試すだけなら、まずは@sで大丈夫です。
ただし、コマンドブロックで@sを使う時は注意が必要です。これについては後半で解説しますね。


3. advancementコマンドの基本構文

/advancementの基本形は、下記のようになります。

/advancement <grant|revoke> <対象> <操作範囲> <進捗ID>

実際には、操作範囲によって構文が少し変わります。
まずは全体像を見てください。

/advancement grant <対象> everything
/advancement revoke <対象> everything

/advancement grant <対象> only <進捗ID> [達成要件]
/advancement revoke <対象> only <進捗ID> [達成要件]

/advancement grant <対象> from <進捗ID>
/advancement revoke <対象> from <進捗ID>

/advancement grant <対象> until <進捗ID>
/advancement revoke <対象> until <進捗ID>

/advancement grant <対象> through <進捗ID>
/advancement revoke <対象> through <進捗ID>

一気に見るとややこしいですが、考え方はそこまで難しくありません。

  • grant:進捗を付与する
  • revoke:進捗を取り消す
  • everything:読み込まれている全進捗
  • only:指定した進捗だけ
  • from:指定した進捗と、その先の子進捗
  • until:指定した進捗と、その親進捗
  • through:指定した進捗の親側と子側をまとめて

こんな理解で進めればOKです。

進捗IDとは?

進捗IDは、進捗を内部的に指定する名前です。
例えば、下記のような形ですね。

minecraft:story/root
minecraft:story/mine_stone
minecraft:story/shiny_gear
minecraft:nether/root
minecraft:adventure/kill_a_mob
minecraft:husbandry/root

画面に表示される日本語名ではなく、内部IDを入力します。

例えば「ダイヤモンドで私を覆って」のような日本語名をそのまま入力しても、コマンドとしては通りません。
minecraft:story/shiny_gearのようなIDで指定します。


4. grantとrevokeの違い

/advancementで最初に覚えるべきなのは、grantrevokeです。

grantは進捗を付与する

grantは、対象プレイヤーに進捗を付与します。

/advancement grant @s only minecraft:story/mine_stone

これを実行すると、自分にminecraft:story/mine_stoneの進捗が付与されます。

すでに達成済みの場合は、新しく付与できる進捗がないため、見た目の変化はほぼありません。
「もう持っている進捗をもう一度付けようとしている」状態ですね。

revokeは進捗を取り消す

revokeは、対象プレイヤーから進捗を取り消します。

/advancement revoke @s only minecraft:story/mine_stone

これで、自分のminecraft:story/mine_stoneの進捗が未達成に戻ります。

注意!
revokeは便利ですが、やりすぎると進捗画面がかなり戻ります。
検証ワールドなら問題ありませんが、メインワールドで使う時はバックアップ推奨です。

基本は「grant付与」「revoke取り消し」だけ覚えればOK

最初のうちは、こう覚えてください。

grant  = 進捗を付ける
revoke = 進捗を取り消す

この2つを間違えなければ、大事故はかなり減ります。
特にeverythingと組み合わせる時は、入力前に一度止まって確認しましょう。


5. everythingの使い方|全進捗を付与・削除する

everythingは、読み込まれている全ての進捗を対象にします。
かなり強い指定です。

全進捗を付与する

自分に全進捗を付与するなら、こうです。

/advancement grant @s everything

全プレイヤーに全進捗を付与するなら、こうです。

/advancement grant @a everything

これは検証やスクリーンショット用には便利です。
ただし、普通のサバイバルで使うと、当然ながら進捗の達成感は消えます。

全進捗を取り消す

自分の全進捗を取り消すなら、こうです。

/advancement revoke @s everything

全プレイヤーの全進捗を取り消すなら、こうです。

/advancement revoke @a everything

これは本当に強力です。
サーバーで@aに対して実行すると、全員の進捗が消えます。

超注意!
revoke @a everythingは、イベント用の初期化や検証以外では基本的に使わない方が安全です。
メインサーバーで誤爆すると、全員から苦情が来ると思います。

everythingを使うおすすめ場面

everythingは、下記のような場面向けです。

  • 検証ワールドで全進捗を確認したい
  • 配布マップの進捗状態を初期化したい
  • サーバーイベント開始前に全員を同じ状態にしたい
  • スクリーンショット用に進捗画面を埋めたい

逆に、通常サバイバルのメインワールドではあまり使いません。
便利ですが、取り扱い注意ですね。


6. onlyの使い方|特定の進捗だけ操作する

onlyは、指定した進捗だけを操作する時に使います。
一番使いやすく、事故も少ない指定です。

進捗を1個だけ付与する

自分に「石器時代」系の進捗を付与する例です。

/advancement grant @s only minecraft:story/mine_stone

自分に「ダイヤモンド防具」系の進捗を付与するなら、こうです。

/advancement grant @s only minecraft:story/shiny_gear

進捗を1個だけ取り消す

取り消す時は、grantrevokeに変えます。

/advancement revoke @s only minecraft:story/shiny_gear

このように、onlyは指定した進捗だけを狙えるので、修正用途に向いています。

onlyは初心者に一番おすすめ

最初に練習するなら、onlyが一番おすすめです。

fromthroughは進捗ツリーをまとめて操作するので、思ったより広い範囲に影響が出ることがあります。
その点、onlyは範囲が狭く、何が起きたのか分かりやすいです。

筆者メモ
進捗を1つ直したいだけなら、基本はonlyで十分です。
「ツリーごと全部まとめて操作したい」となってから、fromuntilを使うくらいで大丈夫です。

達成要件を指定することもできる

onlyでは、進捗IDの後ろに達成要件を指定することもできます。

/advancement grant <対象> only <進捗ID> <達成要件>

ただし、これは少し上級者向けです。
進捗によって達成要件の内部名が違うため、普通の攻略目的なら無理に使わなくて大丈夫です。

データパック制作や細かい検証をしている方だけ、JSON側のcriteriaを確認して使えばOKです。
通常は、下記のように進捗単位で操作する方が分かりやすいです。

/advancement grant @s only minecraft:adventure/kill_a_mob

7. from・until・throughの違い

ここが、advancementコマンドで一番つまずきやすいところです。

fromuntilthroughは、進捗ツリーの前後関係を使ってまとめて操作する指定です。

fromは「ここから先」

fromは、指定した進捗と、その子進捗をまとめて操作します。

/advancement grant @s from minecraft:nether/root

この例では、ネザー系のルート進捗と、そこから先に続く子進捗が対象になります。
つまり、指定した進捗を起点にして、下方向・後続方向へ広がるイメージです。

取り消す場合は、こうです。

/advancement revoke @s from minecraft:nether/root

イメージ
from = この進捗から先をまとめて操作

untilは「ここまで」

untilは、指定した進捗と、その親進捗をまとめて操作します。

/advancement grant @s until minecraft:story/enter_the_end

この場合、minecraft:story/enter_the_endと、そこへ到達するまでの親側の進捗が対象になります。
進捗ツリーの根元側へ戻るイメージですね。

取り消す場合は、こうです。

/advancement revoke @s until minecraft:story/enter_the_end

イメージ
until = この進捗までの親側をまとめて操作

throughは「前後まとめて」

throughは、指定した進捗を中心に、親側と子側をまとめて操作します。

/advancement grant @s through minecraft:story/mine_diamond

untilfromを合わせたような指定です。
指定した進捗までの親側、そして指定した進捗から先の子側が対象になります。

取り消す場合は、こうです。

/advancement revoke @s through minecraft:story/mine_diamond

イメージ
through = この進捗を通って、前後まとめて操作

表で整理するとこうです

指定 意味 初心者向けの覚え方
only その進捗だけ 単品指定
from 指定進捗と子進捗 ここから先
until 指定進捗と親進捗 ここまで
through 親側+指定進捗+子側 前後まとめて
everything 全進捗 全部


迷ったら、まずはonlyを使ってください。
fromuntilthroughは、まとめて操作したい時だけ使えば十分です。


8. よく使う入力例まとめ

ここからは、実際に使いやすい入力例をまとめます。
コピペして使う場合は、対象や進捗IDだけ変更してくださいね。

自分に特定の進捗を付与する

/advancement grant @s only minecraft:story/root

まずはminecraft:story/rootで試すと分かりやすいです。
自分に進捗が付与されるか確認できます。

自分から特定の進捗を取り消す

/advancement revoke @s only minecraft:story/root

動作確認で付けた進捗を戻す時に使えます。

全員に特定の進捗を付与する

/advancement grant @a only minecraft:story/enter_the_nether

サーバーイベントなどで、全員に同じ進捗を付けたい時に使えます。

特定のプレイヤーに進捗を付与する

/advancement grant PlayerName only minecraft:story/shiny_gear

PlayerNameの部分を、対象プレイヤーの名前に変更してください。

自分の全進捗をリセットする

/advancement revoke @s everything

進捗を最初からやり直したい時に使います。
ただし、メインワールドではバックアップ推奨です。

全員の全進捗をリセットする

/advancement revoke @a everything

サーバー全体の進捗を初期化するコマンドです。
イベントワールドや検証環境以外では、かなり危険です。

ネザー系の進捗をまとめて付与する

/advancement grant @s from minecraft:nether/root

ネザーのルート進捗から先をまとめて付与する例です。
進捗画面のネザータブを確認したい時などに便利です。

ネザー系の進捗をまとめて取り消す

/advancement revoke @s from minecraft:nether/root

ネザー系の進捗をまとめて戻したい場合の例です。

進捗ツリーの途中まで付与する

/advancement grant @s until minecraft:story/enter_the_end

指定した進捗までの親側をまとめて付与します。
「ここまで進んだ状態を再現したい」という時に使えます。

指定進捗の前後をまとめて操作する

/advancement grant @s through minecraft:story/mine_diamond

指定した進捗の親側と子側をまとめて付与する例です。
どこまで広がるか分かりづらい場合は、検証ワールドで試してから本番で使いましょう。


9. コマンドブロックで使う時の注意点

/advancementはチャット欄から使うだけでなく、コマンドブロックでも使えます。
ただし、コマンドブロックで使う時は@sの扱いに注意してください。

コマンドブロックで@sをそのまま使うと失敗しやすい

チャット欄で自分が実行するなら、@sは自分自身を指します。

/advancement grant @s only minecraft:story/root

しかし、コマンドブロックで@sを使うと、プレイヤー自身を指してくれない場面があります。
そのため、ボタンを押したプレイヤーに付与したい場合でも、意図通りに動かないことがあります。

近くのプレイヤーに付与するなら@pが簡単

ボタン式で「押した人に進捗を付ける」ような装置なら、まずは@pが分かりやすいです。

/advancement grant @p only minecraft:story/root

この場合、コマンドブロックに一番近いプレイヤーが対象になります。
シンプルな配布ワールドや検証装置なら、これで十分なことが多いです。

execute asを使うと@sをプレイヤーとして扱える

少し慣れてきたら、execute asを組み合わせると便利です。

/execute as @a run advancement grant @s only minecraft:story/root

これは、全プレイヤーそれぞれを実行者として扱い、その@sに進捗を付与する形です。
サーバーやマップ制作では、この書き方の方が管理しやすい場面もあります。

連鎖コマンドブロックで使う時

複数の進捗を順番に付与したい場合は、連鎖コマンドブロックで下記のように並べることもできます。

/advancement grant @p only minecraft:story/root
/advancement grant @p only minecraft:story/mine_stone
/advancement grant @p only minecraft:story/upgrade_tools

ただし、進捗ツリーを一気に付与したいだけなら、untilfromを使った方が短く済むこともあります。

筆者メモ
コマンドブロックで一番多いミスは、対象指定です。
「誰に付与するのか」を先に決めてから、@p@aexecute asを選ぶと事故が減ります。


10. 進捗IDの調べ方

/advancementで一番困るのが、進捗IDの調べ方です。
表示名は日本語でも、コマンドで使うのは内部IDだからです。

まずはTab補完を使う

ゲーム内で一番手軽なのは、Tab補完です。

/advancement grant @s only 

ここまで入力してTabキーを押すと、候補が表示されます。
Java版のコマンド補完はかなり優秀なので、まずはこれを使うのがおすすめです。

よく使う進捗ID

代表的な進捗IDをいくつか置いておきます。
入力例を作る時の参考にしてください。

進捗ID だいたいの内容 使いやすい場面
minecraft:story/root Minecraftタブのルート 動作確認
minecraft:story/mine_stone 石を入手する流れ 序盤進捗の確認
minecraft:story/upgrade_tools 道具強化の流れ 序盤の進行再現
minecraft:story/smelt_iron 鉄インゴット入手の流れ 鉄関連の進捗確認
minecraft:story/shiny_gear ダイヤ防具関連 装備系の確認
minecraft:story/enter_the_nether ネザー突入 ネザー解放の演出
minecraft:story/enter_the_end エンド突入 終盤進行の再現
minecraft:nether/root ネザータブのルート ネザー系をまとめて扱う時
minecraft:adventure/root 冒険タブのルート 冒険系の確認
minecraft:husbandry/root 農業・繁殖系タブのルート 動物・農業系の確認


データパックの進捗は名前空間が変わる

バニラの進捗は、多くがminecraft:から始まります。
一方、データパックで追加された進捗は、別の名前空間になることがあります。

例:

custompack:chapter1/start
my_datapack:quests/first_step

この場合、minecraft:ではなく、データパック側の名前空間を使います。
データパック制作中に「進捗が見つからない」と出る場合は、名前空間やパスの打ち間違いをまず確認しましょう。


11. 1.21.11から26.x系への移行で注意したい変更点

マイクラJava版は、2026年のリリースからバージョン表記が26.x系へ移行しています。
そのため、古い記事と新しい記事で、バージョン表記が少し混ざって見えることがあります。

advancementコマンドの基本構文はそのまま

/advancement grant/advancement revokeの基本構文自体は、1.21.11から26.1.2までの正式リリースでも大きく変わっていません。

この記事で紹介している、

  • everything
  • only
  • from
  • until
  • through

という指定は、現在のJava版でも使う考え方です。

26.1系以降はワールド内の保存場所に注意

コマンドを普通に使うだけなら、あまり気にしなくて大丈夫です。

ただし、進捗データをファイルから確認したり、サーバーのプレイヤーデータを直接触ったりする場合は注意してください。
Java版26.1系では、プレイヤー関連データの保存場所が整理され、進捗データはトップレベルのadvancementsフォルダからplayers/advancements側へ移動しています。

古い情報では、下記のように説明されていることがあります。

saves/ワールド名/advancements/プレイヤーUUID.json

26.1系以降では、下記のような場所を見ることになります。

saves/ワールド名/players/advancements/プレイヤーUUID.json

注意!
通常のプレイやコマンド入力だけなら、保存場所を触る必要はありません。
サーバー管理者やデータパック制作者が、進捗ファイルを直接確認する時だけ気にすればOKです。

古い「advancement test」は使わない

昔のJava版には、/advancement testという形の情報が出てくることがあります。
しかし、現在のJava版では基本的に使いません。

古い解説を見ていてtestが出てきた場合は、情報が古い可能性が高いです。
今から覚えるなら、grantrevokeを中心に覚えれば大丈夫です。


12. うまく動かない時のチェックポイント

ここでは、/advancementがうまく動かない時の原因をまとめます。
コマンド自体は短いですが、対象指定や進捗IDでよく引っかかります。

「Unknown or incomplete command」と出る

構文が途中で止まっている可能性があります。

確認ポイントはこちらです。

  • /advancementのスペルが合っているか
  • grantまたはrevokeを書いているか
  • 対象を指定しているか
  • only / from / until / through / everythingのどれかを書いているか
  • everything以外では進捗IDを書いているか

例:これは不完全です。

/advancement grant @s only

正しくは、進捗IDまで入れます。

/advancement grant @s only minecraft:story/root

進捗IDが見つからない

進捗IDの打ち間違いが多いです。

  • minecraft:のコロンが抜けていないか
  • storynetherなどの階層が合っているか
  • スペースではなくスラッシュで区切っているか
  • データパック進捗なら名前空間が合っているか

手入力で不安な時は、Tab補完を使いましょう。

実行したのに何も変わらない

すでに達成済みの進捗へgrantしている、または未達成の進捗へrevokeしている可能性があります。

例えば、すでに持っている進捗にこれを打っても、見た目の変化はほぼありません。

/advancement grant @s only minecraft:story/root

確認したい時は、一度取り消してから付与すると分かりやすいです。

/advancement revoke @s only minecraft:story/root
/advancement grant @s only minecraft:story/root

コマンドブロックで対象がズレる

コマンドブロックで@sを使っている場合、対象が思ったプレイヤーになっていない可能性があります。

まずは、近くのプレイヤーに付与する形で試してください。

/advancement grant @p only minecraft:story/root

全員に付けるなら、こうです。

/advancement grant @a only minecraft:story/root

@sを使いたい場合は、execute asを組み合わせると分かりやすいです。

/execute as @a run advancement grant @s only minecraft:story/root

統合版で動かない

この記事の内容はJava版向けです。
統合版ではJava版の/advancementコマンドは使えません。

統合版の実績はアカウント側と結びつく要素もあり、Java版の進捗とは仕組みが違います。
同じマイクラでも、ここは混同しないようにしてくださいね。

チェックリスト

困った時は、下記を順番に確認してください。

  • [ ] Java版で実行しているか?
  • [ ] チート、またはOP権限はあるか?
  • [ ] grantrevokeを間違えていないか?
  • [ ] 対象はプレイヤーになっているか?
  • [ ] 進捗IDはTab補完で確認したか?
  • [ ] everythingを誤爆していないか?
  • [ ] コマンドブロックなら@pexecute asを試したか?
  • [ ] 古いadvancement testの情報を見ていないか?

13. まとめ

以上、マイクラJava版のadvancementコマンドの使い方・構文・入力例を解説しました。

最後に要点を整理します。

  • /advancementはJava版の進捗を操作するコマンド
  • grantは進捗の付与、revokeは進捗の取り消し
  • 初心者はまずonlyで1個ずつ操作するのがおすすめ
  • everythingは全進捗が対象なので、誤爆に注意
  • fromは「ここから先」、untilは「ここまで」、throughは「前後まとめて」
  • コマンドブロックでは@sより、まず@pexecute asを意識する
  • 26.1系以降は、進捗ファイルの保存場所がplayers/advancements側へ移動している

/advancementは、普段のサバイバルで毎日使うコマンドではありません。
ですが、サーバー運営、配布マップ制作、検証ワールドではかなり便利です。

特に、進捗を1つだけ付け直したい時や、イベント前に全員の進捗状態を揃えたい時は、知っているだけでかなり作業が楽になります。

最初はonlyだけで大丈夫です。
慣れてきたら、fromuntilthroughも検証ワールドで試してみてください。

では、本日はここまでで終わります。
最後までご覧いただき、ありがとうございました。
柚子クラでは他にもJava版コマンドや便利装置を紹介しているので、是非ご覧くださいね(^^♪


14. 参考文献

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