Hey, I’m aware this may not be what you are looking for but perhaps a combination of AlignPosition and this module would help? This module is so much help for me and is truly amazing and removes all headache from bezier curve by defining it all into one simple function from loading the module …
Hope this helps
Code Example:
local Bezier = require(--[[reference bezier module script]])
local function leap(character : Model, distance : number, height : number)
local root = character:FindFirstChild("HumanoidRootPart")
local distance = distance
local height = height
local pointA = root.CFrame
local pointC = pointA*CFrame.new(0,0,distance)
local pointB = pointA:lerp(pointC,0) * CFrame.new(0,height,0)
local tweenTime = 1 --how long the bezier curve should take
Bezier.new(pointA.Position, pointB.Position, pointC.Position)
local b = Bezier:CreateCFrameTween(root, {"CFrame"}, TweenInfo.new(tweenTime))
b:Play()
task.delay(b.TweenInfo.Time, b.Destroy, b)
end