Thanks for contributing to Ignite — a next-generation server framework and web control panel for Space Engineers.
This project is focused on performance, extensibility, and long-term maintainability. Please follow the guidelines below to keep contributions consistent and high quality.
-
Fork the repository
-
Clone your fork:
git clone https://github.com/<your-username>/ignite.git
-
Create a branch:
git checkout -b feature/my-feature
Ignite is structured into multiple components:
IgniteSE1/– Core server framework (runtime + orchestration)Torch2API/– Shared contracts and abstractionsTorch2WebUI/– Web-based control panel- (Planned) Plugin system for extensibility
Keep responsibilities separated. Avoid tightly coupling these layers.
- Core logic should not depend on UI/web layers
- Prefer interfaces and abstractions over concrete coupling
- Avoid over-engineering
- Write code that’s easy to read and maintain
- Design features with plugins/modules in mind
- Avoid hardcoding behavior that should be configurable
- Follow standard C# conventions
- Use meaningful names (no abbreviations unless obvious)
- Keep methods small and focused
- Avoid deep nesting
If formatting changes are needed, submit them separately from logic changes.
- Add tests for new functionality when practical
- Ensure existing tests pass before submitting
- Don’t introduce breaking changes without discussion
Before submitting a PR:
-
Rebase or merge latest
main -
Keep changes focused and minimal
-
Write a clear description:
- What does this change do?
- Why is it needed?
- Mix unrelated changes
- Introduce unnecessary complexity
- Break architecture boundaries
When reporting issues, include:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Logs/screenshots if applicable
- Explain the problem you’re solving
- Avoid vague suggestions
- Be open to discussion before implementation
Ignite is being designed for extensibility. Plugin development guidelines will be added as the system stabilizes.
Until then:
- Avoid building features that should be plugins into the core
- Propose extension points instead
- Large, unfocused pull requests
- Breaking API changes without discussion
- Adding dependencies without clear justification
- Mixing refactors with feature work
Be respectful and constructive. This is a long-term project — collaboration quality matters.
Ignite is still evolving. Some areas may change rapidly.
If you're unsure about an approach, open a discussion before implementing.
Thanks for contributing 🚀