Target Selector Argument problem

Solution 1:

The big problem I ran into while testing this command was the snowball being too fast for r=1 to work. I believe the time between the snowball entering r=1 and being destroyed by hitting the entity is not long enough. If you change it to r=3 it will function. This has the downside of being able to miss an entity by a few blocks and still target it.

Also, to point it out, this will be targeting the snowball in the effect portion of the command. One method I use to determine what is targeted is to use the say command.

Command I used to test your command:

execute @e[type=snowball] ~ ~ ~ execute @e[r=1,type=!Player] ~ ~ ~ say Found

In this case, chat contained several instances of: [Snowball] Found and did not contain any instances of the entity the snowball hit.

I attempted to tag the snowball to exclude it from the target selector. This allowed radius to be reduced to 2 but 1 still does not function.

To add the tag, I used:

scoreboard players tag @e[type=snowball,tag=!Bullet] add Bullet

With the tag, you can exclude it from the effect portion of the command:

execute @e[tag=Bullet] ~ ~ ~ effect @e[r=2,type=!player,tag=!Bullet] Wither 1 6

Neither is a perfect solution though.

Your target selector syntax was correct, including the multiple arguments.