- Loaders
- Fabric
- Downloads on Modrinth
- 1.1K
- Followers on Modrinth
- 1
- versions
- 4
- Updated
- July 24, 2026Jul 24
- Published
- in 2026
At a glance
Install in the game only; not needed on the server
Tango's HudLib
Tango's HudLib is a small client-side Fabric library for movable HUD widgets.
The mod itself does not add major gameplay features. It provides an API that other mods can use to register HUD elements. For players, that means TangosHudLib renders and stores the widgets that another mod registers through this library.
In-Game Usage
- Install the mod together with Fabric API.
- Start the game with a mod that registers widgets through TangosHudLib.
- Open the
Tango's HudLibcategory in the Minecraft controls menu. - Look for `HUD Editor ()`.
- Press the assigned key in-game to open that mod's HUD editor.
- Drag widgets with the left mouse button to move them.
- Close the editor with the same hotkey or with
Esc.
Widget positions are stored in config/tangos-hud-lib.json.
Using It In Your Own Mod
The smallest clean integration has two parts:
- A class with
staticmethods annotated with@HudWidget. - A registration call inside your
ClientModInitializer.
Example
package eu.example.mod;
import eu.tango.tangosHudLib.api.HudContent;
import eu.tango.tangosHudLib.api.HudLibrary;
import eu.tango.tangosHudLib.api.HudWidget;
import net.fabricmc.api.ClientModInitializer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import org.lwjgl.glfw.GLFW;
public final class ExampleModClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
HudLibrary.registerWidgets("examplemod", GLFW.GLFW_KEY_H, ExampleWidgets.class);
}
public static final class ExampleWidgets {
private ExampleWidgets() {
}
@HudWidget(id = "position")
public static HudContent position() {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null) {
return HudContent.builder()
.line(Text.literal("Position").formatted(Formatting.GOLD))
.line(Text.literal("No world loaded").formatted(Formatting.GRAY))
.build();
}
return HudContent.builder()
.line(Text.literal("Position").formatted(Formatting.GOLD))
.line(Text.literal(
client.player.getBlockX() + " "
+ client.player.getBlockY() + " "
+ client.player.getBlockZ()
).formatted(Formatting.WHITE))
.build();
}
}
}Rules For @HudWidget
A widget method must:
- be
static - have no parameters
- return
HudContent - use a non-empty
id
HudContent must contain at least one non-blank line:
HudContent.builder()
.line(Text.literal("Title"))
.line(Text.literal("Content"))
.build();API Summary
HudLibrary.registerWidgets(String ownerId, int defaultKey, Class<?> clazz)registers all@HudWidgetmethods in the class and assigns a default HUD editor hotkey.HudLibrary.registerWidgets(String ownerId, Class<?> clazz)registers widgets without a default hotkey.HudLibrary.registerWidgets(Class<?> clazz)uses the library defaultstangos-hud-libandH.
FAQ
How to install Tango's Dynamic Hud Lib?
Install Fabric for your Minecraft version, download Tango's Dynamic Hud Lib for the same version and loader, put the file into the mods folder and launch the game with the loader profile.
Which Minecraft versions does Tango's Dynamic Hud Lib support?
Tango's Dynamic Hud Lib has builds for Minecraft 1.21.10–1.21.11, 26.1.2–26.2.
Is Tango's Dynamic Hud Lib needed on the server?
Client only — no need to install it on the server