Changing the Z value of a bodyvelocity using a Part's orientation

So, i want to create a projectile using BodyVelocity, and i’ve already done a lot of stuff, the most important is making it go up and to the sides with the part’s orientation, but i can’t make it go forward based on the part orientation, here is the script:

local part = script.Parent
local pBody = part:FindFirstChild("BodyVelocity")
local RS = game:GetService("RunService")

RS.Heartbeat:Connect(function()
	local orientation = part.Orientation
	if part:FindFirstChild("BodyVelocity") ~= nil then
		local pBody = part:FindFirstChild("BodyVelocity")
		pBody.MaxForce = Vector3.new(math.abs((orientation.Y) * 1000), math.abs((orientation.X) * 1000),1000)
		pBody.Velocity = Vector3.new((orientation.Y / 10) * -1, (orientation.X / 10), 0 -- here is what i want to change)
		print(orientation.Y - orientation.X)
	end
end)

The velocity of a part follows the world coordinate system because of the Vector3 value (Meaning it will only aply to the set Z axis of the world). You want to base the velocity on a CFrame which contains the relative value of the part which would be CFrame.LookVector * velocity.