Minecraft – Is it possible to target entities with potion effects through any command

minecraft-java-edition

I was screwing around and attempting to make a mechanism where if a player shoots an entity with a special arrow (that gives a potion effect as a marker), and then activates another command block, it would kill all entities with that potion effect. After searching extensively, I couldn't find any nbt effect that I could use to kill entities with a potion effect, and there most certainly was not any other argument after @e[, so is there any nbt effect to target it, or any other way that I overlooked?

I found an old answer suggesting scoreboard functions, but it seems to be outdated and have the same issue (commands not being able to discriminate/select entities based on active effects, as far as I can find).

Best Answer

The NBT tag you're looking for is ActiveEffects. For example, if you shoot a mob with a spectral arrow, it gets this NBT tag:

ActiveEffects:[{Id:24b,Duration:200,Amplifier:0b,Ambient:0b,ShowParticles:1b,ShowIcon:1b}]

So you can target every mob with the glowing effect like this:

@e[nbt={ActiveEffects:[{Id:24b}]}]

Unlike when setting NBT, you have to be exact when reading NBT, so you need the b.

The number is the numerical effect ID (archive).