Challenges
Creating and managing challenges in rCTF.
Challenges are managed through the admin panel at /admin/challs. This page covers the challenge data model, visibility controls, and related features.
Creating and updating challenges#
Challenges are created and updated through the admin panel. Each challenge has a unique ID. Updating a challenge triggers an automatic leaderboard recalculation to reflect any point changes.
Each challenge also picks a scoring kind (decay or dynamic). See Scoring for the full data model, including how to publish per-team scores to a dynamic challenge from an external service.
Challenge visibility#
Challenges support two visibility controls:
- Setting
hiddentotruecompletely hides the challenge from non-admin users. - Setting
releaseTimeto a Unix-millisecond timestamp makes the challenge visible only after that moment. Set it tonullto make the challenge visible immediately when the CTF starts.
Use these to prepare challenges ahead of time and release them on schedule.
File attachments#
Challenge files are uploaded separately through the admin panel (see Uploading) and then referenced in the challenge data. Each file has a display name, URL, and size.
Deleting challenges#
Challenges can be deleted through the admin panel. Deletion also removes all associated solves and triggers a leaderboard recalculation.
Warning
Challenge deletion is irreversible and removes all solve records for that challenge.
Instancer and admin bot configuration#
Challenges can optionally include extra configuration blocks:
instancerConfigholds the configuration for per-team instances. When set, it is validated against the instancer provider’s schema. See Instancer for details.adminBotConfigholds JavaScript code for admin bot testing. The code defines inputs (with regex validation) and a timeout. The admin bot provider validates the configuration when saving. See Admin bot for the handler API and the input schema.