I am not sure if there is a way to fix this, but i am gonna go with where here is developer friends there is a way.
I am getting this annoying unwanted double jump after my character falls from a high place.
This is usually is not a problem but I am making a game where it is Important to be able to instantly take off from landing and this messes it up a lot.
I had some success with this script placed in StarterPlayer.StarterCharacterScripts:
script.Parent:WaitForChild("Humanoid").StateChanged:Connect(function(old, new)
if old == Enum.HumanoidStateType.Landed then
game:GetService("RunService").Heartbeat:Wait()
script.Parent.HumanoidRootPart.Velocity = script.Parent.HumanoidRootPart.Velocity * Vector3.new(1, 0, 1)
end
end)
I did have to experiment with this a little to get here. It seems that the humanoid switches to the Landed state at least a frame earlier than it actually appears to hit the ground, so I checked when the humanoid left the Landed state, then also waited for the end of the frame (after physics step, so this gets applied on the next frame.)