First off, thank you for considering contributing to OverWatch-ML! It's people like you that make this project great.
We welcome contributions in several key areas:
- ML Algorithms: Enhancing our Isolation Forest or Autoencoder models, or adding new features to the behavior vector.
- GUI: Improving the Staff Menu, adding new management screens, or optimizing inventory interactions.
- Documentation: Expanding our wiki, improving this README, or writing tutorials.
- Testing: Running OverWatch-ML on real, populated servers and reporting edge cases or false positives.
When filing a bug report, please include as much detail as possible. Use the following template:
- Plugin Version: (e.g., 2.0.0)
- Server Version: (e.g., Paper 1.21)
- Description: A clear and concise description of what the bug is.
- Steps to Reproduce: Exactly what you did to trigger the bug.
- Expected Behavior: What you expected to happen.
- Actual Behavior: What actually happened.
- Console Output: Any error logs or stack traces (use pastebin or code blocks).
We love new ideas, but we need to understand the problem you're trying to solve. Please provide a clear use case for your feature suggestion, not just the technical solution. Explain how it benefits server administrators or improves detection accuracy.
- Fork the repository on GitHub.
- Clone your fork locally.
- Ensure you have Java 21 installed.
- Run the Maven Build:
mvn clean packageto ensure everything compiles. - Set up a local Test Server running Paper to deploy and test your changes.
- Follow standard Java naming conventions.
- Keep lines to a maximum of 120 characters.
- Provide Javadoc for all public methods and classes.
- All comments and variable names must be in English.
- Create a new branch for your feature (
git checkout -b feature/my-new-feature). - Make your changes, adhering to the code style.
- Test your changes thoroughly on a local server.
- Commit your changes with clear, descriptive commit messages.
- Push your branch to your fork and submit a Pull Request to the
mainbranch of this repository.
Changes to the Machine Learning pipeline require extra scrutiny. Any proposed changes to detection algorithms, feature engineering, or model parameters must be accompanied by:
- A clear justification explaining the research or logic behind the change.
- Metrics demonstrating the impact (e.g., detection rates, false positive rates, performance impact) before and after the change on a substantial dataset.