Schedules¶
A schedule picks which challenges are active, and for how long. Only one schedule runs at a time: the first entry in schedules.yaml whose UTC window contains now.
File: /addons/counterstrikesharp/configs/plugins/Challenges/schedules.yaml
An empty file is created on first start. Changes apply on the next map start, or after challenges reload.
Only challenges listed on a schedule that has not ended (date_end ≥ now) are loaded from blueprints/. Ended schedules are ignored for loading. Progress still uses only the first in-window schedule.
test_challenge:
title:
en: "Season challenges"
de: "Saison-Herausforderungen"
date_start: "2026-01-01 00:00:00"
date_end: "2027-01-01 00:00:00"
challenges:
- headshots_in_a_row
- knife_challenge
- weapon_ak47
| Field | Meaning |
|---|---|
title |
Language map. Used for the Discord “new schedule” embed heading (see below). The first title string in the map is also part of the progress key. |
date_start / date_end |
"YYYY-MM-DD HH:MM:SS" in UTC. See Dates. |
challenges |
List of challenge ids = filenames in blueprints/ without .yaml. An optional :* suffix is stripped. Unknown ids are skipped. Duplicates are ignored. See Challenge list. |
Tip
Put the schedule you want first among those that overlap. Later overlapping entries are ignored.
Dates¶
date_start and date_end use the form "YYYY-MM-DD HH:MM:SS" and are interpreted as UTC. The active schedule is the first entry whose window contains the current UTC time.
Challenge list¶
Each entry under challenges: must match a file in blueprints/ (filename without .yaml). Example: headshots_in_a_row loads blueprints/headshots_in_a_row.yaml.
Schedule title¶
The HUD menu and tracker do not display the schedule title. They use fixed plugin strings and challenge/task titles.
Discord’s new-schedule embed expands the title with:
| Placeholder | Value |
|---|---|
{total} |
Number of challenges in that schedule |
{count} |
Always 0 |
{playerName} |
The word Player |
Language fallback for Discord uses discord.language from Settings, then the two-letter code, then the first language in the map.
Progress key¶
Progress for a schedule is stored under a key built from:
- The first title string in
title date_startdate_end
Important
Changing any of those three starts a new progress key. Task progress for the old key is removed from the player file. The lifetime solved count is kept.
See In game for where player files live.