Defining a CTF Event
The platform stores a CTF event in a Git repository. This repository should contain event metadata and all challenges.
To get started, create a event.yml in the root of your repository with metadata like this:
YAML
event_name: MyCTF
front_page_md: |
# My CTF
This is a CTF description in markdown.
rules_md: |
# Rules
- Write your rules in markdown here!
start_time: 2025-11-13T10:00:00Z
end_time: 2026-11-20T10:00:00Z
use_teams: true # Setting this to false makes this a solo competition
# Optional, if you want to limit registration time
#registration_start_time: 2025-11-13T10:00:00Z
#registration_end_time: 2026-11-20T10:00:00Z
points_fn: |
setPointsFn((challengeMetadata, totalSolves, currentSolveIndex) => {
// This closure receives the challenge metadata, amount of solves and at which solve this was (1st, 2nd, ...)
// It should return an integer (Number, not a BigInt).
})
categories: # This gives internal category IDs (used on the challenges) names and descriptions
misc:
name: Misc
description: "A short **Markdown** description of the category"
color: "#f00"
rev:
name: rev
color: green
difficulties: # This gives internal difficulty IDs (used on the challenges) names
easy:
name: Easy
medium:
name: Medium
hard:
name: HardYour challenges should be placed in the challs subdirectory of the repository.