-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
McAffe13 edited this page Jul 23, 2026
·
1 revision
Contributions to FPSFlow are welcome! This guide will help you get started.
- Check existing issues to avoid duplicates
- Create a new issue with:
- Clear title and description
- Minecraft version, Fabric Loader version, Java version
- List of installed mods
- FPSFlow config (
config/fpsflow.json) - Game log (
latest.log) - Screenshots or video if applicable
- Check existing issues for similar suggestions
- Create a new issue with the
enhancementlabel - Describe the feature and why it would be useful
- Consider performance implications
- Fork the repository
- Create a feature branch from
main - Make your changes
- Test thoroughly in-game
- Commit with a clear message
- Push to your fork
- Open a Pull Request
See Building from Source for setup instructions.
- Keep changes focused and minimal
- Maintain backward compatibility with existing configs
- Do not break existing features
- Test on both MC 1.21.11 and 26.2 if possible
- Follow the existing code style
- Use meaningful variable and method names
- Add Javadoc for public APIs
- Keep methods short and focused
- Avoid unnecessary allocations in hot paths
- Keep mixins minimal; inject only what is necessary
- Use
require = 0for all mixins to ensure fail-soft behavior - Comment why the mixin is needed
- Test with multiple Minecraft versions if possible
- Reimplement concepts from scratch; do not copy-paste
- Add Javadoc
@seereferences to the Lithium repository - Attribute inspiration in comments
- Ensure compatibility with FPSFlow's architecture
- Add new config fields to
FPSFlowConfig.java - Provide sensible defaults
- Update the config screen if user-facing
- Document in wiki/Configuration.md
Before submitting a PR:
- Code compiles without errors
- Code compiles without warnings (except deprecation warnings from dependencies)
- Feature works as intended in-game
- No crashes on launch
- No crashes during gameplay
- Config migration works (old configs still load)
- Compatibility with common mods (Sodium, EntityCulling, ImmediatelyFast)
- Debug log shows expected initialization messages
- Additional Lithium-inspired optimizations
- Performance profiling and benchmarking
- Documentation and wiki improvements
- Translation files (
en_us.json,de_de.json) - Testing on different Minecraft versions and mod loaders
Open an issue with the question label or join the GitHub Discussions.
FPSFlow is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
- You are free to use, modify, and distribute FPSFlow
- If you run a modified version on a server, you must provide the source code to users
- See LICENSE for full terms