更新日:
まず「前回の出力」を見る
コマンドブロックを開くと、下の方に「前回の出力」欄があります。ここに何か表示されていれば、ブロックは動いていて、コマンドの中身に問題があります。何も表示されていなければ、ブロックが動いていない可能性が高いです。
出力欄が空のままのときは、出力の記録がオフになっていないかも確認します。Java版では欄の右にある「O」「X」のボタンで記録のオン・オフを切り替えられます。
ブロックが動いていないとき
1. サーバーでコマンドブロックが無効
マルチサーバーでは、server.propertiesのenable-command-blockがfalse(初期値)だと動きません。trueにしてサーバーを再起動します(1.21.8以前)。Java版1.21.9以降はこの設定がなくなり、コマンドブロックは最初から動きます。止められているときは /gamerule command_blocks_work true で戻します(1.21.9〜1.21.10は commandBlocksEnabled)。統合版では、ゲームルールのcommandblocksenabledがオフになっていないかも確認してください。
2. 信号の設定
- 「動力が必要」のときは、レッドストーン信号が届いているか確認します。レッドストーンダストの向きや、ブロックの間の隙間に注意します。
- インパルスは信号がオフからオンに変わった瞬間に1回だけ動きます。レバーをオンにしたままだと、2回目は動きません。一度オフにしてから入れ直します。
- ずっと動かしたいならリピートにして「常時実行」を選びます。
3. チェーンの向きと設定
チェーンは、矢印が自分の方を向いている前のブロックが動いたときに実行されます。向きが合っていない、またはチェーン自体が「動力が必要」になっていると止まります。チェーンは「常時実行」にしておくのが基本です。
4. 読み込まれていない場所にある
プレイヤーから遠く離れたチャンクにあるコマンドブロックは、そのチャンクが読み込まれていないため動きません。遠くで動かしたい場合は、Java版なら/forceload、統合版なら/tickingareaでその場所を常に読み込みます。
動いているのに結果が出ないとき
5. コマンドの書き方の誤り
チャット欄で同じコマンドを打って、エラーが出ないか確認します。チャットで動かないコマンドは、コマンドブロックでも動きません。版の違い(Java版と統合版)や、古い書き方が混ざっていないかを確認します。
6. @sや~の意味が変わっている
コマンドブロックの中では、実行者はブロック自身です。@sは誰も選ばず、~ ~ ~はブロックの位置になります。プレイヤー基準にしたいときはexecute as @p at @s run ...のように切り替えます。
7. 条件付きになっている
「条件付き」にすると、後ろ側のブロックが成功したときだけ動きます。後ろのブロックが失敗していると、こちらも動きません。意図していなければ「無条件」に戻します。
確認の順番(まとめ)
- 前回の出力にメッセージが出ているか
- サーバー設定・ゲームルールでコマンドブロックが有効か
- 信号・常時実行の設定は合っているか
- チェーンの向きは合っているか
- 同じコマンドがチャットで動くか
コマンドの中身はコマンド診断に貼り付けると、書き方の誤りや版の違いを確認できます。
よくある質問
コマンドブロックを置いたのに開けません。
クリエイティブモードで、OP権限(シングルプレイならチートの許可)が必要です。サバイバルモードでは開けません。
リピートにしたら重くなりました。
リピートは1秒に20回実行されます。@eで広い範囲を毎回調べると負荷が大きくなるので、範囲やtypeで対象を絞ってください。
前回の出力に「Executed」とだけ出て結果がありません。
コマンドは成功していますが、対象が0人だった可能性があります。セレクターの範囲や条件を見直してください。