Integrating DynamicHUD
Now that we have access to DynamicHUD in our mod, we will integrate DynamicHUD.
Proper Java Docs have been added to all API classes (mainly all mentioned)
Step 1: Create a new Class
First, you need to create a new class that implements the DynamicHudIntegration interface. This class will serve as the bridge between your mod and DynamicHUD. Let’s call this class MyIntegration. Here’s a minimal example to get you started:
package your.mod.package;
import com.tanishisherewith.dynamichud.integration.DynamicHudIntegration;
import com.tanishisherewith.dynamichud.integration.DynamicHudConfigurator;
public class MyIntegration implements DynamicHudIntegration {
@Override
public DynamicHudConfigurator configure(DynamicHudConfigurator configurator) {
return configurator; // Configure your HUD here, see the Configurator page
}
@Override
public void init() {
// Initialize your widgets or DynamicValueRegistry here
}
}What’s Happening Here?
The configure method is your entry point to set up the HUD using the DynamicHudConfigurator. You’ll customize widgets, renderers, and screens here (more on that in the Configurator page).
The
init()method is for initializing your widgets or registering values in the DynamicValueRegistry.
Don’t skip implementing configure—it’s mandatory! Returning an unconfigured DynamicHudConfigurator will cause your mod to have an empty implementation
Step 2: Update the fabric.mod.json File
fabric.mod.json FileNext, you need to update the fabric.mod.json file in your mod. This file is used by Fabric to load your mod, and it needs to know about your new MyIntegration class. Add the following to the entrypoints section:
"entrypoints": {
"dynamicHud": [
"path.to.your.integration.MyIntegration"
]
}Replace "path.to.your.integration.MyIntegration" with the actual path to your MyIntegration class.
With this, DynamicHUD will be able to communicate with your mod.
Marking as Utility
If your mod provides widgets but doesn’t display a HUD, set markAsUtility :
configurator.markAsUtility = true;
This skips rendering but allows widget registration for other mods. An example of this is used in the [DefaultIntegrationImpl.java]
Setting markAsUtility to true when you need a HUD will hide your widgets, leaving players staring at a blank screen.
Now you can visit the next page to learn more about DynamicHUDConfigurator.
Last updated
Was this helpful?