OhTabListPing
1.0.0High-performance Minecraft Tab List Ping Display Plugin compatible with Spigot/Paper 1.21.1+
1.0.0latestOhTabListPing 1.0.0Feb 1, 2026 First stable release of a high-performance Minecraft server plugin that displays each player's ping (latency) in the tab list with color-coded formatting.0.0.1OhTabListPing 0.0.1Jan 31, 2026 OhTabListPing
[](LICENSE) [ in the tab list with color-coded formatting.  - Java Version: 21 or higher - Server Software: Spigot, Paper, or compatible forksInstallation
1. Download the latest release (OhTabListPing-1.0.0.jar) from [Releases](https://github.com/anaspui/ohtablistping/releases) 2. Place the JAR file in your server'splugins/folder 3. Restart your server or load the plugin with a plugin manager 4. Configure (optional) - Editplugins/OhTabListPing/config.ymlto customize settings 5. Reload the plugin if you changed the config:/reload confirmConfiguration
The plugin automatically creates aconfig.ymlfile on first run. Here's what you can customize:# Update interval in ticks (20 ticks = 1 second) update-interval: 40 # Recommended: 40 (2 seconds) # Minimum ping change to trigger update (avoids unnecessary updates) update-threshold: 5 # Only update if ping changed by 5+ ms # Display format ping-format: "{player} §7[{color}{ping}ms§7]" # Color coding color-coding: enabled: true colors: excellent: "§a" # Green (0-50ms) good: "§e" # Yellow (51-100ms) acceptable: "§6" # Gold (101-150ms) poor: "§c" # Red (151+ms) thresholds: excellent: 50 good: 100 acceptable: 150 # Performance settings async-updates: true # Run updates asynchronously (recommended) debug: false # Enable debug loggingFormat Placeholders
-{player}- Player's username -{ping}- Current ping value -{color}- Automatically determined color codeColor Codes
Standard Minecraft color codes are supported: -§a- Green -§e- Yellow -§6- Gold -§c- Red -§7- Gray -§f- WhiteHow It Works
1. Scheduled Updates: The plugin runs a repeating task everyupdate-intervalticks 2. Ping Retrieval: Gets each player's ping usingPlayer.getPing()API 3. Smart Caching: Only updates display if ping changed by more thanupdate-threshold4. Color Coding: Applies color based on ping quality thresholds 5. Display Update: Updates the tab list player name with formatted pingPerformance
- Async Execution: Updates run asynchronously to prevent server lag - Intelligent Caching: Avoids unnecessary updates using threshold system - Optimized String Operations: Pre-formatted color codes and efficient formatting - Low Memory Footprint: Minimal cache size (only UUID → ping map) Benchmarks (tested with 100 players): - CPU Impact: < 0.1% per update cycle - Memory Usage: ~5KB additional RAM - TPS Impact: None (async operations)Compatibility
Compatible With:
LuckPerms (permission prefixes) EssentialsX (nicknames) Vault (permission integration) Most tab-modifying plugins (soft dependencies)Server Software:
Spigot 1.21.11 Paper 1.21.11 Purpur 1.21.11 Other Spigot-based forksTroubleshooting
Ping not showing in tab list
1. Check that the plugin is enabled:/plugins2. Verify no errors in console during plugin startup 3. Checkconfig.ymlis valid YAML syntax 4. Try reloading the plugin:/reload confirm5. Ensure no conflicting plugins are overriding tab listDisplay names appear truncated
- Shorten theping-formatstring in config - Tab list has character limits, keep format concisePlugin conflicts with nickname plugins
- OhTabListPing uses soft dependencies and MONITOR priority - It should work alongside most nickname plugins - If conflicts occur, try adjusting plugin load orderPerformance issues
- Increaseupdate-interval(default: 40 ticks) - Increaseupdate-threshold(default: 5ms) - Ensureasync-updatesis enabled (default: true) - Enabledebugto check for errorsBuilding from Source
# Clone the repository git clone https://github.com/anaspui/ohtablistping.git cd ohtablistping # Build with Maven mvn clean package # Output JAR will be in target/OhTabListPing-x.x.x.jarDevelopment
Project Structure
ohtablistping/ ├── src/main/java/com/anaspui/ohtablistping/ │ ├── OhTabListPing.java # Main plugin class │ ├── ConfigManager.java # Configuration handler │ ├── TabListUpdater.java # Ping update logic │ └── PlayerEventListener.java # Event handlers ├── src/main/resources/ │ ├── plugin.yml # Plugin descriptor │ └── config.yml # Default configuration └── pom.xml # Maven build fileTechnologies Used
- Java 21 - Core language - Spigot API 1.21.1 - Minecraft server API - Maven - Build management - Bukkit Scheduler - Async task executionContributing
Contributions are welcome! Please follow these steps: 1. Fork the repository 2. Create a feature branch (git checkout -b feature/xyz-feature) 3. Commit your changes (git commit -m 'Add xyz feature') 4. Push to the branch (git push origin feature/xyz-feature) 5. Open a Pull RequestLicense
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.Credits
Author: [anaspui](https://github.com/anaspui) Built with LOVE! for the Minecraft community --- ⭐ If you find this plugin useful, please star the repository!
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta