Back to mods
HUD Ensemble project artwork

CurseForge · Hytale mod

HUD Ensemble

Allows multiple CustomUIHud overlays to be stacked simultaneously with API

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which HUD Ensemble release should I use?

Updated 6 months ago
Latest stable file hud-ensemble-1.0.0.jar
Game version Not listed
Mod system Built-in Hytale mod system

HUD Ensemble hud-ensemble-1.0.0.jar targets Hytale. Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer. No required dependencies listed for this file.

Where it goes

Where should HUD Ensemble be installed in Hytale?

Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer.

Separate client mod Not supported
World host / dedicated server Required
Mod system for this release Built-in Hytale mod system
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

Put Hytale mods on the world host or dedicated server. Singleplayer runs a local server too; Hytale does not use separate client mods.

What else does HUD Ensemble hud-ensemble-1.0.0.jar need?

hud-ensemble-1.0.0.jar. Change the file and its required mods may change too.

No required dependencies listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional project dependencies. Check the creator notes before changing an existing world.

Before you install it

Add HUD Ensemble without breaking your instance.

Built for HUD Ensemble hud-ensemble-1.0.0.jar. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use hud-ensemble-1.0.0.jar. It targets Hytale; another release may target a different game build or dependency set.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Enable it on the world host

    Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside hud-ensemble-1.0.0.jar. It opens that exact file at the source.

About this project

What does HUD Ensemble add?

HUD Ensemble

HUD Ensemble is a server-side Hytale plugin that enables multi-layer HUD composition per player.

In vanilla behavior, only one CustomUIHud can be active at a time — which means plugins often overwrite each other. HUD Ensemble solves this by composing multiple HUD layers into a single composite HUD so different systems (or different plugins) can display UI at the same time.


Key Features

  • Multi-layer HUD
    Stack multiple CustomUIHud layers for the same player.

  • Namespaced layers (no collisions)
    Each plugin can use its own namespace via a client handle, preventing accidental ID conflicts.

  • Fast updates (no rebuild required)
    Update UI elements inside an existing layer using updateLayer(...) without rebuilding the whole HUD.

  • Broadcast helpers
    Show/remove layers for all online players (best-effort; scheduled per world-thread).

  • Cleanup safety
    Proper close() removes your layers. A best-effort GC safety net exists if a client becomes unreachable, but it does not replace calling close().


Installation

  1. Build the plugin .jar.
  2. Drop it into your server’s plugins folder.
  3. Start (or restart) the server.

Recommended:

  • Keep HUD Ensemble loaded before plugins that depend on it.
  • Always test with at least two plugins that set a HUD to confirm composition works as expected.

Demo Commands

These commands exist only for testing on a server. For real integrations, use the API (see below).

  • /hudens demo — enables demo HUD layers
  • /hudens clean — removes demo HUD layers

Developer Guide (API)

HUD Ensemble provides a public API designed for other server plugins.

1) Get the service / open a client

Use a client handle to automatically namespace your layer IDs and simplify cleanup.

import com.example.hudensemble.api.HudEnsemble;
import com.example.hudensemble.api.HudEnsembleClient;

public class MyPlugin extends JavaPlugin {
  private HudEnsembleClient hud;

  @Override
  protected void setup() {
    hud = HudEnsemble.openClientOrThrow(this);
  }

  @Override
  protected void shutdown() {
    if (hud != null) {
      hud.close(); // IMPORTANT: cleanup
      hud = null;
    }
  }
}

If HUD Ensemble is not installed or not compatible, openClientOrThrow(...) throws a clear error.

2) Show a HUD layer to a specific player

hud.setLayer(player, playerRef, "greeting", new MyHud());

Replace the same layer ID later to update the layer (full rebuild for that layer).

3) Remove a layer (or clear all layers owned by this client)

hud.removeLayer(player, "greeting");

hud.clear(player);

4) Update UI inside an existing layer (fast path)

If the layer already exists, update UI commands in-place:

hud.updateLayer(player, "greeting", cmd -> {
  cmd.set("#Title.Text", "Hello, HUD Ensemble!");
  cmd.set("#Counter.Text", "42");
});

Selectors are written normally. HUD Ensemble automatically prefixes them into the correct layer root.

5) Broadcast (all online players)

Show a layer for all connected players:

int scheduled = hud.setLayerForAllOnline("watermark", pr -> new MyHud());

Remove a layer for all online players:

int scheduled = hud.removeLayerForAllOnline("watermark");

Clear all layers owned by this client for all online players:

int scheduled = hud.clearForAllOnline();

The returned number is how many players were scheduled for the operation.


Compatibility Notes (Important)

Other plugins that do NOT use this API

  • If another plugin sets a CustomUIHud before HUD Ensemble is activated for a player, that HUD can be preserved as a “base layer”.
  • If another plugin sets a CustomUIHud after the ensemble is active, it will overwrite the composite HUD (this is how setCustomHud works), and HUD Ensemble layers will disappear.

Fallback behavior

HUD Ensemble relies on a bridge to build commands for layering. If the current server version does not support it, the plugin may fall back to a single-HUD mode. In that mode:

  • layering may be unavailable,
  • per-layer remove/update may not behave as expected.

API Versioning

HUD Ensemble exposes an API version number so dependent plugins can validate compatibility.

int v = HudEnsemble.getServiceOrThrow().getApiVersion();

Contacts

  • Discord / Telegram / socials: artur_hatoka

Project description from CurseForge.

Recent files

HUD Ensemble releases and Hytale builds

1 of 1 releases match

Looking for an older file? The official CurseForge project page is in Resources.