CTFFactory Docs

Scoring and Scoreboard

CTFFactory uses CTFd as the scoring engine for all events, whether self-hosted or managed. This page explains how flag submission works, the difference between static and dynamic scoring, how the live scoreboard operates, and how to configure scoring for your event.

Flag Submission

Players submit flags through the CTF Arena interface or directly through the CTFd player panel. Each challenge has exactly one correct flag, generated by CTFFactory at challenge creation time.

Flags follow the format CTF{...} by default, though organizers can configure a custom flag prefix per event (for example, ACME{...} for a company-branded event).

Submission Behavior

Scenario Result
Correct flag submitted Solve recorded, points awarded, timestamp captured
Incorrect flag submitted No points awarded; attempt logged
Duplicate correct submission Ignored; only the first correct submission counts
Case sensitivity Flags are case-sensitive by default

[!NOTE] CTFFactory stores flag hashes, not plaintext flags, in the CTFd database. Even with database access, flags cannot be reversed from the stored hash.

Scoring Modes

Static Scoring

In static scoring, each challenge has a fixed point value assigned at event creation time. The value does not change regardless of how many teams solve it.

When to use static scoring: - Educational events where fairness of absolute score matters - Events where challenges are carefully balanced in advance - Short events where dynamic adjustment is unnecessary

Dynamic Scoring

In dynamic scoring, the point value of a challenge starts at a maximum and decreases as more participants solve it. The first team to solve a challenge earns the most points; later solvers earn fewer.

CTFd's standard dynamic scoring formula is:

points = max(minimum_value, decay_function(initial_value, solves, decay_constant))

Where: - initial_value β€” the starting point value (set per challenge) - minimum_value β€” the floor below which points cannot fall - decay_constant β€” controls how quickly points decrease with each solve

When to use dynamic scoring: - Competitive ranked events where skill differentiation matters - Larger participant pools where popular challenges would otherwise be too easy to max-score - Leaderboard events with tiebreaker requirements (first solve wins on equal points)

[!TIP] For events with mixed difficulty, consider applying dynamic scoring to easy and medium challenges (where many solves are expected) and static scoring to hard and insane challenges (where few solves are expected and first-blood has high value).

Configuring Scoring in CTFFactory

  1. Open your event and go to Event Settings β†’ Scoring.
  2. Select Static or Dynamic.
  3. For each challenge, set the point values:
  4. Static: enter a fixed value.
  5. Dynamic: enter the initial value, minimum value, and decay constant.
  6. Optionally configure wrong answer penalties β€” a point deduction applied for each incorrect submission after a threshold.
  7. Save settings before publishing the event.

The Live Scoreboard

The scoreboard is the real-time ranking of participants or teams during an event.

Scoreboard Visibility Options

Setting Effect
Public All participants can see the full scoreboard at all times
Frozen Scoreboard stops updating for participants at a set time before the event ends (organizers still see live data)
Hidden Scoreboard is invisible to participants; only organizers can view rankings

Frozen scoreboard is a common competitive practice: the scoreboard stops updating in the final hour of the event, preventing teams from targeting only the challenges needed to overtake a visible leader. Organizers see live data throughout.

Scoreboard Data

Each scoreboard entry shows:

  • Rank
  • Team or player name
  • Total score
  • Number of challenges solved
  • Time of last solve (used as tiebreaker when scores are equal β€” earlier last solve wins)

The scoreboard refreshes in real time via CTFd's WebSocket connection. No manual page refresh is required.

First Blood

First blood is the designation for the first participant to solve a given challenge. CTFFactory marks first-blood solves in the challenge list and event timeline. In dynamic scoring events, first blood carries the highest point value automatically. Organizers can optionally award bonus points for first blood under Event Settings β†’ Scoring β†’ First Blood Bonus.

Disqualification and Score Adjustment

Organizers can adjust scores or disqualify participants from the CTFd admin panel (accessible via the Admin URL in the managed instance). CTFFactory does not currently provide a dedicated disqualification UI, but manual score corrections made in CTFd are reflected in post-event reports.

After the Event

When the event ends, flag submission closes automatically at the configured end time. The final scoreboard state is captured and included in the post-event report. The CTFd instance remains accessible in read-only mode for participants to review challenges (unless the organizer chooses to tear it down immediately).

πŸ‡¨πŸ‡¦ Data hosted in Canada Β· Β© 2026 ExamBoot Β· Terms Β· Privacy