- Native Minecraft Version:
- Legacy (< 1.13)
- Tested Minecraft Versions:
- Source Code:
- frash23, hasanas83V2001
A good Explainer from the Original Author's page:
- Async, Customisable Hit Detection
- 1.8 Support (1.12-1.16 Support Coming Soon!
- SmashHitX sends hit animations on the tick
What's wrong with the default hit processor?
There's nothing wrong with it, but it can be improved.
To my knowledge, there are two deficiencies:
* = This is the main focus of the plugin and is explained in the What does async hit pre-processing mean section.
- Hits are processed in the current tick stack, not on demand *
- There is a (pretty low) max clicks-per-second (aka CPS) limit hardcoded into the server
The CPS limit is automatically bypassed when we process hits on our own. SmashHit's configuration allows you to set your own preferred CPS. The CPS limit in SmashHit will keep counting a player's CPS even if the limit is reached, however they will be denied further hits - this way a hacker spamming clicks will lock himself out of combat.
What does async hit pre-processing mean?
The Minecraft server has a "stack" of operations to carry out, called the "tick stack". When new operations have to be carried out, they are added to the tick stack. The tick stack is processed 20 times every second. That means any operation can unnecessarily take an additional 50ms! This can be felt by some people in PvP, which is what this plugin aims to solve. Some big PvP servers already deploy a similar feature. (The animation is still processed in the tick stack to avoid compatibility issues)
SmashHit listens for hit requests and processes them independent of the tick stack! Actual damage is still synchronized to the Minecraft server (as damaging players isn't thread-safe), but the hit register is carried out by SmashHit - this means you can hit a player as frequently as the network can handle. SmashHit, of course, has an inbuilt configurable rate limiter.
Please do not report your bugs and similar in the review section. Either DM me here on Spigot, make an issue on GitHub or use the discussion tab.