Etiquette
- Be respectful to one another. We’re here to help each other out!
- Keep titles clear and concise. Don’t put the whole description in the title.
- Don’t spam by creating unnecessary issues and pull requests.
- Use common sense!
Opening Issues
Issues serve many purposes, from reporting bugs to suggesting new features.Before You Submit
Make sure you’re playing:- The latest version of the game (currently v0.8.3)
- Without any mods
- On Newgrounds or downloaded from itch.io
Issue Types
Choose the issue template that best suits your needs:Bug Report
Bug Report
For minor bugs and general issues with the game. Choose this if none of the other templates fit.View open bug reports →
Crash Report
Crash Report
For crashes and freezes that make the game unplayable.View open crash reports →
Charting Issue
Charting Issue
For misplaced notes, wonky camera movements, broken song events, and everything related to the game’s charts.View open charting issues →
Enhancement
Enhancement
For suggestions to add new features or improve existing ones. We’d love to hear your ideas!View open enhancement requests →
Compiling Help
Compiling Help
For issues with compiling the game. Only after reading the Troubleshooting Guide.Legacy versions (before v0.3.0) are not supported.
Rejected Features
If you want to suggest a feature, make sure it hasn’t already been rejected. Here are commonly suggested features that won’t be added:| Feature | Reason |
|---|---|
| Combo Break + Accuracy Displays | See reasoning |
| Toggleable Ghost Tapping | See reasoning |
| Perfectly Centered Strumlines | Same as above |
| MultiKey, 9k, More than 4 keys | See reasoning |
| Flashy Combo Milestones | See reasoning |
| Losing Icons for DD and Parents | See reasoning |
| Quick Restart Keybind (not R) | See reasoning |
| Countdown after Unpausing | See reasoning |
| Importing Charts from Psych Engine | See reasoning |
| Backwards Compatibility for Modding | See reasoning |
| Lua Support | See reasoning |
Issue Checklist
Be sure to:- Search for duplicates before submitting
- Report only one issue per submission
- Complete all required fields in the template
Submitting Pull Requests
Community members are welcome to contribute code changes by opening pull requests.This guide does not cover compilation. If you have trouble compiling, refer to the Compilation Guide.
Choosing a Base Branch
Choose thedevelop branch if you modify:
- Game code (
.hxfiles) - Any other type of file
main branch if you modify:
- Documentation (
.mdfiles) - GitHub files (
.ymlfiles or anything in.github/)
Maintaining Your Pull Request
Our maintenance policy:- If we require changes, we’ll label your PR
status: needs revision - You have 90 days to implement requested changes
- After 90 days, your PR will be closed as
status: stale - You can request to reopen closed PRs if you address the issues
Merge Conflicts and Rebasing
Some game updates may create merge conflicts in your PR. You’ll need to resolve them by updating or rebasing.When to rebase
When to rebase
If your commit history becomes messy due to large conflicts, perform a rebase.Rebasing reapplies your changes on top of the updated branch and cleanly resolves conflicts.You can also use rebase to squash multiple commits into one.
Code Pull Requests
Code-based PRs make changes like fixing bugs or implementing features. This involves modifying.hx files in the source/ folder.
Follow the Style Guide
Code Comments Best Practices
- DO ✓
- DON'T ✗
Good code comments:What makes this good:
- Clear function documentation
- Only comments things that need explanation
- Concise and meaningful
Code Comment Guidelines
- Only comment when code needs explanation
- Ensure comments provide meaningful insight
- Write clearly and concisely
- Only sign comments when changes are complex and may need follow-up
- Never leave commented-out code — remove it or keep it elsewhere
Documentation Pull Requests
Documentation PRs make changes like fixing typos or adding information in.md files.
Make sure your changes are:
- Easy to understand
- Formatted consistently
- Clear and readable
GitHub Pull Requests
GitHub-related PRs modify.yml files or anything in the .github/ folder (like issue templates or workflows).
Funkin.assets Pull Requests
Theassets submodule has its own repository: funkin.assets.
- If you only modify files in
assets/, open a PR infunkin.assets - If you modify files in both repos, open two separate PRs and link them
- Base your PR on the
developbranch
Charting Pull Requests
Charting PRs modify*-metadata.json files in preload/data/songs/.
Next Steps
Style Guide
Learn code formatting conventions
Compilation Guide
Set up your development environment
Troubleshooting
Fix common compilation issues
GitHub Repository
View the source code
Thank you for reading the Contributing Guide. We look forward to seeing your contributions!
