Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Proper Ping

Proper Ping

Measure and display ping properly

2,620
3
Utility
AboutGalleryChangelogVersions

Fabric and newer Minecraft versions coming soon.


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

Info

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.

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Compatibility

Minecraft: Java Edition

1.20.1
1.19.2

Platforms

Forge

Supported environments

Client and server

Links

Report issues View source Join Discord server

Creators

unixkitty
unixkitty Member

Details

Licensed ARR
Published last year
Updated last year

Modrinth is open source.

main@58dac27

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.