Better Scoreboard

Better Scoreboard adds a clean scoreboard on the right side of the screen for all players, showing real-time server and player info without cluttering the HUD. Lightweight and server-friendly.

File Details

BetterScoreBoard-2.0.0.jar

  • R
  • Jan 31, 2026
  • 172.45 KB
  • 69
  • Early Access

File Name

BetterScoreBoard-2.0.0.jar

Supported Versions

  • Early Access

V2.0.0



REMAKING FROM SCRATCH ALL THE SCOREBOARD TO FIX PERFOMANCE ISSUE!
Now the scoreboard is fluid!

Now the scoreboard support up to 20 lines!
Scoreboard Height adjust automaticly with the last written line!

Added new placeholder:

{kills}, {death}, {killstreak}


# Better ScoreBoard

Scoreboard HUD pinned to the right, powered by MultipleHUD. You can edit it live in-game with `/scoreboard` or through `BetterScoreBoard/config.yaml`.

## Public Placeholder API (for other plugins)
You can expose custom placeholders (example: `{hours}`) from any other plugin.

### Quick start
1) Register your placeholder on plugin enable.
2) Use `{your_key}` in any scoreboard line.
3) The value is resolved on every refresh.

### API reference
- Class: `com.gillodaby.betterscoreboard.BetterScoreBoardAPI`
- Method: `registerPlaceholder(String key, PlaceholderProvider provider)`
- Unregister: `unregisterPlaceholder(String key)`
- Clear all: `clearPlaceholders()`

### Rules
- Keys are case-insensitive and stored in lower-case.
- You can register either `hours` or `{hours}` (both are accepted).
- If your provider returns `null`, it becomes an empty string.
- Keep the resolver fast; it runs during scoreboard refresh.

### Example (code)
Register a placeholder named `hours`, then use `{hours}` in your scoreboard lines.

```java
import com.gillodaby.betterscoreboard.BetterScoreBoardAPI;
import com.hypixel.hytale.server.core.entity.entities.Player;

public final class MyPlugin {
    public void onEnable() {
        BetterScoreBoardAPI.registerPlaceholder("hours", this::resolveHours);
    }

    private String resolveHours(Player player) {
        if (player == null) return "0";
        long seconds = 0; // your own tracking
        long hours = seconds / 3600;
        return Long.toString(hours);
    }
}
```