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 comprehensive support for Bukkit-based servers, including Spigot, Paper, and Folia.
Requirements
Minecraft 1.20.4 - 1.21.11
Java 21 or higher
Bukkit/Spigot/Paper/Folia server
No additional dependencies required
Installation
Download the BetterHud Bukkit plugin from SpigotMC , Hangar , or Modrinth
Place the JAR file in your server’s plugins folder
Restart your server
The plugin will generate a resource pack automatically
Bedrock Support
BetterHud automatically detects and adapts for Bedrock players when using Geyser or Floodgate:
# config.yml
disable-to-bedrock-player : true
The BedrockAdapter interface provides seamless integration:
BukkitBootstrap bootstrap = (BukkitBootstrap) BetterHudAPI . inst (). getBootstrap ();
BedrockAdapter adapter = bootstrap . bedrockAdapter ();
Bukkit Events
BetterHud fires several custom Bukkit events that you can listen to:
HudPlayerJoinEvent
Fired when a player’s HUD data is loaded:
@ EventHandler
public void onHudPlayerJoin ( HudPlayerJoinEvent event) {
HudPlayer hudPlayer = event . getHudPlayer ();
Player player = event . getPlayer ();
// Custom logic here
}
HudPlayerQuitEvent
Fired when a player disconnects:
@ EventHandler
public void onHudPlayerQuit ( HudPlayerQuitEvent event) {
HudPlayer hudPlayer = event . getHudPlayer ();
// Cleanup logic here
}
Fired when a custom popup is triggered:
@ EventHandler
public void onCustomPopup ( CustomPopupEvent event) {
Player player = event . getPlayer ();
String popupName = event . getName ();
Map < String , String > variables = event . getVariables ();
// Handle popup display
}
PluginReloadStartEvent & PluginReloadedEvent
Fired before and after the plugin reloads:
@ EventHandler
public void onReloadStart ( PluginReloadStartEvent event) {
// Prepare for reload
}
@ EventHandler
public void onReloadComplete ( PluginReloadedEvent event) {
ReloadState state = event . getState ();
// Handle post-reload logic
}
NMS Support
BetterHud includes NMS (Net Minecraft Server) support for version-specific features:
BukkitBootstrap bootstrap = (BukkitBootstrap) BetterHudAPI . inst (). getBootstrap ();
NMS nms = bootstrap . volatileCode ();
NMSVersion version = nms . version ();
Bukkit-Specific Triggers
You can create custom triggers using Bukkit events:
public class MyTrigger implements HudBukkitEventTrigger < PlayerInteractEvent > {
@ Override
public @ NotNull Class < PlayerInteractEvent > getEventClass () {
return PlayerInteractEvent . class ;
}
@ Override
public @ NotNull Object getKey ( PlayerInteractEvent event ) {
return event . getPlayer (). getUniqueId ();
}
@ Override
public void registerEvent (@ NotNull BiConsumer < UUID , UpdateEvent > eventConsumer ) {
// Register your event handler
}
}
Register your custom trigger:
BetterHudAPI . inst (). getTriggerManager (). addTrigger (
"my_custom_trigger" ,
new MyTrigger ()
);
Folia Support
BetterHud fully supports Folia’s regionized threading:
if ( bootstrap . isFolia ()) {
// Folia-specific logic
}
Building from Source
To build the Bukkit plugin:
The compiled JAR will be in dist/build/libs/.
API Usage
Add BetterHud to your project:
repositories {
mavenCentral ()
}
dependencies {
compileOnly ( "io.github.toxicity188:BetterHud-standard-api:VERSION" )
compileOnly ( "io.github.toxicity188:BetterHud-bukkit-api:VERSION" )
}
See the Bukkit example plugin for complete examples.
Configuration
Bukkit-specific configuration options in config.yml:
# Merge with Paper's boss bar system
merge-boss-bar : true
# Boss bar display lines
bossbar-line : 1
bossbar-resource-pack-line : 0
# Disable HUD for Bedrock players
disable-to-bedrock-player : true
# Remove default Minecraft hotbar
remove-default-hotbar : false
Next Steps
Triggers Learn about event-based triggers
Placeholders Create custom placeholders
Skript Integration Use BetterHud with Skript
API Reference Explore the full API