How can I make it so that if a player causes a snowball to be launched, the snowball can cause 2 separate things when it lands depending on which item the player is holding?
For this you can either set the snowball's name when launching the projectile, and then detect the name by using If Entity , you could also use UUID's and variables but the naming is the simplest option.