更新日:
/give は、プレイヤーにアイテムを渡すための基本コマンドです。コマンドブロック作品、配布ワールド、サーバー管理、検証用ワールドのどれでも使う機会があります。まずは複雑なNBTやcomponentsより、対象・アイテムID・個数の3点を正確に押さえるのが重要です。
配布前に確認したい対象と個数
/give @p minecraft:stone 16 と /give @a minecraft:stone 16 では対象が異なります。前者は最も近いプレイヤー、後者は全プレイヤーに配布します。サーバー上で @a を使うと想定外の人数に配ることがあるため、最初は自分の名前や @p で結果を確認すると安全です。
カスタム名やエンチャントを加えると構文が長くなります。基本コマンドが成功したら、アイテムID、名前、説明文、エンチャントの順に一項目ずつ追加してください。失敗時に原因を切り分けやすくなります。
基本形
/give <対象> <アイテムID> <個数>
Java版で自分にダイヤモンドの剣を1本渡すなら、次のようになります。
/give @p minecraft:diamond_sword 1
松明を64個渡すなら次の形です。
/give @p minecraft:torch 64
対象セレクターの考え方
@p:一番近いプレイヤー@a:全プレイヤー@s:コマンドの実行者@r:ランダムなプレイヤー
配布ワールドやコマンドブロックでは、最初から @a を使うと全員に配られてしまいます。テスト中は @p か @s を使う方が安全です。
Java 1.20.5以降はアイテムデータの書き方に注意
Java Edition 1.20.5では、コマンド内のアイテム構文がcomponentsを扱う形へ更新されました。単純にアイテムを渡すだけなら従来どおり使えますが、名前・説明文・エンチャント・カスタムデータを細かく付ける場合は、古いNBT例をそのまま貼ると動かないことがあります。
そのため、古い記事の {display:{Name:...}} のような例を使う前に、自分のバージョンを確認してください。特に「1.20.5以降」「1.20.4以前」「1.12.2以前」は書式が混ざりやすいです。
よくあるミス
- アイテムIDのスペルミス
minecraft:の付け忘れではなく、そもそものID違い- Java版の記事を統合版でそのまま使っている
- 古いNBT形式をJava 1.20.5以降で使っている
- 個数に大きすぎる数を入れて、想定外の挙動になる
生成ツールを使う場面
普通のアイテムなら手打ちでも十分です。ただし、名前付きアイテム、説明文付きアイテム、エンチャント付き装備、壊れない装備、バージョン別の書き分けが必要な場合は、生成ツールを使った方がミスを減らせます。
名前付きのアイテムを渡す(版別)
| 版 | 「勇者の剣」という名前の剣を渡す |
|---|---|
| Java版1.21.5以降 | /give @p minecraft:diamond_sword[custom_name="勇者の剣"] |
| Java版1.20.5〜1.21.4 | /give @p minecraft:diamond_sword[custom_name='"勇者の剣"'] |
| Java版1.13〜1.20.4 | /give @p minecraft:diamond_sword{display:{Name:'"勇者の剣"'}} |
同じ「名前を付ける」でも、版によって3通りの書き方があります。1.21.4以前は、名前をJSONの文字列として '"…"' のように二重に囲みます。名前・説明文・エンチャントをまとめて付けるときは、give生成ツールで版を選んで作るのが確実です。
統合版の書き方
/give @p diamond_sword 1 0
統合版は「対象、アイテム名、個数、データ値」の順で、minecraft: は省略できます。統合版の /give では、名前や説明文、エンチャントを付けることはできません。名前は金床で付け、エンチャントは渡したあとに /enchant で付けます。
一度に渡せる数
Java版は、1回で最大100スタック分(64個まとまるアイテムなら6,400個)まで渡せます。インベントリに入りきらない分は、足元に落ちます。
よくある質問
アイテムIDはどこで調べられますか?
ID検索で日本語名から探せます。ゲーム内では、Java版でF3キーとHキーを同時に押すと、アイテムにマウスを乗せたときにIDが表示されるようになります。
「アイテムが不明です」と出ます
IDのつづりか、その版にまだないアイテムの可能性があります。giveコマンドが使えないときの確認ポイントで原因別にまとめています。