So, any particular reason why people are still talking about how it should be possible, etc, after I already posted a script that does it? Even if you didn't like the way it works, which is understandable because it would only affect one playertype, but still a comment saying that would be nice.
Anyways, I tried looking into things to package. onCollision is not called on collision with bricks and interiors, probably among other things. Running a trace and then falling to death shows onImpact as the first function called, and that is only called when the player falls enough to take fall damage.
My only other idea is quite hacky (though I feel that I may be missing something big that would make it less hacky) - loop through all PlayerData datablocks, set their minImpactSpeed to a really low number so onImpact is always called, and then rewrite onImpact to compare their speed with a pref before applying damage