Documentation Index
Fetch the complete documentation index at: https://mintlify.com/toxicity188/BetterHud/llms.txt
Use this file to discover all available pages before exploring further.
BetterHud provides support for Velocity proxy servers, allowing you to display HUDs across your entire network.
Requirements
- Velocity 3.3 - 3.4
- Java 21 or higher
- No additional dependencies required
Installation
- Download the BetterHud Velocity plugin from Hangar or Modrinth
- Place the JAR file in your Velocity server’s
plugins folder
- Restart your proxy server
- The plugin will generate a resource pack automatically
The Velocity implementation provides proxy-wide HUD management:
Bootstrap API
import kr.toxicity.hud.api.velocity.VelocityBootstrap;
import kr.toxicity.hud.api.BetterHudAPI;
VelocityBootstrap bootstrap = (VelocityBootstrap) BetterHudAPI.inst().getBootstrap();
// Check platform
if (bootstrap.isVelocity()) {
// Velocity-specific logic
}
The VelocityBootstrap interface provides platform identification:
boolean isVelocity = bootstrap.isVelocity(); // true
boolean isFolia = bootstrap.isFolia(); // false
boolean isPaper = bootstrap.isPaper(); // false
boolean isFabric = bootstrap.isFabric(); // false
Network-Wide Configuration
Configure BetterHud for your entire proxy network:
# config.yml
debug: false
metrics: true
version-check: true
namespace: "betterhud"
# Resource pack settings
pack-type: zip # folder, zip, none
enable-self-host: false
self-host-ip: "*"
self-host-port: 8163
# Default HUDs for all players
default-hud:
- network_hud
default-popup: []
default-compass: []
Resource Pack Delivery
BetterHud can serve resource packs directly from your Velocity proxy:
Self-Hosting
# config.yml
enable-self-host: true
self-host-ip: "*" # Bind to all interfaces
self-host-port: 8163
pack-type: zip
The resource pack will be automatically served at:
http://your-proxy-ip:8163/resource-pack.zip
External Hosting
Alternatively, host the generated pack externally:
pack-type: zip
enable-self-host: false
Then upload the pack from BetterHud/build/ to your hosting service.
Cross-Server HUDs
Manage player HUDs across different backend servers:
import kr.toxicity.hud.api.BetterHudAPI;
import kr.toxicity.hud.api.player.HudPlayer;
public void updatePlayerHud(Player velocityPlayer) {
HudPlayer hudPlayer = BetterHudAPI.inst()
.getPlayerManager()
.getPlayer(velocityPlayer.getUniqueId());
if (hudPlayer != null) {
// Update HUD across the network
hudPlayer.getPopupManager().show("network_popup");
}
}
Building from Source
To build the Velocity plugin:
The compiled JAR will be in dist/build/libs/.
API Usage
Add BetterHud to your Velocity plugin:
repositories {
mavenCentral()
}
dependencies {
compileOnly("io.github.toxicity188:BetterHud-standard-api:VERSION")
}
Limitations
Some features available in Bukkit may not be available on Velocity:
- Bedrock player detection (requires Geyser/Floodgate on backend servers)
- NMS-specific features
- Bukkit event triggers
Resource Pack Caching
Velocity caches resource packs efficiently:
# Optimize pack delivery
force-update: false # Set to true only when pack changes
Network Bandwidth
Minimize resource pack size:
# Compress and optimize
pack-type: zip
resourcepack-obfuscation: false
clear-build-folder: true
Multi-Server Setup
Example setup with Velocity proxy:
Velocity Proxy (with BetterHud)
├── Backend Server 1 (Survival)
├── Backend Server 2 (Minigames)
└── Backend Server 3 (Creative)
Configure different HUDs per server using player permissions or metadata.
Debugging
Enable debug mode for troubleshooting:
# config.yml
debug: true
debug-level: assets # assets, configs, all
Check logs in plugins/BetterHud/logs/.
Next Steps
Bukkit Platform
Configure backend servers
Placeholders
Create custom placeholders
Configuration
Configure BetterHud
API Reference
Explore the full API