A CTFd plugin that adds penalties for wrong challenge submissions. When a participant submits an incorrect flag, they receive a penalty that reduces their score.
- Configurable penalty system for wrong flag submissions
- Two penalty types:
- Percentage: Deducts a percentage of the challenge's value
- Fixed: Deducts a fixed number of points
- Penalties appear as negative awards in the team/user history
- Admin interface to configure penalties
- Can be enabled/disabled without removing the plugin
- Clone this repository into your CTFd plugins directory:
cd /path/to/CTFd/CTFd/plugins
git clone https://github.com/yourusername/ctfd-penalty.git ctfd_penalty
- Make sure the plugin directory structure is as follows:
CTFd/plugins/ctfd_penalty/
├── README.md
├── __init__.py
├── assets/
│ └── admin/
│ ├── js/
│ │ └── penalty_settings.js
│ └── penalty_config.html
└── config.json
- Restart CTFd
docker restart ctfd
- Log in as an admin
- Go to Admin Panel → Plugins → Challenge Penalty
- Configure:
- Enable/disable penalties
- Choose penalty type (percentage or fixed points)
- Set the penalty value (percentage or points)
- Click "Save Settings"
Once configured, the plugin automatically:
- Monitors challenge submissions
- Applies penalties for incorrect submissions based on your settings
- Creates negative award entries in the user/team history
- Updates the scoreboard accordingly
- Penalties are applied immediately after an incorrect submission
- Penalties stack (multiple wrong submissions = multiple penalties)
- Penalties are visible in the awards section of the user/team pages
- Penalties affect the scoreboard in real-time
- The plugin works in both user and team modes
For issues, feature requests, or contributions, please:
- Check existing issues
- Open a new issue with:
- CTFd version
- Clear description of the problem/request
- Steps to reproduce (if reporting a bug)
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the GPL V3 License - see the LICENSE file for details
Created by Degun