Contributing to Overthrow involves submitting pull requests through GitHub. This guide covers the entire process from setting up your development environment to getting your changes merged into the main project.
Before contributing, ensure you have:
Fork the Repository
Clone Your Fork
# Clone your fork (replace YOUR_USERNAME)
git clone https://github.com/YOUR_USERNAME/Overthrow.Arma4.git
cd Overthrow.Arma4
# Add upstream remote
git remote add upstream https://github.com/ArmaOverthrow/Overthrow.Arma4.git
# Update your main branch
git checkout main
git pull upstream main
# Create a new feature branch
git checkout -b feature/your-feature-name
# Example branch names:
# feature/mobile-fob-improvements
# bugfix/recruit-persistence-issue
# enhancement/loadout-manager-ui
feature/description-of-feature
bugfix/description-of-fix
enhancement/description-of-enhancement
docs/description-of-documentation
Make Your Changes
Commit Frequently
# Add specific files
git add Scripts/Game/SomeComponent.c
# Or add all changes
git add .
# Commit with descriptive message
git commit -m "Add new mobile FOB deployment validation
- Implement distance checking for FOB placement
- Add terrain validation for deployment sites
- Update UI feedback for invalid placement attempts"
Follow Commit Message Guidelines
Good Examples:
Add recruit equipment synchronization
- Implement real-time equipment sync between recruits
- Fix multiplayer desync issues with AI loadouts
- Add validation for equipment compatibility
Fixes #234
Fix mobile FOB deployment crash on dedicated servers
- Add null check for deployment component initialization
- Ensure proper server-side validation before deployment
- Update error handling for invalid deployment locations
Closes #187
Poor Examples:
fixed stuff
Update file
Before submitting your pull request:
Compilation Test
Functionality Test
OVT_Campaign_Test.ent
)Multiplayer Test (if applicable)
Performance Test
Include testing instructions in your pull request:
## Testing Instructions
### Single Player Test
1. Load `OVT_Campaign_Test.ent` in World Editor
2. Start game and join resistance faction
3. Navigate to nearest town
4. Test recruit civilian action on 3-5 different NPCs
5. Verify recruits join group and respond to commands
### Multiplayer Test
1. Host dedicated server with test world
2. Connect 2-3 clients
3. Each client recruit 2-3 AI units
4. Test AI commands and group coordination
5. Save and reload - verify recruit persistence
### Expected Results
- Recruitment should work consistently
- AI should respond to all basic commands
- No console errors or crashes
- Recruits should persist across save/load cycles
# Fetch latest changes from upstream
git fetch upstream
# Merge or rebase onto latest main
git checkout main
git pull upstream main
git checkout feature/your-feature-name
git merge main # or: git rebase main
If there are merge conflicts:
# Push your feature branch to your fork
git push origin feature/your-feature-name
# If you rebased, you may need to force push
git push --force-with-lease origin feature/your-feature-name
Navigate to Your Fork
Fill Out PR Template
## Summary
Brief description of what this PR does.
## Changes Made
- [ ] Added new feature X
- [ ] Fixed bug with Y
- [ ] Updated documentation for Z
- [ ] Refactored component A for better performance
## Testing Performed
### Single Player
- [ ] Tested in test world
- [ ] Verified functionality works as expected
- [ ] No console errors observed
### Multiplayer (if applicable)
- [ ] Tested with multiple clients
- [ ] Verified network synchronization
- [ ] No desync issues observed
### Performance
- [ ] No significant performance impact
- [ ] Memory usage acceptable
- [ ] Tested with reasonable load
## Testing Instructions
Detailed steps for reviewers to test your changes.
## Screenshots/Videos (if applicable)
Include visual evidence of your changes working.
## Related Issues
Fixes #123
Addresses #456
## Checklist
- [ ] Code compiles without errors
- [ ] Follows Overthrow coding standards
- [ ] Includes appropriate documentation
- [ ] Testing instructions provided
- [ ] No breaking changes (or documented)
ref
keyword# Make your changes
git add .
git commit -m "Address review feedback: improve error handling"
git push origin feature/your-feature-name
#reforger-dev
channelContributing to Overthrow is a collaborative process that ensures high-quality code and maintains the project's architecture standards. Following these guidelines will help your contributions be accepted quickly and maintain the project's quality standards.