this is the vaulting logic as well, i don't know what could be reseting the pivot point to the new location here
Jump = function()
if not plr:GetAttribute("CanJump") then return end
if plr:GetAttribute("Sprinting") then
local hrp: Part = chr:WaitForChild("HumanoidRootPart")
local lv = hrp.CFrame.LookVector
local params = RaycastParams.new()
params.FilterDescendantsInstances = {chr}
params.FilterType = Enum.RaycastFilterType.Exclude
local step = 0.5
local dLen = 1.26
local studs = 8
local p = hrp.Position - Vector3.new(0, dLen, 0)
local VaultCheck = workspace:Raycast(p, lv * (studs - 2), params)
visualize.Line(p, VaultCheck and VaultCheck.Position or p + (lv * (studs - 2)))
local VaultCheck2 = workspace:Raycast(p + Vector3.new(0, dLen, 0), lv * (studs - 2), params)
visualize.Line(p + Vector3.new(0, dLen, 0), VaultCheck2 and VaultCheck2.Position or (p + Vector3.new(0, dLen, 0)) + (lv * (studs - 2)))
if VaultCheck2 and VaultCheck2.Position then hum.JumpPower = 50 return end
if VaultCheck and VaultCheck.Position then
visualize.Point(VaultCheck.Position)
local CheckPart = Instance.new("Part")
CheckPart.CanCollide, CheckPart.CanTouch, CheckPart.CanQuery = false, false, false
CheckPart.Transparency = 1
CheckPart:PivotTo(CFrame.new(VaultCheck.Position + Vector3.new(0, dLen, 0)) * hrp.CFrame.Rotation)
CheckPart.Rotation = hrp.Rotation
CheckPart.Parent = workspace
local CheckPos = CheckPart.Position
visualize.Point(CheckPos)
local CanVault, endPos