Make fall damage proportional to velocity rather than fall distance.
This fixes any issue with Minecraft calculating the wrong fall damage due to the way it does so, such as picking up a mob with a lead and flying it into the sky and then setting it gently down, while it still gets insta-killed.
Introduction:
This is great for if you want more realistic fall damage, or even for plugins which can allow a sort of flight such as a jet pack and thus might cause the games fall damage to be inaccurate. It uses the actual speed of the player for the damage rather than just the total distance they've fallen since they were last on solid ground. The games fall distance, for some reason, doesn't reset when an entity moves upwards or not at all, and even if it did reset, that doesn't account for factors which might speed or slow them. This is the only fool proof way to determine an accurate damage.
Velocity Numbers Explanation:
The velocity in Minecraft is a measurement which is usually a low decimal number for fall damage. at 0.6 is around where the game decides to make damage take effect(after 4 blocks of falling), and the velocity never quite reaches 4.0(from just falling) due to air resistance. Although for most circumstances the player probably wouldn't move much faster than 2.0, so that's why the velocity numbers may seem small.
Fall Settings:
You can control various aspects of the fall damage to make it work the way you want, changing the mechanics. These settings are all within the config.yml after the plugin is first run. I have the defaults set to fairly closely mimic the normal game fall gamage. There are 3 main values which affect the way the damage is taken:
Note: For all the values, you must keep the decimal point in order for it to work properly.
Threshold:
The threshold is is the velocity beyond which the damage takes effect, and thus you can make players be able to fall farther without taking any damage. Although increasing it prevents certain distances from giving damage, decreasing below around 6.0 it doesn't have an effect on when entities begin to take damage. It does, however, change the calculated damage.
The default value is 6.0
Multiplier:
This multiplies the velocity to get a more realistic damage since the velocities are so small. This ensures that there is a great enough damage to affect the player.
The default value is 10.0
Exponent:
The exponent is used to counteract the air resistance. When I first used larger exponents, I found that most of the time it would grow much too quickly, but the value I found counters it nicely. You could also use it if you actually want the damage to be exponential, you may increase it, or you can set it to 1.0 to have no effect.
The default value is 1.1
Other Config Settings:
Entity Tracking:
The configuration setting "track-entities" determines whether to change fall damage for mobs. If your server is experiencing lag, you might want to try disabling this, which won't affect players. There is also a setting which you can add - enter "cycle-all-chunks: true" - which will make it apply to entities not in loaded chunks as well.
Testing:
If you are experimenting with various config settings and would like more data than just the hearts you lose from a fall, you can add the line "display-damage: true" to the config to allow my plugin to send players additional data when they fall. This includes the previous damage the player would have taken, the velocity the player was traveling at, and the exact new damage the player has taken.
If you would like a plugin more accurately mimics minecraft fall damage, but still fixes this bug, try my plugin FixFallDistance