Thank you for considering a contribution to RC-Flight-Sim! This is a community-driven, open-source project and every contribution – code, art, documentation, or bug reports – is valued and appreciated.
- Code of Conduct
- Ways to Contribute
- Development Workflow
- Coding Standards
- Pull Request Checklist
- Reporting Bugs
- Requesting Features
- License
Be respectful. We follow the Contributor Covenant v2.1.
Harassment, discrimination, or personal attacks will not be tolerated.
| Area | What to do |
|---|---|
| Bug fixes | Open an issue, then a PR with the fix |
| New aircraft | Follow docs/aircraft_creation.md |
| New sceneries | Follow docs/scenery_creation.md |
| Physics improvements | Discuss in an issue first (may touch core architecture) |
| UI / UX | Open a feature request, then submit a PR |
| Documentation | PRs welcome – fix typos, add examples, improve clarity |
| Translations | Add a .po file under godot_project/locale/ |
- Fork the repository on GitHub.
- Clone your fork:
git clone https://github.com/YOUR_USER/RC-Flight-Sim.git - Create a feature branch:
git checkout -b feature/my-new-thing - Make your changes and commit with clear, concise messages.
- Push the branch:
git push origin feature/my-new-thing - Open a Pull Request against
main.
Never commit directly to
main.
- Use static typing where possible:
var speed: float = 10.0. - Follow Godot's GDScript style guide.
- File names:
snake_case.gd, class names:PascalCase. - Every exported public function must have a
## docstringcomment. - No magic numbers – define named constants at the top of the file.
- Follow the Google C++ Style Guide.
- Use smart pointers (
std::unique_ptr,std::shared_ptr), no rawnew/delete. - Prefer
const¶meters for non-trivial types. - All public methods must be documented with Doxygen-style comments.
- Use descriptive node names (
MainCamera, notCamera3D2). - Group related nodes under named
Node3Dparents. - Avoid deeply nesting more than 5 levels.
Before submitting your PR, verify:
- Code follows the style guide.
- No debug
print()statements left in production paths. - New aircraft/sceneries include a README and a screenshot.
- All exported variables have a
@exportdocstring. - CI passes (GitHub Actions build workflow).
- PR description clearly explains what changed and why.
Use the Bug Report issue template. Include:
- Godot version and OS.
- Controller type (if input-related).
- Steps to reproduce.
- Expected vs actual behaviour.
- Log output from the Godot console.
Use the Feature Request template. Explain:
- The problem the feature solves.
- How it fits the project's design pillars.
- Any implementation ideas or references.
- Code (
.gd,.cpp,.h,.py,.yml, etc.): MIT License. - Art assets (models, textures, sounds): CC0 or CC-BY-SA 4.0 – please specify in a
companion
LICENSE.txtin the asset folder. - By contributing you agree that your contribution will be licensed under the same terms.