How would I go about making a launch ability?

I’m in the moment where I started scripting powers for my game and one will be a rock launch. How would I go about making something like it? I’m planning to achieve the same or similar effect like in the

Also the rock that I circled around with my mouse always faces the direction the player launches, and so does the body, even if you’re faced somewhere else and you fire the ability it makes your character turn to that direction and launch. How do I do that? I plan on avoiding the “Humanoid.Jump = true”. I really need help with this, if needed I’ll get more gifs.

I tried doing this but it makes my character fly to that point WAY too fast:


--//General Variables\\--
local replicatedstorage  =   game:GetService("ReplicatedStorage")
local remoteevents       =   game:GetService("ReplicatedStorage"):WaitForChild("Events"):FindFirstChild("RemoteEvents")
local event              =   remoteevents:FindFirstChild(script.Name)
local serverstorage      =   game:GetService("ServerStorage")

--//Picks up the request for the server
	--//Changes the current ability's value
	currentability.Value = abilitytoset
--//Server variables
local character             =   plr.Character
local humanoidrootpart	    =   character:WaitForChild("HumanoidRootPart")
local humanoid              =   character:WaitForChild("Humanoid")
local destination           =   mousehit.p

local bv = script.BodyVelocity:Clone()

bv.Parent = humanoidrootpart

bv.Velocity =,14,mousehit.p.Z)