Keven Dallaire Posted September 7, 2025 Report Posted September 7, 2025 So, I have around 80+ hours in the game so far, having a blast, and something I have noticed is that fall damage is very weird. I used to think it was just like Minecraft where 4 blocks of height is around where fall damage starts. However, the more I played the more confused I grew. I once jumped off, by accident, from over 10 blocks of height and took 0 damage, not even a sound from my character. But now, I am building and every time I walk off the walls (4 blocks of height) my guy starts whining despite only taking 0.1 hp of damage. To add more context, sometimes I jump from 5 blocks of height and take a quarter of my HP in damage and sometimes i jump from the same height or more and took none to very little damage. How does it work? Armour doesn't seem to affect it. besides, I hardly am actively wearing armour when travelling or building. I only put in on when I suspect trouble.
LadyWYT Posted September 7, 2025 Report Posted September 7, 2025 I'm not entirely sure. It seems roughly similar to the other block game, for the most part. However, I think fall damage may also be somewhat bugged, in that it's possible to fall quite a distance and take no damage, depending on how one moves. Basically, if you're not actively touching any movement keys while falling, you have a higher chance of avoiding the damage...but I wouldn't go trying to rely on that, as it seems inconsistent. Additionally, it's not wise to rely too heavily on exploits/bugs like that, given the increased risk of accidents once the exploit/bug is fixed. 2
Never Jhonsen Posted September 8, 2025 Report Posted September 8, 2025 While I too have experienced the rare instances of falling down 10+ blocks and taking 0 damage, there is one feature that many new players may not know; sliding down a wall will remove your fall damage Almost all of the instances from where I've fallen down steep areas without taking damage, have been within less than a block from a vertical surface (tree, cliff wall, steep ground hole I failed to jump over). 2
Kryll Posted September 8, 2025 Report Posted September 8, 2025 39 minutes ago, Never Jhonsen said: While I too have experienced the rare instances of falling down 10+ blocks and taking 0 damage, there is one feature that many new players may not know; sliding down a wall will remove your fall damage Almost all of the instances from where I've fallen down steep areas without taking damage, have been within less than a block from a vertical surface (tree, cliff wall, steep ground hole I failed to jump over). I just did some tests with this and yeah, it works, but why does this happen? I built a 50 block tall pillar and took no damage. I even decided to remove the entire center of the pillar aside from two blocks at the bottom and one at the top. Lined myself up and fell off the side. The two blocks saved me (one block does not work). OP I'm guessing what happens is sometimes you fall but land next two stacked blocks and get lucky. Not really sure how to feel about this.
Never Jhonsen Posted September 8, 2025 Report Posted September 8, 2025 4 minutes ago, Kryll said: I just did some tests with this and yeah, it works, but why does this happen? Because your Seraph is cool and epic and uses the friction of sliding down a wall to slow a fall From what I understand, this is a feature
Maelstrom Posted September 8, 2025 Report Posted September 8, 2025 I've taken zero damage (in 1.20, haven't played 1.21 yet) after falling sufficiently far enough to take damage sometimes but not others and believe it involves any movement after initiating the fall. Additionally, catching a ladder negates ALL fall damage which will make for a much greater "belly flop" challenge when dropping from world height to mantle without taking damage. Especially if there is but a single ladder affixed to the side of a single block.
Bumber Posted September 10, 2025 Report Posted September 10, 2025 (edited) I think the calculation is based on velocity rather than distance fallen, from what I remember the last time I looked at the code. That was back when I discovered that those spikes you find near locust nests can somehow break your fall and do less damage than hitting the dirt. All sorts of peculiarities with game mechanics. Edited September 10, 2025 by Bumber 3
LadyWYT Posted September 10, 2025 Report Posted September 10, 2025 10 hours ago, Bumber said: All sorts of peculiarities with game mechanics. I feel like this is one reason a "Vintage Science" thread would be pretty fun. List all those odd gameplay interactions that really shouldn't work, but somehow do. 3
Arisilde Posted December 1, 2025 Report Posted December 1, 2025 (edited) The relevant part of the code is: yDistance *= (double)this.entity.Properties.FallDamageMultiplier; double fallDamage = Math.Max(0.0, yDistance - 3.5); double expectedYMotion = -0.04100000113248825 * Math.Pow(fallDamage, 0.75) - 0.2199999988079071; double yMotionLoss = Math.Max(0.0, -expectedYMotion + withYMotion); fallDamage -= 20.0 * yMotionLoss; if (fallDamage <= 0.0) { return; } Basically, it measures the fall distance in another method, and supplies it as "yDistance". Then that is fed into this calculation. Any fall under 3.5m is disregarded. Any distance above 3.5 is calculated into a modifier and applied to the base damage of 20, then that result is given to entity.RecieveDamage() as the damage amount. I'm not totally sure how the expectedYMotion line works, what those hard coded values are representing/based on, or why it's done in exactly this way, but you can confirm here it's based on fall distance. That said, it's definitely wonky in practice. I've had some truly horrible falls result in little to no damage. I think there's some interference that when you brush against walls while falling it sometimes starts the fall measurement over, resulting in much less damage. That's just a theory based on observation though. The fall is calculated in EntityBehaviorControlledPhysics.ApplyTests(), which does the measurement, but also consistently calls HandleSteppingOnBlocks(). I suspect it's the later giving false positives that's resetting the fall distance when touching walls. Edited December 1, 2025 by Arisilde 2 1
Vexxvididu Posted December 1, 2025 Report Posted December 1, 2025 1 hour ago, Arisilde said: The relevant part of the code is: yDistance *= (double)this.entity.Properties.FallDamageMultiplier; double fallDamage = Math.Max(0.0, yDistance - 3.5); double expectedYMotion = -0.04100000113248825 * Math.Pow(fallDamage, 0.75) - 0.2199999988079071; double yMotionLoss = Math.Max(0.0, -expectedYMotion + withYMotion); fallDamage -= 20.0 * yMotionLoss; if (fallDamage <= 0.0) { return; } Basically, it measures the fall distance in another method, and supplies it as "yDistance". Then that is fed into this calculation. Any fall under 3.5m is disregarded. Any distance above 3.5 is calculated into a modifier and applied to the base damage of 20, then that result is given to entity.RecieveDamage() as the damage amount. I'm not totally sure how the expectedYMotion line works, what those hard coded values are representing/based on, or why it's done in exactly this way, but you can confirm here it's based on fall distance. That said, it's definitely wonky in practice. I've had some truly horrible falls result in little to no damage. I think there's some interference that when you brush against walls while falling it sometimes starts the fall measurement over, resulting in much less damage. That's just a theory based on observation though. The fall is calculated in EntityBehaviorControlledPhysics.ApplyTests(), which does the measurement, but also consistently calls HandleSteppingOnBlocks(). I suspect it's the later giving false positives that's resetting the fall distance when touching walls. That's interesting. My guess is it's a bit overengineered and maybe trying to approximate how fall damage might be reduced due to air resistance? Not sure what else that expectedYMotion would be trying to do.
Arisilde Posted December 1, 2025 Report Posted December 1, 2025 1 minute ago, Vexxvididu said: That's interesting. My guess is it's a bit overengineered and maybe trying to approximate how fall damage might be reduced due to air resistance? Not sure what else that expectedYMotion would be trying to do. You may be right, I'm not really sure. The only thing I can say is this is also slightly tied to gliding, so maybe it's some obscure check to calculate gliding crash damage or something. I've never actually used a glider, so I'm not sure if you take damage when landing too fast or anything. There's FAR too many hard coded values in the code base, and nowhere near enough comments, for my liking Here's the full method: public override void OnFallToGround(Vec3d lastTerrainContact, double withYMotion) { if (!this.entity.Properties.FallDamage) { return; } EntityAgent entityAgent = this.entity as EntityAgent; bool gliding = entityAgent != null && entityAgent.ServerControls.Gliding; double yDistance = Math.Abs(lastTerrainContact.Y - this.entity.Pos.Y); if (yDistance < 3.5) { return; } if (gliding) { yDistance = Math.Min(yDistance / 2.0, Math.Min(14.0, yDistance)); withYMotion /= 2.0; if ((double)this.entity.ServerPos.Pitch < 3.9269909262657166) { yDistance = 0.0; } } if (withYMotion > -0.19) { return; } yDistance *= (double)this.entity.Properties.FallDamageMultiplier; double fallDamage = Math.Max(0.0, yDistance - 3.5); double expectedYMotion = -0.04100000113248825 * Math.Pow(fallDamage, 0.75) - 0.2199999988079071; double yMotionLoss = Math.Max(0.0, -expectedYMotion + withYMotion); fallDamage -= 20.0 * yMotionLoss; if (fallDamage <= 0.0) { return; } this.entity.ReceiveDamage(new DamageSource { Source = EnumDamageSource.Fall, Type = EnumDamageType.Gravity, IgnoreInvFrames = true }, (float)fallDamage); } 1
Metalton Posted December 1, 2025 Report Posted December 1, 2025 Hmm.. thinking it has something to do with some built in grace for running down long stepped gradients (rolling hills) without constantly taking .1 damage forcing you to slow down more than you should have to.. Has the side effect of occasionally lessening some roofing.. accidents.. when working on builds.. So, maybe they decided to just keep it the way it is?
Arisilde Posted December 3, 2025 Report Posted December 3, 2025 On 12/1/2025 at 4:31 PM, Metalton said: Hmm.. thinking it has something to do with some built in grace for running down long stepped gradients (rolling hills) without constantly taking .1 damage forcing you to slow down more than you should have to.. Has the side effect of occasionally lessening some roofing.. accidents.. when working on builds.. So, maybe they decided to just keep it the way it is? Probably not that specifically, as the <3.5m fall negation would cover the vast majority of that behavior unless you're dropping down extremely steep inclines, and honestly you probably ought to take damage then. I do think it should be a server setting instead of a hard coded 3.5m though. Far too much in this game is hard coded. I think it boils down to faulty "landing" detection at the end of the day. Either for the ground, or because they have a system for stopping a fall when you connect to a ladder that also might be part of the problem. That detection might be misfiring. To be fair, anything beyond basic OnGround checks tends to be tricky. You almost immediately start running into ballooning edge cases. You're likely right on the part about them landing on "good enough for now" because of this. 1
Broccoli Clock Posted December 3, 2025 Report Posted December 3, 2025 I feel that jumping at "just the right time" offsets some fall damage, how much, not sure, but I've accidentally fallen far enough to take damage and in a panic jumped and I took none. Whether the jump is necessary or it's just random luck that I didn't take damage and the jump was irrelevant, who knows.. 1
Vratislav Posted December 3, 2025 Report Posted December 3, 2025 4 hours ago, Broccoli Clock said: I feel that jumping at "just the right time" offsets some fall damage, how much, not sure, but I've accidentally fallen far enough to take damage and in a panic jumped and I took none. It definitely works. Recently I have learned it to avoid fall damage almost all times, unless I fall into bottomless pit more than 20 blocks deep. But maybe, it works better because I actually play hunter for the first time? Surely I was able to offset some fall damage before as commoner, but with hunter, I feel asi it is much easier. Still, may be just a feeling.
Recommended Posts