Dynamic force field - How to get location for shader?


I was wondering how I could go about adding dynamic functionality to a shader. For instance, let’s say I wanted a force field shader or a puddle of water that would create a flash or ripple based on a collision location? So I could throw the force field shader on, say, a sphere and then shoot the default weapon at it and display a ripple/flash everywhere the projectiles hit.

Can anyone point me in the right direction?