Having troubles with a Ground-Pound system

Hello I tried to make a ground pound system, but It fires at the wrong time, and fires on a “Long Jump” “Event”

Code

h.StateChanged:Connect(function(state)
	if state == Enum.HumanoidStateType.Freefall then
		
		if game.ReplicatedStorage.PlayerValues.CanCrouch.Value == true then
			
			repeat wait()

			until game.ReplicatedStorage.PlayerValues.Crouching.Value == true
			print("Ground Pound")
			
		end
		end
end)

Thanks!

pls helpp

I’m not sure If I did this the most practice way.

Could you please explain what you mean by “Long Jump Event”?

If they crouch and jump then they long jump.

Turns out FreeFall is really broken.
I Used Jumping instead.

Edit, Never mind, still broken.