Formatting Support
Guidance supports Discord markdown: bold, italic, strikethrough, code blocks, and links.
The CTF Builder guides you through creating challenges step-by-step with a friendly interactive interface. No command syntax or markdown required.
Difficulty Selection
Category Selection
Input Type Selection
Challenge Details Modal
Preview (Optional)
Publish
Members see the challenge embed and click “Submit Flag” to open a modal where they type the flag.
Best for:
Flag Example:
flag{this_is_the_answer}flag{sql_injection_pwned}CTFLab{welcome_to_ctflab}Tips:
flag{} for clarityMembers download an attached file (binary, image, archive, encrypted data, etc.) and submit the extracted flag.
Best for:
Workflow:
challenge.bin, image.png)File Editing: When editing a file-based challenge:
Formatting Support
Guidance supports Discord markdown: bold, italic, strikethrough, code blocks, and links.
Difficulty Color Coding
Challenge embeds are color-coded by difficulty for quick visual scanning.
Attempt Limiting
Optionally cap attempts so members can’t brute-force weak challenges. 0 = unlimited.
Hints
Provide optional hints that members can see if they’re stuck. Encourage strategic thinking.
Challenge: SQL Injection vulnerability discovery
Step 1: Run /create-ctf
Step 2: Select Difficulty: Medium
Step 3: Select Category: Web
Step 4: Select Input Type: Text
Step 5: Fill Details
A company uses a vulnerable login form at example.com/login.phpFind the admin flag by bypassing authentication.
Hint: The password field isn't sanitized!flag{sql_injection_bypassed}Step 6: Preview to check formatting
Step 7: Publish to #ctf-challenges
Challenge: Reverse engineer a binary to find a hidden flag
Step 1: Run /create-ctf
Step 2: Select Difficulty: Hard
Step 3: Select Category: Reversing
Step 4: Select Input Type: File
Step 5: Fill Details
Analyze the attached binary and find the hidden flag.
Tools: IDA Pro, Ghidra, objdump, or any disassemblerflag{reverse_engineering_master}Step 6: Publish
Members will download the binary, reverse it, and submit the flag.
**Challenge:** [Catchy title]
[2-3 sentence description of the scenario]
**What to do:**1. [Step 1]2. [Step 2]3. [Step 3]
**Expected Output:** A flag in the format `flag{...}`
**Tools:** [Recommended tools or languages]
**Time Estimate:** [30 minutes / 1 hour / 2+ hours]/edit-ctf [query]/ctf-list, but keep all solve history/ctf-repair [message_link] if the embed breaks