Перейти к содержимому
Mineforgian

DynamicHUD

A dynamic HUD library to create, display, load and save, interact and do much more with HUD elements - widgets.

19K загрузок15 подписчиковMITfabric

Обновлён 4 июля 2026 г. · опубликован 13 июня 2023 г.

  • Featured backdrop
  • Editor screen
  • TitleScreen

DynamicHUD for Minecraft Fabric

DynamicHUD is a library for Minecraft mod creators using Fabric (Minecraft 1.19.4+). It lets developers create customizable HUD elements that players can modify and interact with, enhancing both visuals and gameplay.

Features

  • Automatic Loading & Saving: Widgets automatically save their state and reload upon game restart, providing a seamless experience for players.
  • Dynamic Values: Widgets can display real-time information, adapting to in-game events and data changes.
  • Inbuilt Widgets: Start with TextWidget for easy text display and expand with more specialized widgets.
  • Utility Classes: Utilize DrawHelper, ColorHelper, and TextureHelper for efficient and streamlined development.
  • ContextMenu: A general context menu featuring boolean, slider, runnable, color options, and list/enum selections for widget customization.
  • Screen Border Control: Keeps widgets within screen boundaries.
  • Snapping: Hold Shift to snap widgets to an imaginary grid.
  • Multi-Mod Support: Built for compatibility across mods.
  • Easy Integration: Simple setup for quick implementation into your projects.
  • Comprehensive Wiki: A detailed guide and reference for all features of DynamicHUD, available at https://tanishisherewith.gitbook.io/dynamic-hud.

Keybinds

Currently these keybinds are unmodifiable

1. Grouping and multi-selection

Keyboard shortcuts

  • Drag selection window: Click and drag on empty space to draw a selection window. Any widget that overlaps this area will be selected.
  • CTRL + Left Click multi-selection: Hold CTRL and left click on individual widgets to toggle their selection state.
  • Group or ungroup toggle: Press CTRL + G to group the selected widgets. Press CTRL + G again to ungroup them.

Notes

  • Dragging any widget in a group moves all unlocked widgets in that group.
  • Locked widgets with isLocked set to true do not move with the group.
  • Hovering a group shows a dashed green bounding box around all grouped widgets.

2. Scaling widgets

Widgets can be scaled individually in the editor in two ways:

  • Scaling keybind: Hover a widget and use CTRL + Mouse Wheel Scroll to increase or decrease its local scale.
  • Scale dot: Selected widgets render a small scale dot in the bottom-right corner. Drag that dot to scale the widget dynamically.

Disclaimer

DynamicHUD provides tools for developers but does not add HUD elements by itself.

Users looking for in-game HUD elements should refer to mods that use DynamicHUD like

Fabric only — no plans for Forge support.

Installation for Users

To ensure mods that depend on DynamicHUD work correctly, follow these steps to add DynamicHUD to your Minecraft installation:

  1. Make sure you have Fabric and Fabric-API installed.
  2. Download the dynamichud-<version>.jar file from the official release page.
  3. Navigate to your Minecraft directory. The default path is usually:
    • Windows: %APPDATA%\.minecraft
    • macOS: ~/Library/Application Support/minecraft
    • Linux: ~/.minecraft
  4. Locate the mods folder within your Minecraft directory. If it doesn't exist, create it.
  5. Place the downloaded DynamicHUD .jar file into the mods folder.
  6. Run Minecraft with the Fabric loader. DynamicHUD will now be loaded, and any mods with DynamicHUD as a dependency can function properly.

Enjoy the enhanced HUD experience provided by mods utilizing DynamicHUD!

Getting Started For Developers

Visit our wiki for more detailed information about the library!

To integrate DynamicHUD into your mod, add it as a dependency in your build.gradle file:

allprojects {
	repositories {
		maven { url 'https://jitpack.io' }
	}
	maven {
		name 'Xander Maven'
		url 'https://maven.isxander.dev/releases'
	}
}

dependencies {
	// Dynamic HUD
	modImplementation 'com.github.V-Fast:DynamicHUD:<Version>'
}

Old archived wiki

https://tanishisherewith.gitbook.io/archived-legacy-dynamichud/

Contributing

Contributions are welcome! If you’re interested in improving DynamicHUD or adding new features, please review our contributing guidelines.

License

DynamicHUD is released under the MIT License. Feel free to use and modify it in your mods, with proper attribution back to this repository.

Support

Need assistance or have suggestions? Join our Discord community or submit an issue on our GitHub repository.

Showcase

