更新日:
/effect は、プレイヤーやモブにステータス効果を付けるコマンドです。スピード、暗視、耐性、跳躍力上昇、透明化などを扱えるため、ミニゲームや配布マップで使いやすいコマンドです。
Java版と統合版の書式を混同しない
Java版の基本例は /effect give @p minecraft:night_vision 30 0 true です。統合版では /effect @p night_vision 30 0 true のように、同じ効果でも give を挟まない形式です。秒数の 30 は効果時間、増幅値の 0 はレベルIに相当します。
まず暗視など視覚的に確認しやすい効果を短時間付与し、効果を消して戻せることまで確認しましょう。高い増幅値や長時間の効果を試す場合、プレイヤーの動作や画面表示が大きく変わる可能性があります。テストワールドで検証するのが安全です。
Java版の基本形
/effect give <対象> <効果ID> <秒数> <強さ> <粒子を隠すか>
近くのプレイヤーに60秒間スピードIIを付ける例です。
/effect give @p minecraft:speed 60 1 true
ここで強さの数値は、表示レベルより1小さい点に注意します。1 を指定するとスピードII、0 ならスピードIです。
統合版の基本形
統合版では、基本的に give を挟まない形で使われます。
/effect @p speed 60 1 true
Java版の記事を見て /effect give を統合版でそのまま使うと、構文エラーになることがあります。ここは検索で混ざりやすい部分です。
よく使う効果
speed:移動速度上昇night_vision:暗視resistance:耐性jump_boost:跳躍力上昇invisibility:透明化
暗視を長く付ける例
/effect give @p minecraft:night_vision 600 0 true
10分間の暗視です。建築中や地下探索の検証では便利ですが、配布マップで使う場合は時間を長くしすぎると演出を壊すことがあります。
効果を消す
Java版では、特定効果を消す場合に次のようにします。
/effect clear @p minecraft:speed
全効果を消したい場合は、効果IDを省略します。
/effect clear @p
効果を無限にする
/effect give @p minecraft:night_vision infinite 0 true
Java版1.19.4以降は、秒数の代わりに infinite と書くと、効果が切れなくなります。消すときは上の /effect clear を使います。統合版でも新しい版では使えるので、入力中の候補に infinite が出るか確かめます。
強さ(増幅値)の目安
| 書く数字 | 表示されるレベル | 例 |
|---|---|---|
| 0 | I | ふつうの暗視・透明化など |
| 1 | II | 醸造で作れる強化ポーションと同じ強さ |
| 4 | V | 耐性Vにすると、ほとんどのダメージを受けなくなります |
| 255 | 最大 | これより大きい数字は書けません |
跳躍力上昇などは、強さを上げすぎると操作しにくくなります。まず1〜2程度で試してから調整します。
統合版で効果を消す
/effect @p clear
統合版は clear を対象の後ろに書きます。Java版の /effect clear @p と順番が逆なので、版を確かめてから書きます。
うまくいかないときの確認ポイント
- 効果IDが赤くなる:日本語名ではなく英語のIDを書きます。IDはエフェクトID一覧で確認できます。
- レベルが1つ高い:強さは0から数えます。
- 粒子が出てしまう:最後の
trueを書き忘れていないか確認します。 - コマンドブロックで自分にかからない:
@sではなく@pや@aを使います。
よくある質問
Mobにも効果を付けられますか?
付けられます。@e[type=minecraft:zombie] のように対象を指定します。アンデッドのMobは、治癒と負傷の効果が逆に働きます。
ポーションとして渡したいときは?
飲んで使うアイテムにしたいときは、ポーションをコマンドで出す方法を見てください。