Thanks! The code works even better! One more thing I noticed is that there can be some circumstances where downward speed is applied until the maximum downward speed is reached (-90 in the example code) which would be undesirable. In the attached image I have created another dummy entity that does nothing but act like an obstacle. The player can jump above it and hang off the other entity, accumulating downward speed that is not applied until the player moves off.