
OhTabListPing
High-performance Minecraft Tab List Ping Display Plugin compatible with Spigot/Paper 1.21.1+
OhTabListPing
A high-performance Minecraft server plugin that displays each player's ping (latency) in the tab list with color-coded formatting.
Brownies featured
Features
Real-time Ping Display - Shows ping values next to player names in the tab list
Color-Coded Indicators - Visual feedback for connection quality
In-Game Commands - View and modify configuration without editing files
High Performance - Async updates with intelligent caching
Fully Configurable - Customize format, colors, thresholds, and update intervals
Plugin Compatibility - Works alongside nickname and permission plugins
Optimized Updates - Only updates when ping changes significantly
Requirements
- Minecraft Version: 1.21.1+ (Spigot or Paper)
- Java Version: 21 or higher
- Server Software: Spigot, Paper, or compatible forks
Installation
- Download the latest release (
OhTabListPing-x.x.xx.jar) from Releases - Place the JAR file in your server's
plugins/folder - Restart your server or load the plugin with a plugin manager
- Configure (optional) - Edit
plugins/OhTabListPing/config.ymlto customize settings - Reload the plugin if you changed the config:
/otlp reload
Commands
Manage the plugin configuration in-game with intuitive commands:
Main Command
/ohtablistping [subcommand] [args...]
Aliases: /otlp, /ping-config
Subcommands
View Help
/otlp help
Displays all available commands and usage examples.
List All Config Values
/otlp list
Shows all current configuration values in a formatted display.
Get Specific Value
/otlp get <key>
Examples:
/otlp get update-interval
/otlp get debug
/otlp get color-coding.thresholds.excellent
Set Configuration Value
/otlp set <key> <value>
Examples:
/otlp set update-interval 60
/otlp set debug true
/otlp set ping-format "{player} [{color}{ping}ms]"
/otlp set color-coding.colors.excellent §a
Reload Configuration
/otlp reload
Reloads config.yml from disk and restarts the update task with new settings.
Permissions
ohtablistping.admin- Full admin access (default: op)ohtablistping.reload- Reload configuration onlyohtablistping.view- View config values onlyohtablistping.set- Modify config values only
Configuration
The plugin automatically creates a config.yml file 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 logging
Format Placeholders
{player}- Player's username{ping}- Current ping value{color}- Automatically determined color code
Color Codes
Standard Minecraft color codes are supported:
§a- Green§e- Yellow§6- Gold§c- Red§7- Gray§f- White
How It Works
- Scheduled Updates: The plugin runs a repeating task every
update-intervalticks - Ping Retrieval: Gets each player's ping using
Player.getPing()API - Smart Caching: Only updates display if ping changed by more than
update-threshold - Color Coding: Applies color based on ping quality thresholds
- Display Update: Updates the tab list player name with formatted ping
Performance
- 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.1 Paper 1.21.1 Purpur 1.21.1 Other Spigot-based forks
Troubleshooting
Ping not showing in tab list
- Check that the plugin is enabled:
/plugins - Verify no errors in console during plugin startup
- Check
config.ymlis valid YAML syntax - Try reloading the plugin:
/reload confirm - Ensure no conflicting plugins are overriding tab list
Display names appear truncated
- Shorten the
ping-formatstring in config - Tab list has character limits, keep format concise
Plugin 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 order
Performance issues
- Increase
update-interval(default: 40 ticks) - Increase
update-threshold(default: 5ms) - Ensure
async-updatesis enabled (default: true) - Enable
debugto check for errors
Building 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.jar
Development
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
│ └── ConfigCommand.java # Command executor
├── src/main/resources/
│ ├── plugin.yml # Plugin descriptor
│ └── config.yml # Default configuration
└── pom.xml # Maven build file
Technologies Used
- Java 21 - Core language
- Spigot API 1.21.1 - Minecraft server API
- Maven - Build management
- Bukkit Scheduler - Async task execution
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/xyz-feature) - Commit your changes (
git commit -m 'Add xyz feature') - Push to the branch (
git push origin feature/xyz-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
Author: anaspui
Built with LOVE! for the Minecraft community
⭐ If you find this plugin useful, please star the repository!