Showcase Video

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
4.1.0Релиз1.21.11fabric4 июля 2026 г..jar (495 КБ)
4.0.0Релиз1.21.11fabric26 июня 2026 г..jar (465 КБ)
3.1.0Релиз1.21.5fabric28 июня 2025 г..jar (440 КБ)
3.0.0Релиз1.21.4fabric1 июня 2025 г..jar (428 КБ)
2.2.1Релиз1.21, 1.21.1fabric16 августа 2024 г..jar (283 КБ)
2.2.0Релиз1.21fabric24 июля 2024 г..jar (283 КБ)
2.1.0Релиз1.20.5, 1.20.6fabric6 июля 2024 г..jar (281 КБ)
2.0.1Релиз1.20.4fabric29 мая 2024 г..jar (283 КБ)
2.0.0Релиз1.20.4fabric17 апреля 2024 г..jar (280 КБ)
1.2.1Релиз1.20, 1.20.1, 1.20.2fabric2 октября 2023 г..jar (629 КБ)
1.2.0Релиз1.20, 1.20.1fabric13 августа 2023 г..jar (632 КБ)
1.1.3Релиз1.20, 1.20.1fabric9 июля 2023 г..jar (624 КБ)
1.1.2Релиз1.20, 1.20.1fabric9 июля 2023 г..jar (624 КБ)
1.1.1Релиз1.20, 1.20.1fabric7 июля 2023 г..jar (624 КБ)
1.1.0Релиз1.20, 1.20.1fabric25 июня 2023 г..jar (605 КБ)

Показаны последние 15 из 16 версий. Все версии — на Modrinth.

Ченджлог

4.1.0Релиз1.21.11 · 4 июля 2026 г.

This version comes with many important features.

Major Highlights for Users:

  • Smarter Snap & Anchoring: Widgets snapped to screen centers or margins will now adapt correctly and maintain their precise layout positions on screen resize/resolution changes.
  • Micro sliding switches: The context menu boolean options now feature micro-sized sliding switch toggles, making the settings panel highly compact.
  • Drag Selection Window: Click and drag on empty space to draw a selection window to select multiple widgets at once and drag them together.
  • CTRL + LeftClick Multi-selection: Hold CTRL and click on individual widgets to toggle selection, allowing you to select and move multiple custom widgets.
  • Widget Grouping (CTRL + G): Select multiple widgets and press CTRL + G to group them. Grouped widgets move together.
  • Dynamic Scaling Tools: Drag the new scale dot on the bottom-right corner of a selected widget, or hover over a widget and press CTRL + Mouse Wheel Scroll to resize it.
  • Name Truncation: Long option names are now automatically truncated with ..., preventing overlap in compact context menus.
  • Locked Widget Fix: Locked widgets now correctly adapt their positions on screen resizing instead of staying at stale coordinates.
  • YACL Global Configurations:
    • Enable Drag Selection: Toggles drawing select-dragging box overlays.
    • Dashed Outline Color & Thickness: Custom colors and width parameters for widget guidelines.
    • Show Lock Button & Lock Size: Custom sizes and display toggles for lock/unlock icons.
    • Scale Dot Size & Scale Sensitivity: Fine-tune size and scale dragging speeds.
    • Smart Snapping & Snap Size: Adjust axis alignments and snap grid sizes.

Major Changes for Developers:

  • [Feat.] Node-Based Layouts: The LayoutEngine now processes context menu layouts using tree nodes (ColumnNode, GridNode, RowNode, etc.) for bloat-free option grids. (Currently used by ClassicSkin)
  • [Feat.] Properties Cleanup: Cleaned up the redundant padding and heightOffset properties from ContextMenuProperties, offloading positioning and gaps to layout strategies.
  • [Feat.] Keybind Options: Added support and documentation for KeybindOption allowing GLFW keyboard bindings to have dedicated UI option card renderers.
  • [Feat.] Widget Groups: Introduced the WidgetGroup class for linking multiple widgets together, supporting unlocked member drag propagation and unified outline box rendering.
  • [Feat.] Better Anchors: Replaced absolute offsets with precise anchoring. Widgets automatically detect their closest screen zone (out of 9 possible zones) to calculate precise relative positioning on window resizing.
  • [Fix.] Screen Resize Injections: Fixed a bug in ScreenMixin where the mixin was passing the old screen sizes instead of the new dimensions during a resize callback.
  • [Fix.] UUID Unique Identifiers: Replaced String-based UID unique identifiers in widgets with java.util.UUID.
  • [Fix.] Option Name Truncation: Added utility functions Util.getTruncatedName and Util.drawTruncatedScaledText in Util.java to support clean text rendering.
  • [Feat.] Base-Class Skin Renderers: Derived skins can now inherit their option renderers dynamically from the base class if not explicitly overridden.

The Wiki has also been updated.

4.0.0Релиз1.21.11 · 26 июня 2026 г.

Update to 1.21.11

DynamicHUD has been updated to minecraft version 1.21.11 with the release of 4.0.0

This version comes with many important patches and improvements.

Major Highlights for Users:

  1. Neighbouring Widget Snap: An option has been added for users to use smart snapping which enables widgets to snap around each other smoothly and also displays useful screen and widget axis alignment guidelines while dragging.
  2. Color Picker: The color picker has been added back after being removed in previous versions.
  3. Enhanced Animations: Much more of the DynamicHUD UI comes with smoother and interactive animations.
  4. Performance Optimisations: This version is set to give a better and seamless experience with widgets.
  5. More options: We have added more options in the YACL configuration screen to help with more customisability.
  6. Separated Widget Scaling: Now users will be able to scale each widget separately by simply hovering over the widget and pressing CTRL + MOUSE-SCROLL. This will allow you to change the size of any scalable widget as per your convenience. This is in addition to the Global Widget Scale in YACL configurations.
  7. No jittering: All jitters are removed.
  8. Search Bar: A search bar has been added to the top of the context menu for some of the ContextMenu skins.
  9. GraphWidget Improvements: GraphWidget has been heavily improved to display clearer graph lines and points, better auto-range, sampling time, less intrusive label and more customisability for Pro and Enhanced setting complexities.
  10. Skins: All skins will now feel faster.

