In Minetest Game 0.4.14, if you fall very deep (about 100 node lengths or so) and die, the bones which appear may appear higher or sometimes even much higher than the actual place of death/impact.
This often leads to bones “floating” in the air.
The expected behaviour is of course that the bones appear on the floor, because this is the actual place of death.
(why did you use the words "sometimes" and "often"? it is nearly every time like this)
a nice solution would be to make bones falling like sand or gravel, in real life bone piles don't float even if someone is killed in air or someone places them onto a wall
This problem is older than 0.4.12... I know it and can confirm.
DS-Minetest's suggestion sounds interesting, but this doesn't really solve the issue. The real solution is to make sure that bones spawn where the player dies.
Also, when you create a falling_node in mid-air, it won't fall automatically as far I know. There first has to be some event to make it fall.
Maybe because the player is moving so fast the last stored point of the player is higher up? If so i can't see a fix for this. How much higher are the bones? A few nodes is acceptable, as is floating bones.
~2-10 nodes
Easiest way to fix this, I think, is to add bones to the falling node group and then call minetest.check_for_falling() after spawning bones on player death. Unfortunately this will not work until falling nodes properly serialize their inventory meta data (I tried making bones fall some time ago, and it did not work due to this problem).
“Feature request”? Seriously? o_O
I recently rewrote the bones mod, and I can confirm that this issue seems to be rooted in the engine itself. When falling, the player's last known position, as passed to the register_on_dieplayer( ) function, is frequently several meters higher than the point of impact. I suspect this is due to the collision detection algorithm itself or else client-server lag (I haven't determined which).
I'm not a fan of changing bones into falling nodes because that would grief many builds that contain elevated bones. Backwards compatibility is paramount.
I'm not sure there is a simple fix. After all, a player could conceivably die from low hp just before hitting the ground (say, if attacked by a mob while descending a mineshaft). So the reported position of death could, in fact, be accurate depending on many circumstances.
This could be solved by doing a ray cast straight down if a player dies from falling damage. That way the body can be put on top of the ground surface as well, and the bones can be put on top of the surface.
Side note: the raycast code isn't usable from Lua yet. (#4828 ?)
Thanks for the input, engine issue, if indeed anything should be changed.