# Uhh cframe, where are you?

So I have a problem with BodyVelocity not working as intended. I want to make the player fly backwards and a little bit up.

``````BodyVelocity.Velocity = OtherPlayer.Character.HumanoidRootPart.CFrame.LookVector * 50
``````

How would I make it go upwards aswell, I’ve tried with UpVector but it does not seem to work.

1 Like

You can try making a new Body Velocity and setting it’s velocity to:

``````local speed = 10 -- you can change this
BodyVelocity.Velocity = Vector3.new(0,speed,0)
``````
``````Origin = HRP.Position
Destination = (HRP.CFrame + (HRP.CFrame.LookVector*-5) + Vector3.new(0, 5, 0)).Position -- Little bit back and up
Direction = Destination - Origin
``````

try this localscript in StarterCharacterScripts

``````wait(2)
local Force = 10
HRP = script.Parent:WaitForChild("HumanoidRootPart")
Origin = HRP.Position
Destination = (HRP.CFrame + (HRP.CFrame.LookVector*-5) + Vector3.new(0, 5, 0)).Position -- Little bit back and up
Direction = Destination - Origin
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.Parent = HRP
BodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
BodyVelocity.Velocity = Direction*Force
for i = Force, 0, -1 do
wait(.1)
BodyVelocity.Velocity = Direction*i
end
BodyVelocity:Destroy()
``````

You would instead construct a new Vector3 and set the X and Z to be the look vectors X and Z axes, then for the new Vector3’s Y position, you would give it its own number. In this case we will do 100.

``````local look_vector = OtherPlayer.Character.HumanoidRootPart.CFrame.LookVector * 50
BodyVelocity.Velocity = Vector3.new(look_vector,100,look_vector)
``````

Now they have an upwards velocity of 100 separate from the look vector.

Also, little tip, `BodyVelocity` is deprecated in favor of `LinearVelocity`. It is recommended you use that instead (unless you can’t handle attachments having to be made every time).