This plugin extends CTFd to support a new challenge type called "Multi-Question Challenge". It allows a single challenge to contain multiple sub-questions, each with its own question text, flag, and point value. The total score for the challenge is automatically calculated as the sum of all its sub-questions.
This is ideal for scenarios where a single task or artifact (e.g., a file to analyze, a service to exploit) has multiple flags to be found.
- Create challenges with multiple, distinct sub-questions.
- Each sub-question has its own unique text, flag, and point value.
- A real-time progress tracking UI is displayed in the challenge modal, showing:
- Total score acquired vs. total possible score.
- Number of questions solved vs. total questions.
- Number of questions remaining.
- The main challenge's score is automatically calculated and updated based on the sum of its sub-questions.
- Admins can set the challenge state to "Visible" or "Hidden" during creation.
- Clone this repository or download the source code.
git clone https://github.com/tyc4d/CTFd-Sub-Question/ subquestionchallenge
- Place the
subquestionchallengedirectory into theCTFd/plugins/directory of your CTFd instance. - Restart the CTFd application.
To create a new Multi-Question Challenge, follow these steps:
- Navigate to the CTFd Admin Panel.
- Go to the "Challenges" page and click the "Create" button.
- From the "Type" dropdown menu, select "Multi Question Challenge".
- Fill in the standard challenge details: Name, Category, and Description. The "Value" field will be automatically calculated and can be ignored.
- In the "Questions & Flags" section that appears, add one or more questions.
- For each question, you must provide the Question Text, the correct Flag, and the Points awarded for solving it.
- Use the "Add Question" and "Remove Last Question" buttons to manage the list of questions. You must have at least one question.
- Set the challenge State to "Visible" if you want it to be immediately available to users.
- Click the "Create" button to save the challenge.
- Create
- View
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
This plugin is a derivative work based on CTFd, which is also licensed under the Apache License 2.0.