Major Changes for Developers:

The update to 1.21.11 also brings new changes to how things are rendered, so all rendering methods have been changed appropriately.

DynamicHUD now uses official mojang mappings instead of Yarn mappings.

  1. [Feat.] Graph Control: Added new methods to let you change the timeline points (how long ago values should be displayed) and customize sampling rates. The graph will automatically rebuild its data array on the fly without losing previous values.
  2. [Feat.] Scaling related: Since widgets now contain localised scaling, you will need to use the widgetBox for current (modified) width and height after providing your raw dimensions.
  3. [New] Cycle Option: Both EnumOption and ListOption are replaced by a single CycleOption. Hence all your skins need to be updated too.
  4. [New] LayoutEngine: ContextMenu now uses a layout engine for options. A default VerticalFlow layout strategy is provided which is used by Classic, Modern and Minecraft Skins. This layout engine can be used to modify the padding, spacing and minimum width of options.
  5. [New] Search: The following function can now be used to obtain search results from a query string through all options and option groups using FuzzyScore matching: com.tanishisherewith.dynamichud.utils.Util.getSearchResults(String query, int minimumScore, List<Option<?>> options)
  6. [New] MouseColorQuery: MouseColorQuery is a class that can be used to query color at a given mouse position at the end of the client tick. Used by the ColorPicker.
  7. [Fix.] ScrollHandler logic rewritten: To prevent jittering.
  8. [Removed] AnimationProperty<>: AnimationProperty was replaced by a consumer in ValueAnimation.
  9. [New] SquishAnimator: Used for a simple button squish effect in ModernSkin.
  10. [Fix] Skin.charTyped(...): This function call was missing in contextmenu and has been added.
  11. [Feat.] Animation Overhaul: Now all appropriate animation is being handled by ValueAnimation or such instead of hardcoding a linear lerp. For eg. ContextMenu now also use localised scaling.
  12. [Feat.] ModernSkin OptionGroup animation: OptionGroups in ModernSkin now have opening animation handled by static class GroupAnimData.

And much more in-depth changes which will be updated soon in our Wiki.

3.1.0Релиз1.21.5 · 28 июня 2025 г.

Major Changes

Updated to 1.21.5

Minor Changes

Moved rounded rectangles and its outline code to shaders

Full Changelog: https://github.com/V-Fast/DynamicHUD/compare/v3.0.0...v3.1.0

3.0.0Релиз1.21.4 · 1 июня 2025 г.

Important Changes for users

  • Updated to 1.21.4
  • Many new options to config screen to improve customisability
  • Added option complexity for context menu options to allow users focus on their priorities for customisation and remove bloat options.
  • Using chroma text for TextWidget Rainbow, along with more customisation to the rainbow effect with enhanced option complexity.
  • New Context Menu Skins like ModernSkin, ClassicSkin, MinecraftSkin
  • Easier mod management
  • Better error reports, with a warning screen to indicate if a mod failed to properly integrate with DynamicHUD
  • Removed ColorPicker from ColorOption :(
  • Optimised

TODO: Backwards compatibility and forward compatibility.

Important changes for developers:

What's Changed

Full Changelog: https://github.com/V-Fast/DynamicHUD/compare/v2.2.1...v3.0.0

2.2.1Релиз1.21, 1.21.1 · 16 августа 2024 г.

Updated Gradle to use Java 21 instead of Java 17. Not much code changes.

2.2.0Релиз1.21 · 24 июля 2024 г.

This is the official 1.21 release for minecraft fabric.

Some additional changes were made which are reflected in the GitBook/Wiki.

  • New BooleanPool class was added.
  • Updated constructors for BooleanOption, RunnableOption and SubMenuOption
  • 1.21 related changes.
  • Usual dependency update.
2.1.0Релиз1.20.5, 1.20.6 · 6 июля 2024 г.

Updated DynamicHUD to 1.20.6 version.

Should support 1.20.4, 1.20.5 and 1.20.6. Nothing much else was added.

Primary file contains the demo of DynamicHUD included. Not advised to use.

2.0.1Релиз1.20.4 · 29 мая 2024 г.

This version has a few minor changes and some bug fixes:

  • Added tooltips for widgets and created an option in YACL for the same (off by default)
  • Added new TextWidget as an example.
  • Made some javadocs more detailed and precise.

Still currently on 1.20.4 but may work for 1.20.5 and 1.20.6 as well.

Generated Changelog: https://github.com/V-Fast/DynamicHUD/compare/v2.0.0...v2.0.1

Полная история изменений — на Modrinth.

Комментарии

Загружаем…