Thank you for your interest in contributing to DynamicHUD! We welcome all contributions, including bug fixes, feature suggestions, documentation updates, and new widget types or context menu skins. Please follow the following guidelines.
DynamicHUD is built on the Fabric Loader toolchain using Fabric Loom.
- Clone the repository:
git clone https://github.com/tanishisherewith/DynamicHUD.git cd DynamicHUD - Setup the Gradle environment:
- For IntelliJ IDEA, import the folder as a Gradle project.
- Run the task to generate Minecraft source mappings:
gradlew genSources
- Run Minecraft:
- Run the client using the run configuration generated by Loom:
gradlew runClient
- Run the client using the run configuration generated by Loom:
- Use standard Java camelCase naming conventions.
- Maintain visibility access levels. Use package-private or
protectedfields appropriately for widget extensions. - Do not check in raw absolute coordinates in widgets or hardcoded resolution values. Use the snap-alignment and ratio-anchored dynamic coordinate updates from
Widget.java.
- DynamicHUD uses Official Mojang Mappings since 1.21.11 (
v4.0.0) onwards.
More to be listed later. TODO
- Text & Truncation: To prevent option names from overflowing card limits, use
Util.getTruncatedName(Component, int)and render withUtil.drawTruncatedScaledText(...)orUtil.drawScaledText(...).
- Create a Feature Branch:
git checkout -b feature/my-new-feature
- Write Clean Commits:
- Write clear, concise commit messages.
- Separate refactoring from new features.
- Test Your Changes:
- Run a clean build to make sure java compilation passes without warnings:
gradlew clean build
- Verify that your layout strategy matches visual guides and screen resize snapping works.
- Run a clean build to make sure java compilation passes without warnings:
- Submit your PR:
- Provide a clear description of the problem solved and links to relevant issues.
- Add screenshots or recordings if your changes affect the GUI.
We expect all contributors to adhere to our Code of Conduct in all community interactions.