For players, you will need to use an Event, this is because for the Velocity to work properly, it needs to be executed by the player themself otherwise it will not "sync" properly through the server.
For making a Gravity Gun without a piston, you can just get the position of the Gravity Gun and add it's own Forward Vector (you can Vector Scale the forward vector if you want to change the distance on how far the position is, by default it is 1m) and subtract that value from the Object/Player position.