Author Topic: Blockland Fall Damage Glitch  (Read 1642 times)

While doing testing for a new gamemode I'm working on, I orbed up to fall long distances to die from fall damage.

Then I fell from well more than enough to kill you... and nothing happened.


In the video, I refer to it as "this one spot" - but after later testing, I've found that the glitch only occurs under two very specific conditions, which technically lets you fall almost anywhere without fall damage.

1.) You must have just orbed.  I don't know why, but it doesn't work if you change your player's position directly.
2.) You must fall exactly 147.86 Torque units.  So if you're falling onto a 2x2 brick, you have to fall from a height of 148.46 TU.


The code used in the video to teleport me to the correct altitude was:

Code: [Select]
%cl = findClientByName("Xalos");
servercmdDropCameraAtPlayer(%cl);
%cl.camera.setTransform("33.2417 -12.1817 147.86");
schedule(1000, 0, "servercmdDropPlayerAtCamera", %cl);


Weird.

This is caused by using the orb just before you fell. After leaving orb mode, you have a few seconds of invulnerability, just like when you spawn.

This is caused by using the orb just before you fell. After leaving orb mode, you have a few seconds of invulnerability, just like when you spawn.

At any height other than that very specific height, I die from fall damage as per normal.

Falling from heights lower than that will cause me to die from fall damage, meaning it can't be invulnerability that's causing it.

Blockland's physics are broken?

News to me.

1.) You must have just orbed.  I don't know why, but it doesn't work if you change your player's position directly.

This is because you are teleported to a position 2.156 units lower than the camera's position upon using /dropPlayerAtCamera. Subtract this value from your 147.86 value (and other values I am about to mention) and you will find that it still works.

2.) You must fall exactly 147.86 Torque units.  So if you're falling onto a 2x2 brick, you have to fall from a height of 148.46 TU.

Okay this is maybe a bad explanation but here goes:

When falling, your velocity always increases at a predictable rate. These1 are the first 128 velocities (Z, negative, absolute) you will find your Blockhead going through. As you might guess, a physics engine updates position by taking the velocity and subtracing a value based on how much time has elapsed since it was last processed. These2 are the first approximate 128 positions (Z, negative, relative) you will find your Blockhead at. Should your current position be within ~0.016 units of the ground, there seems to be some code that nudges your position slightly (like 0.00033 units?) that occurs and breaks flow in the physics routine before the next velocity frame position update, which would kill you.

So if you fall from within 0.016 (still unsure about range) of the heights in 2nd link, you'll live.

EDIT: Changed the second link a bunch of times; added "approximate" disclaimer but they all should work.
« Last Edit: September 13, 2014, 10:11:49 PM by Truce »

Blockland's physics are broken?

News to me.
We just assumed you were unaware of it.


also if you have extreme high latency and jump, it becomes very jagged. Once you hit the ground, it does multiple impact shakes and then you die from falling damage

Probably a rounding error due to the server tickrate. Correct me if I'm wrong in thinking this, but it seems similar to bounces in source jumping. There's a similar phenomena with bhopping as well, where you can do it on a surface with a 1hu teleport without using an explosive.