よくある原因
@e[type=...]のIDが間違っているdistance=..5などの範囲が狭すぎる- コマンドブロックの実行位置から対象が遠い
@sをコマンドブロック内で使い、想定と違う実行者になっている
切り分け例
/say test
/execute if entity @e[type=minecraft:zombie] run say zombie found
/execute if entity @e[distance=..10] run say nearby entity found最初は条件を緩くして、対象が拾えるか確認します。拾えたらtype、distance、nameなどを一つずつ追加します。
@sに注意
@sは「今そのコマンドを実行している主体」です。プレイヤーがチャット欄で実行する場合と、コマンドブロックやexecute内で実行する場合では意味が変わります。