Hello, I have a problem my batman character does not plan to fly properly as in the arkham batman games, I want it to fly the same but I have this poor script that what it does is fly to the front alone without planning as a super jump. Can anyone help me? ? since everything I find related does not work for me, it does not do what I want. Thank you.

humanoid.FreeFalling:Connect(function(IsFalling)
   
	ground1.Touched:Connect(function(tocar)
		if rot and force and mesh then
			if tocar ~= nil then
				humanoid.PlatformStand = false
				rot:Destroy()
				force:Destroy()
				mesh:Destroy()
			end
		end
	end)
	ground2.Touched:Connect(function(tocar)
		if rot and force and mesh then
			if tocar ~= nil then
				humanoid.PlatformStand = false
				rot:Destroy()
				force:Destroy()
				mesh:Destroy()
			end
		end
	end)
	if IsFalling then
		humanoid.PlatformStand = true
		rot, force = character.UpperTorso:FindFirstChild("Rotate"), character.UpperTorso:FindFirstChild("Position")
		rot = Instance.new("BodyAngularVelocity", HumanoidRootPart) 
		rot.Name = "Rotate" rot.AngularVelocity = Vector3.new(0, 0, 0)  
		rot.MaxTorque = Vector3.new(5000, 5000, 5000) rot.P = 1000 
		force = Instance.new("BodyPosition", HumanoidRootPart) 
		force.Name = "Position" force.MaxForce = Camera.CFrame.lookVector * Vector3.new(5000,game.Workspace.Gravity,5000) 
		force.Position = Camera.CFrame.lookVector * Vector3.new(5000,game.Workspace.Gravity,5000) 
		force.P = 1000 force.D = 10
		mesh = Instance.new("SpecialMesh", meshPartCloak)
		mesh.Parent = meshPartCloak
		mesh.Name = "cloakfly"
		mesh.MeshType = "FileMesh"
		mesh.MeshId = "rbxassetid://"
		mesh.Scale = Vector3.new(0.8,0.8,0.8)
	       
		if humanoid.Health == 0 then
			mesh:Destroy()
			meshPartCloak:Destroy()
		end
	
	end
	
end)

my game

https://www.roblox.com/games/2455959899