I’ve tried both, and they seem to work fine. Right now I’m using the Humanoid.StateChanged method to detect when a player lands.
1st method:
Humanoid.StateChanged:Connect(function(state)
if state == Enum.HumanoidStateType.Landed then
ResetState()
end
end)
2nd method:
Humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
if Humanoid.FloorMaterial ~= Enum.Material.Air then
ResetState()
end
end)