Welcome Contributors
CoD4 Unleashed Server is an open-source project that welcomes contributions from the community. Whether you’re fixing bugs, adding features, improving documentation, or creating plugins, your contributions help make the server better for everyone.Project Information
Repository
The project is hosted on GitHub:CoD4-Unleashed-Server
Main repository for CoD4 Unleashed Server source code
License
This project is released under the GNU Affero General Public License v3.0 (AGPL-3.0). Key points about AGPL-3.0:- You can freely use, modify, and distribute this software
- If you modify the server and run it publicly, you must make your source code available
- Any derivative works must also be licensed under AGPL-3.0
- Network use is considered distribution (key difference from GPL)
Ways to Contribute
Report Bugs
Found a bug? Open an issue on GitHub with detailed information
Fix Issues
Browse open issues and submit pull requests with fixes
Add Features
Implement new functionality or enhance existing features
Write Documentation
Improve docs, add examples, or create tutorials
Create Plugins
Develop plugins using the Plugin API
Test Changes
Test pull requests and provide feedback
Getting Started
Make your changes
Write your code following the project conventions:
- Follow existing code style
- Add comments for complex logic
- Update documentation if needed
- Test your changes thoroughly
Code Guidelines
Code Style
The project uses consistent coding style across the codebase:C Code Style
C Code Style
.clang-format configuration:Assembly Code Style
Assembly Code Style
GSC Code Style
GSC Code Style
Editor Configuration
The project includes.editorconfig for consistent formatting:
Code Quality
Test thoroughly
Test your changes:
- Test on both Linux and Windows if possible
- Test with various configurations
- Test with existing mods and plugins
- Check for memory leaks with valgrind (Linux)
Developing Plugins
Plugin Development Setup
Get the plugin starter pack
The
plugins/ directory contains:readme.txt: Plugin API documentation- Example plugins
- Plugin header files
Plugin API Guidelines
Available Plugin Events
Plugins can hook into various server events:Plugin Types
- Standard Plugin
- Library Plugin
- Script-Library Plugin
Regular plugin that can be loaded and unloaded:
Pull Request Guidelines
Before Submitting
Checklist
Checklist
- Code compiles without errors or warnings
- Changes are tested on Linux and/or Windows
- Code follows project style guidelines
- Comments added for complex logic
- Documentation updated if needed
- Commit messages are clear and descriptive
- No unnecessary files included (binaries, IDE configs, etc.)
- Changes are focused on a single issue/feature
PR Description Template
Review Process
Reporting Bugs
When reporting bugs, include:System Information
System Information
- Operating system and version
- Server version (from console/log)
- Architecture (32-bit/64-bit)
- Build type (pre-built binary or compiled from source)
Bug Description
Bug Description
- Clear description of the issue
- Expected behavior vs actual behavior
- When the issue started occurring
- Frequency (always, sometimes, rarely)
Reproduction Steps
Reproduction Steps
- Step-by-step instructions to reproduce
- Specific configuration or setup needed
- Any relevant commands or actions
Logs and Output
Logs and Output
Additional Context
Additional Context
- List of loaded plugins
- Active mods or modifications
- Recent changes to configuration
- Screenshots or videos if applicable
Community
Getting Help
Forum
Ask questions and discuss with the community
Documentation
Official Scripting API reference
GitHub Issues
Report bugs and request features
GitHub Discussions
General discussions and questions
Stay Updated
Keep your fork in sync with upstream:Recognition
Contributors are recognized in:- Project README
- Release notes
- Git commit history
- Collaborator status
- Direct commit access
- Project maintainer role
Questions?
If you have questions about contributing:- Check existing issues and discussions
- Ask on the community forum
- Open a GitHub discussion
- Contact project maintainers
We appreciate all contributions, no matter how small. Even fixing typos or improving documentation helps make the project better!