Welcome Contributors!
Thank you for your interest in contributing to BetterHud! This guide will help you get started with contributing code, documentation, and other improvements to the project.BetterHud is an open-source project, and contributions from the community are what make it better!
Ways to Contribute
There are many ways to contribute to BetterHud:Report Bugs
Found a bug? Report it on GitHub Issues with detailed reproduction steps.
Suggest Features
Have an idea for improvement? Create a feature request.
Fix Issues
Browse open issues and submit pull requests with fixes.
Improve Documentation
Help improve guides, fix typos, or add missing information.
Write Tests
Add unit tests or integration tests to improve code quality.
Share Examples
Create example HUD configurations or integration plugins.
Getting Started
1. Fork and Clone
Fork the Repository
Visit github.com/toxicity188/BetterHud and click the “Fork” button to create your own copy.
2. Set Up Development Environment
Install Java 21
BetterHud requires Java 21 Eclipse Adoptium for development.Download from adoptium.netVerify installation:
Install an IDE
Recommended IDEs for Kotlin development:
- IntelliJ IDEA (recommended) - Excellent Kotlin support
- Eclipse with Kotlin plugin
- VS Code with Kotlin extension
Import Project
Open the BetterHud project in your IDE:
- IntelliJ IDEA: File → Open → Select the BetterHud directory
- The IDE should automatically detect it as a Gradle project
Development Workflow
Creating a Feature Branch
Always create a new branch for your changes:Use descriptive branch names:
feature/add-animation-systemfor new featuresfix/resource-pack-generationfor bug fixesdocs/update-api-examplesfor documentationrefactor/improve-hud-renderingfor refactoring
Making Changes
Write Code
Make your changes to the codebase. Follow the coding style used in the project:
- Use Kotlin coding conventions
- Follow existing code formatting
- Add comments for complex logic
- Keep functions focused and concise
Test Your Changes
Test your changes thoroughly:Ensure:
- Your changes work as expected
- No existing functionality is broken
- No compilation errors or warnings
Submitting a Pull Request
Create Pull Request
- Go to your fork on GitHub
- Click “Compare & pull request” for your branch
- Fill out the pull request template
- Provide a clear title and description
- Reference any related issues (e.g., “Fixes #123”)
Code Guidelines
Kotlin Style
BetterHud is written in Kotlin. Follow these guidelines:- Naming
- Formatting
- Documentation
- Best Practices
API Compatibility
- Don’t remove public methods/classes without deprecation
- Use
@Deprecatedannotation with replacement suggestions - Maintain API compatibility within major versions
Reporting Issues
When reporting bugs or issues, please include:Detailed Description - What happened vs. what you expected
Reproduction Steps - Step-by-step instructions to reproduce
Environment Information - OS, server version, platform, BetterHud version
Error Logs - Full stack traces and relevant log output
Configuration Files - Relevant YAML configs if applicable
Screenshots/Videos - Visual evidence when helpful
What NOT to Report
Please don’t create issues for: See the bug report template for required information.Feature Requests
When suggesting features:- Describe the Use Case - Why is this feature needed?
- Provide Examples - How would it work? Include mockups if possible
- Consider Alternatives - Have you tried existing features?
- Be Realistic - Is this feasible for server-side implementation?
The more detailed and well-thought-out your feature request, the more likely it is to be implemented!
Features We Cannot Accept
Some features are outside BetterHud’s scope:- Bedrock/Geyser support
- Client-side only features (e.g., 144 FPS HUD)
- Closed-source plugin/mod integration
- Significant performance-degrading features
- Features requiring modified clients
- Support for very legacy versions
Testing
Manual Testing
Before submitting a PR:- Build the project:
./gradlew build - Test on a server: Use
./gradlew runServeror test on a real server - Test all platforms: If changes affect multiple platforms, test each
- Test edge cases: Try unusual configurations or scenarios
- Verify no regressions: Ensure existing features still work
Automated Testing
If you’re adding significant new functionality, consider adding tests:Documentation
Updating Documentation
If your changes affect user-facing features:- Update relevant documentation pages
- Add examples for new features
- Update API documentation (KDoc comments)
- Include changelog entry
Writing Good Documentation
- Be Clear
- Show Examples
- Explain Why
Write in simple, clear language:Good:
Set enabled: true to activate the HUD element.
Bad:The activation of the HUD element is accomplished via the modification of the enabled configuration parameter to a boolean true value.
Community
Get Help
Need help contributing?- Discord: Ask in discord.com/invite/rePyFESDbk
- GitHub Discussions: Start a discussion on GitHub
- Issues: Comment on related issues
Code of Conduct
When participating in the BetterHud community:Be respectful and professional
Welcome newcomers and help them learn
Accept constructive criticism gracefully
Focus on what’s best for the project
Give credit where credit is due
Recognition
Contributors are recognized in:- GitHub’s contributor list
- Release notes for significant contributions
- Project documentation
Every contribution, no matter how small, is valued and appreciated!
License
By contributing to BetterHud, you agree that your contributions will be licensed under the same license as the project. Check the LICENSE file for details.Questions?
If you have questions about contributing:- Check this guide and the Building Guide
- Search existing GitHub issues and discussions
- Ask in the Discord server
- Create a GitHub discussion
