Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
Platforms
Links
Tags
Creators
Details
Licensed GPL-3.0-only
Published 5 days ago
ShieldSync
ShieldSync is a Paper plugin that keeps shield raise timing consistent across different pings.
In vanilla, shields have a 5 tick (250 ms) raise delay built in, regardless of ping. However, when you are higher ping, the delay that raises your shield will be the 5 tick delay + your ping. What this mod does is subtract your ping from the 5 tick delay, which reduces the shield delay closer to 250 ms regardless of ping, simulating how shielding would be on lower ping.
NOTE: This mod has only been tested on 1.21.11. Use this version for the best results. DM me on discord (pheological) if you want another version for your server.
What It Does
- Fetches a players ping using
keepAlivepackets. - Converts ping into shield compensation ticks.
- Due to how the ticking system works, the ping must be calculated into ticks. This means that the delay can only be reduced by multiples of 50 ms. For example, if a player is 80 ms, it can only reduce the delay by 50 ms (1 tick), so the shields will feel like what it would on 30 ms, not 0. If they are 180 ms, itll reduce it by 150 ms (3 ticks), and it'll feel like 30 ms.
- If ping is over 250 ms, it'll remove all 5 ticks.
150 ms is subtracted so shielding will feel synonymous to someone who's 30 ms.
Installation
- Put
ShieldSyncjar in your serverplugins/folder. - Ensure PacketEvents is also in the folder.
- Start/restart the server.
Commands
/shieldsync enable- Enable ShieldSync./shieldsync disable- Disable ShieldSync./shieldsync status- Show whether ShieldSync is enabled./shieldsync debug- Toggle debug output for all players./shieldsync debug <player>- Toggle debug output filtered to one player.
Notes
- This plugin does not use NMS or reflection.
- PacketEvents is used as an external dependency plugin (not shaded).
- Debug output is intended for testing/tuning and can be noisy.
Credits
- xSweetJapan for idea (sweetjapan on discord)
- Axionize for ping fetching implementation, I used the code from Knockback Sync.


