Weird Body Velocity On Dive Mechanic

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    Consistent Dive Mechanic

  2. What is the issue? Include screenshots / videos if possible!

For some reason you can manipulate the dive by swerving your character left and right as well as timing you dive relative to your jump to go WAYYYYY too high.
To be clear this person is not hacking nor using outside sources to influence gameplay this glitch also works on pc and has been replicated by other users.

This is the high dive: Roblox VR 2022 12 29 14 43 04 02 DVR Trim - YouTube
Different perspective: MedalTVRoblox1672341854933 1 - YouTube

This is the regular dive: Roblox VR 2022 12 29 14 59 51 05 DVR - YouTube

  1. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    N/A

4.) Code

local UIS = game:GetService("UserInputService")
local density = .3
local friction = .3
local elasticity = 0
local frictionWeight = 1
local elasticityWeight = 10
local ismobile = UIS.TouchEnabled

if ismobile == true then 
	game.Players.LocalPlayer:WaitForChild("PlayerGui"):WaitForChild("Mobile").Enabled = true
	local debounce2 = false
	game.Players.LocalPlayer:WaitForChild("PlayerGui"):WaitForChild("Mobile").Dive.MouseButton1Down:Connect(function()
		if not debounce2 then debounce2 = true
			if script.Parent.Storage:WaitForChild("canDive").Value == false then debounce2 = false return end
			local char = script.Parent
			local humanoid = char:WaitForChild("Humanoid")
			if humanoid.MoveDirection == Vector3.new(0,0,0) then debounce2 = false return end
			local Torso = char:WaitForChild("Torso")
			game.Players.LocalPlayer:WaitForChild("PlayerGui"):WaitForChild("Mobile").Enabled = false
			
			local dive = Instance.new("BodyVelocity")
			dive.MaxForce = Vector3.new(3,0,3)*15000
			dive.Velocity = Vector3.new(humanoid.MoveDirection.X * 44.5, humanoid.MoveDirection.Y , humanoid.MoveDirection.Z * 44.5)--Distance
			dive.Parent = char.Head

			humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
			local baseAngle=Torso.CFrame-Torso.CFrame.p
			local velObject=baseAngle:toObjectSpace(CFrame.new(Torso.Velocity))
			local velocity=velObject.p;
			local bt=Instance.new("BodyThrust",Torso)
			Torso.RotVelocity=Vector3.new(0,0,0)
			bt.Location=Vector3.new(0,8,0)
			bt.Force=Vector3.new(velocity.x,1750,velocity.z)*5.7
			task.wait()
			bt:Destroy()
			task.wait(0.1)
			dive:Destroy()
			task.wait(3)
			game.Players.LocalPlayer:WaitForChild("PlayerGui"):WaitForChild("Mobile").Enabled = true
			debounce2 = false
		end
	end)
end```


Thank you -Eli

Maybe change this line :

dive.Velocity = Vector3.new(humanoid.MoveDirection.X * 44.5, humanoid.MoveDirection.Y , humanoid.MoveDirection.Z * 44.5) --Distance

to

dive.Velocity = Vector3.new(humanoid.MoveDirection.X * 44.5, 10, humanoid.MoveDirection.Z * 44.5)--Distance

nope still same glitch, it didnt fix, i just tested,