Skip to main content

TP-Hit

Other names: TeleportHit, SuperHit

What does it do and how does it work: Tp Hit allows the user to hit players from an unnatural distance (3+ Blocks), Tp Hit works by: the reach check is client sided and the server allows more then 3 blocks of reach. this module works differently to normal reach, lets say there is an opponent 10 blocks away, when you first click your attack button the client sends a player move packet which contains the coordinates you want to be at and it places yourself closer to your target, but lets say that is not close enough to the target to reach them since you cannot move father then the teleport distance the server allows (anything father and the player movement packet will be rejected and the server sends back a synchronised player position packet to reset the players position back), so the module works in increments to bypass this, after the player reaches the point in which the player can hit the target the attack packet is sent to the server and the module sends more player move packets to bring the player back to their original spot, and since the client sent the packets directly using a ClientConnectionInvoker to access the sendImmediately packet function you wont see the player move at all (The packets are sent in the background, ergo in the game the player does not move), Other players also cannot see you due to the tick rate of the server while on the clientside we may be sending a lot of player movement packets per tick, the server only updates the position of the player once per tick or so.

Checking if the movement is too fast works like this:

  • Each server tick, the player's current position is stored
  • When a player moves, the changes in x, y, and z coordinates are compared with the positions from the previous tick (Δx, Δy, Δz)
  • Total movement distance squared is computed as Δx² + Δy² + Δz²
  • The expected movement distance squared is computed as velocityX² + velocityY² + velocityZ²
  • If the total movement distance squared value minus the expected movement distance squared value is more than 100 (300 if the player is using an elytra), they are moving too fast.

Ergo the client works around this and ensures that the player movement packets the client sends match these requirements ^

Detection difficulty: img

Evidence required: img