Sorry about the broad response, I didn’t have alot of time, what you could try doing is a.) using Beziur curves like @Thedagz said, which would most likely be the best solution, or use body velocities to move a part in a random direction direct to the players looking angle, and then destroy the Body velocity then add a body Position to the player your attacking
For making something like this you would have to use Bezier Curves, here’s a video about them getting implemented into roblox Roblox U - Bézier curves - YouTube