Tags
Creators
Details
All versions
1.0.1
Release
DisplayUIEngine 1.0.12 months ago 47
Uploaded by
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Paper
Purpur
Changes
HaoHan Display UI 1.0.1
Added
- Added smooth UI animations with multiple easing types:
- Linear
- Ease in/out
- Quadratic
- Cubic
- Back
- Elastic
- Added animation presets:
fadeInfadeOutslideInscaleIn
- Added per-node animations with
animateNodes(...). - Added
UiSlidercontrol with minimum, maximum, step, and continuous drag support. - Added
UiCheckboxcontrol. - Added custom styling helpers:
trackRect()fillRect()thumbRect()indicatorRect()
- Added control change callbacks and cancellable Bukkit events.
- Added configurable click sounds for buttons, sliders, and checkboxes.
- Added per-player backface culling for
ItemDisplayandUiIconNode. - Backface culling is enabled by default.
- Added incremental page updates to reduce flickering.
- Added dynamic in-place updates for text, item, block, and display transformations.
- Added optimized continuous slider dragging by skipping unnecessary raycasts.
- Expanded the built-in demo with slider, checkbox, and random node animations.
Improved
- Page transitions no longer respawn the entire UI scene unnecessarily.
- Unchanged display entities are preserved during document updates.
- Slider updates no longer cause the entire page to flicker.
- Animation and control state are preserved more reliably during updates.
- Added configurable sound volume and pitch.
Developer API
UiOptions options = UiOptions.defaults()
.withClickSound("my_pack:menu.tick", 0.7f, 1.1f)
.withItemBackfaceCulling(true);
handle.animate(UiAnimation.fadeIn(12));
handle.onControlChange(change -> {
plugin.handleValue(change.control().id(), change.value());
});
Notes
TextDisplaytext content is updated according to server ticks because Minecraft does not interpolate text content client-side.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:8pGdBoEs:odMZJ76q"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8pGdBoEs:odMZJ76q"
}

