← マイクラMODメモ トップ

マイクラのコマンド作成方法

最終更新: 2026-09-26 / 対象: Java版(1.21系以降)

このページは、既存のコマンドを組み合わせて「自分だけのコマンド(仕組み)」を作る方法のまとめです。 コマンドブロックでの小さな装置から、データパックの function、OP権限のない参加者でも使える /trigger、 さらにプラグインでの本物の独自コマンドまで、段階的に紹介します。 個々のコマンドの意味は マイクラコマンド一覧 を参照してください。

1. 「コマンドを作る」4つの段階

方法呼び出し方向いている用途
コマンドブロックボタン・レバー・常時実行その場の装置、テレポーター、ドア
function/function 名前空間:名前長い処理をまとめる、配布ワールドの仕組み
/trigger/trigger 名前OP権限のない参加者が使うメニュー
プラグイン/好きな名前サーバー用の本格的な独自コマンド

バニラ(MODなし)では、/home のような新しいコマンド名そのものは作れません。 その代わり、function と /trigger を組み合わせると、実質的に「自分のコマンド」を用意できます。

2. コマンドブロックで作る

まずは /give @s command_block でコマンドブロックを手に入れます(クリエイティブ・チート有効が必要)。

種類動き方使いどころ
インパルス(オレンジ)レッドストーン信号を受けたときに1回ボタンで動かす装置
チェーン(緑)後ろのブロックが動いたあとに続けて動く複数の処理を順番に
リピート(紫)毎tick動き続けるエリアの監視、常時効果

例:ボタンを押すとスポーン地点に戻るテレポーター(インパルス)

tp @p 0 64 0

例:特定の範囲に入ったプレイヤーに暗視を付ける(リピート・「常時実行」)

effect give @a[x=100,y=60,z=100,dx=10,dy=5,dz=10] night_vision 15 0 true
サーバーでは、server.properties の enable-command-block を true にしないとコマンドブロックは動きません。 また、リピートを置きすぎるとサーバーが重くなります。数が増えてきたら function に移すのがおすすめです。

3. データパックの function で作る

function は、コマンドを1行ずつ書いたテキストファイルです。 コマンドブロックを何十個も並べる代わりに、1つのファイルにまとめて /function で呼び出せます。

置き場所:ワールド/datapacks/my_pack/data/my_pack/function/heal.mcfunction

# 体力と満腹度を回復して、メッセージを出す
effect give @s instant_health 1 10 true
effect give @s saturation 1 10 true
playsound minecraft:entity.player.levelup master @s
tellraw @s {"text":"回復しました!","color":"green"}

/reload してから /function my_pack:heal で実行できます。 データパックの基本の構成(pack.mcmeta など)は スクリプト作成方法 にまとめています。

自動で動かす

4. 誰でも使えるコマンドにする(/trigger)

/function はOP権限が必要なので、普通の参加者は使えません。 そこで使うのが /trigger です。権限がなくても実行できる唯一の「スコア変更」コマンドで、 これを合図に function を動かせば、参加者用のコマンドになります。

load.mcfunction(準備)

scoreboard objectives add heal trigger

tick.mcfunction(毎tick確認して実行)

# /trigger heal を使った人に回復 function を実行
execute as @a[scores={heal=1..}] at @s run function my_pack:heal
# 使った人のスコアを戻して、もう一度使えるようにする
scoreboard players reset @a[scores={heal=1..}] heal
scoreboard players enable @a heal

これで、参加者はチャットに /trigger heal と打つだけで回復できるようになります。 /trigger menu set 2 のように数字を渡して、1つの trigger でメニューを分けることもできます。

tellraw の clickEvent で /trigger を実行するボタンをチャットに出すと、 「クリックするだけのメニュー」が作れます。コマンドを覚えなくても使えるので、配布ワールドで喜ばれます。

5. 引数を渡す(マクロ)

1.20.2 以降の function では、行の先頭に $ を付けると $(名前) の部分を呼び出し時の値で置き換えられます(マクロ)。 「好きな座標にテレポート」のような、引数つきのコマンドが作れます。

data/my_pack/function/warp.mcfunction

$tp @s $(x) $(y) $(z)
$tellraw @s {"text":"$(name) にワープしました"}

呼び出し方

function my_pack:warp {x:100, y:70, z:-200, name:"拠点"}

ストレージ(data storage)に保存した値を渡すこともできるので、「登録した地点にワープ」のような仕組みも作れます。

6. プラグインで本物のコマンドを作る

/home や /shop のように新しいコマンド名そのものを作りたい場合は、 Paper などのサーバーでプラグインを使います。方法は2つあります。

Java での開発の流れ(JDK・IntelliJ・Gradle)は、MODとほぼ同じです。MOD作成方法 の環境準備を参考にしてください。

7. 作るときのコツ

スコアボードで「所持金」「ターン」「マス番号」などの状態を持たせると、ボードゲームのような仕組みも作れます。 発想の例は コマンド一覧の「何ができるか」の発想メモ にまとめています。

8. つまずきやすい点

症状よくある原因
/function で「不明な関数」と出るフォルダ名(function)・ファイル名・名前空間の間違い、/reload 忘れ
function の一部だけ動かないその行にエラーがある。ゲーム内で1行ずつ試すと原因がわかる
/trigger が使えないscoreboard players enable を実行していない(使うたびに再度 enable が必要)
コマンドブロックが動かないサーバーの enable-command-block が false
@s が効かないfunction の実行者が違う。execute as ... run で実行者を指定する

関連ページ

トップ · 自作データ置き場 · 更新履歴 · お問い合わせ