Mineuniverse
Log in Register
Mods

Proper Ping

Measure and display ping properly
by Unixkitty
Download Claim this project
4,902 downloads
0 likes
Updated Jul 6, 2026
0 hypes
Map and Information Utility & QoL

Fabric and newer Minecraft versions coming soon.


Vanilla ping/latency calculation always seemed incredibly inaccurate and delayed to me.

They only send the latency value to clients once every 30 seconds: 
public void tick() {
   if (++this.sendAllPlayerInfoIn > 600) {
      this.broadcastAll(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_LATENCY, this.players));
      this.sendAllPlayerInfoIn = 0;
   }
}
And this is how they "calculate" it: 
int i = (int)(Util.getMillis() - this.keepAliveTime);
this.player.latency = (this.player.latency * 3 + i) / 4;

This mod goes around Vanilla and measures latency with a similar custom packet, but takes a proper average of 5 last RTT (round-trip-time) results.

Besides that, it also adds a customizable hud element to always see your ping with options such as:

  • Hide completely
  • Position anywhere on the screen
  • Show last 5 latency measurements in the same hud element
  • Show numerical readings for other players on the server instead of abstract bars (there is a config option serverside to change the frequency of the server broadcasting these values to everyone)
Example config with default values: 
["Ping HUD"]
      #Enable ping HUD
      pingHudEnabled = true
      #Additionally show 5 last ping values
      showPingQueue = false
      #Draw text with a shadow
      drawTextWithShadow = true
      #Draw ping either on the left side (true), or on the right (false)
      leftOrRight = true
      #How many scaled GUI pixels to start drawing from the edge of the screen
      #Range: > 0
      horizontalPadding = 4
      #On which line counting from the top to start drawing from
      #Range: > 0
      lineFromTop = 1
      #How many scaled GUI pixels to start drawing from the top of the screen
      #Range: > 0
      verticalPadding = 4
   
   [Other]
      #Show numbers in milliseconds in player list
      playerListNumbers = true

Example of a full display with the last 5 measurements turned on, numerical player list values, positioned on the right side of the screen:


FAQ

Q: Forge?

A: Forge.

Q: Can I include your mod in a video?

A: As long as you include a link to the mod/modpack (if it happens to be in one), absolutely

Q: Can I add your mod to a modpack?

A: CurseForge/Modrinth modpacks are cool.

proper_ping-1.20.1-1.0.0.jar
MC 1.20.1, Forge
Release 2024-03-09 Get

More from Unixkitty

Finally Farmable Dyes
948,925
Gemspark
41,386
Time Control
3,572,161
ServerUtil
2,899
Gemspork
26,419
Universal Clock HUD (Fork)
25,878

You Might Also Like

Liberty's Villagers
Quality of Life and AI improvements for Villagers
9,968,428
No More Pop-ups
A Minecraft mod to remove in-game pop-ups
996,708
BetterRandomSourceConcurrencyCrash
Improved logging of crashes caused by mods accessing RandomSources from the wrong thread
99,371
Exit Confirmation
Often accidentally closed Minecraft? This mod might help!
99,067
NoDynamicFps
Adds an option to disable Vanilla's Dynamic FPS implementation
99,004
Immersive Crafting
Adds crafting recipes to immersive portals
9,998