- Philosophy & Task Design
- 1. Cups β Creating and managing competitions
- 2. Tasks β Uploading and editing flight tasks
- 3. Scores Management β Validating and overriding flights
- 4. Dynamic Airspace β Configuring airspace rules
- 5. User Management β Managing contributors and pilots
- 6. Pilot Registration & Payments β Managing sign-ups and payments
- 7. Automatic Flight Submission β What organisers should know
Before diving into the technical features, it is worth understanding the spirit of the AIRΒ³ TDD Cup. As an organiser, the way you design your tasks has a much bigger impact on participation than any scoring parameter you can configure.
The Core Principle
The goal of a TDD task is not to challenge only the best pilots. It is to design a task that as many pilots as possible can actually complete. The best pilots will naturally fly further β covering more distance through smarter route choices, longer flights, and bigger detours within the task β but the task itself should remain reachable by intermediate pilots flying lower-performance gliders.
Speed is intentionally not part of the TDD scoring system: the cup rewards flying well, not flying fast. A task that only a handful of pilots can complete defeats this principle and discourages participation.
Recommendations for Season Cups
In a Season Cup, the same tasks remain available throughout the season and pilots fly them under varied weather conditions. Tasks must therefore be sized so that they remain achievable across a wide range of conditions, not just the best days.
Two typical task shapes:
- Triangle tasks (FAI or flat triangle) β Aim for an optimised distance of 15 to 20 km. This may sound short, but a triangle requires the pilot to come back against the wind on at least one leg, which is much more demanding than flying straight. A 15β20 km triangle is a fair challenge that intermediate pilots can complete on a decent day, while expert pilots will use it as a starting point and extend their flight much further.
- Wind-driven tasks (downwind or crosswind) β Aim for an optimised distance of 35 to 40 km. With the wind doing part of the work, a longer distance becomes accessible to more pilots. Strong pilots will fly a longer flight before reaching the goal and may also continue beyond it, earning additional points through XContest distance β and through the DBF if you have enabled it.
Recommendations for Event Cups
In an Event Cup, you set the task on the day, after assessing the weather. You have direct control over the difficulty: a different task can be designed for each day, calibrated to that specific day's conditions.
The same principle applies β the task should be achievable by the bulk of the participants given the day's actual conditions β but you have far more flexibility:
- On a strong day with good thermals and consistent wind, a longer or more complex task is appropriate.
- On a marginal day, scale the task down so that the field still has a chance to complete it. A task that everyone abandons after 30 minutes is a wasted competition day.
- For a multi-day event, vary the task shapes (triangle, downwind, out-and-return) to reward different skills across the days.
Why This Matters for Participation
The most common reason pilots stop participating in a cup is the feeling that they have no chance. If the tasks are designed only for the very best, intermediate pilots quickly disengage. A cup with reachable tasks builds a community: pilots come back week after week, the leaderboard moves, and the cup becomes a regular fixture in the local flying scene. Task design comes first.
β Back to topA Cup is the top-level container for your competition. It groups together all the tasks, scores, pilots, and configuration. Before doing anything else, you must create a Cup.
Cup Types
When creating a cup, you must choose between two types:
- π Event Cup β A series of daily tasks. Each task is flown on a specific date, and only one submission per pilot per task is allowed. The Goal scores 200 pts if the pilot lands correctly and has validated all turnpoints beforehand, 100 pts (counted as a Turnpoint) if the Goal cylinder was reached but the pilot didn't land properly or hadn't validated every turnpoint, and 0 pts if the Goal cylinder was never reached. Distance points use a simple ratio against the best XC among pilots with the highest track points.
- π Season Cup β A free-flying season where pilots can fly the same task multiple times on different dates. The Goal scores the same way as in an Event Cup (200 / 100 / 0 pts β see above). Distance points use a compression formula with a configurable DCF (Distance Compression Factor) that reduces the gap between pilots. Optionally, the organiser can enable a DBF (Distance Bonus Factor) that allows pilots who reached the Goal as a Turnpoint (100 pts) to partially or fully recover the missing 100 pts by flying significantly further than the reference distance. The overall score is the sum of the 6 best individual flight scores.
Creating a Cup (Admin)
Creating a cup is a one-time step, done from the Admin panel. It only asks for the essentials β everything else is configured afterwards from Cup Details (see below).
| Name | The display name of the cup (e.g. "AIRΒ³ TDD Belgian Cup 2026"). Visible to all pilots. |
| Cup slug | A short, unique identifier used in URLs (e.g. AIRΒ³TDDBelgianCup2026). Auto-generated as you type the name, but editable on the spot. Must be unique across all cups. |
| Type | Event or Season (see above). Cannot be changed later once scores exist β see "Change type" below. |
| Start / End Date | The cup is considered current if today is between these dates, and previous otherwise. Previous cups remain visible but are grouped in a separate dropdown. |
| DCF | Season cups only β see "Season-only Settings" below. Default 0.3, editable here at creation. |
| Enable Distance Bonus | Season cups only β just the DBF on/off toggle at this stage. The DBF multiplier itself is set afterwards in Cup Details. |
| Organiser Name | Your name as the cup organiser. Displayed on score and overall pages. |
| Organiser Contact | Email address shown to pilots who need to contact you (e.g. for flight overrides). Must be a valid email. |
Editing a Cup (Cup Details)
Everything else β and every field above, if you need to change it later β is edited from the Cup Details page, in a single edit form visible to the owner, contributors, and superadmins. This includes: Name, Cup slug, Start/End Date, Organiser Name, Organiser Contact, Notify on tracklog, Description (EN/FR), DCF, DBF (enabled state and multiplier), and the full set of pilot registration & payment settings covered in 5. Pilot Registration & Payments.
DCF and DBF fields only appear for Season cups, and β as with creation β can only be changed while the cup has no submitted scores yet.
Season-only Settings
The following settings only appear when the cup type is Season:
| Setting | Description |
|---|---|
| π DCF Distance Compression Factor | Controls the curve used for distance points. Default: 0.3. Range: 0 to 1. Lower values compress the differences between pilots more aggressively, giving slower pilots a better chance against faster ones. The formula is pts = 500 Γ (your XC Γ· best XC) ^ DCF. |
| π DBF Distance Bonus Factor (optional) | An optional bonus mechanic that lets pilots who crossed the Goal as a Turnpoint recover the 100 pts they lost β provided they fly significantly more than the reference distance. The DBF value is the multiplier needed to fully recover those 100 pts. Default: 2.5 (= the pilot must fly 2.5Γ the reference distance for full recovery). The total task score is always capped at 1000 pts. |
Cup List Actions
Once a cup is created, several actions are available from the cup list. Manage team is available to contributors as well as the owner β every other action below is reserved to the owner:
- π₯ Manage team β Add or remove contributors who can edit tasks but not delete the cup. Contributors receive an email invitation if they are not yet registered.
- π Assign owner β Change which account is set as the cup's owner.
- π· Change type β Switch between Event and Season (only if no scores yet).
- π Create same cup next year β Duplicates the cup: all tasks, the cup-level dynamic airspace configuration, DCF, DBF (enabled state and factor), Privileged Pilots and whitelist/blacklist zones, the description, and all pilot registration & payment settings β see 5. Pilot Registration & Payments for details on those. Dates are shifted by +1 year. The new cup is suffixed with
-NEWso you can rename and verify it. The slug, existing scores, and the list of registered pilots are never copied β the new cup starts fresh on those.
A Task is a specific flight assignment within a cup. It defines the Start cylinder (SSS), Turnpoints (TPs), and Goal that pilots must fly. A cup can contain many tasks β one per day for an Event cup (the date is implicit from the day the task is flown), or several throughout the season for a Season cup.
Adding a Task
Four methods are available, all from the Tasks panel after selecting a cup:
- π Upload .xctsk file β Upload a task file produced by XCTrack. This is the simplest method when you already have the task defined externally.
- π· Scan QR code β Use your camera to scan a QR code generated by XCTrack. Useful when sharing tasks in person at a cup briefing.
- βοΈ Cloud code β Enter a short code (typically 4 characters, e.g.
baba) issued by the XContest cloud service when a task is shared. The task is downloaded fromtools.xcontest.organd added to the cup automatically. This is convenient when an organiser shares a task code over chat or email. - πΊ Create/Edit task β Opens the integrated Task Manager where you can build a task graphically on a map, define cylinders, and save. Once saved with the cup selected, the task is added to that cup.
TDD vs Classic Task Type
Every task is either TDD or Classic. TDD tasks use the AIRΒ³ TDD scoring system described throughout this manual (3 turnpoints in any order, optimised distance calculation). Classic tasks keep turnpoints in list order and are not scored on this TDD platform.
The rule and its enforcement differ depending on how the task is created:
- Uploading via Admin (π Upload .xctsk file, π· Scan QR code, βοΈ Cloud code) β The task is always saved. If it does not have exactly 3 turnpoints, it is saved anyway but flagged with a warning: it cannot be used for a TDD round until corrected in Task Manager.
- Task Manager, task linked to a cup β The type is an explicit choice (TDD or Classic). In TDD mode, exactly 3 turnpoints are required β the save is blocked otherwise. In Classic mode, there is no limit on the number of turnpoints.
- Task Manager, task not linked to any cup β In TDD mode, 3 turnpoints is recommended but up to 15 is tolerated (the optimisation algorithm switches internally to a slower but still exact method beyond 5 turnpoints). Above 15 turnpoints, the task automatically switches to Classic mode with a warning, since the calculation becomes too heavy.
The Task Fingerprint
Every task has a fingerprint that uniquely identifies its waypoints. The fingerprint is calculated from the positions and radii of all turnpoints and the Goal. It is shown in the task parameters in the admin list.
The fingerprint changes whenever any of the following are modified:
- Position (latitude/longitude) of a turnpoint or the Goal
- Radius of any cylinder
- Adding or removing a turnpoint
The fingerprint does not change when you modify the comp name, Land By time, slug, SSS time, or any non-geometric property.
Sharing Tasks with Pilots (the TDD1 Extension)
When you export a task that is linked to a cup β via π the .xctsk file, π· the QR code, or βοΈ the Cloud code, all from Task Manager β the file includes a small block of extra data (an "extension") identifying the cup, the task, and the task's fingerprint. Recent versions of XCTrack carry this data through into the pilot's IGC tracklog when they fly with that task loaded.
This makes submission smoother, since the tracklog itself can point back to the cup and task it belongs to. That said, it is a convenience for task detection, not the primary mechanism: the system first tries to identify the task purely from the tracklog's geometry β the takeoff position and which waypoints were actually crossed. The extension for task is only consulted as a tie-breaker, when that geometric detection finds more than one matching task and can't decide between them on its own.
The cup itself works differently: if no cup is selected yet in Track Analyser, the extension can pre-fill it automatically. It never overrides a cup the pilot has already selected.
Because the extension travels inside the task data itself, sharing a QR code or Cloud code that was originally generated from Task Manager keeps the extension intact for whoever receives it β nothing extra needs to be done to preserve it. A task built directly on the pilot's device, or loaded from a source other than Task Manager, simply won't carry an extension β submission then relies entirely on geometric detection, exactly as before.
Task Actions in Admin
From the Admin panel, the actions you can perform on an existing task are intentionally limited to safe operations:
- βοΈ Rename β Change the comp name of the task (does not affect the fingerprint).
- π Edit slug β Change the task's URL-friendly identifier.
- π Copy to another cup β Duplicate the task into a different cup. Useful for reusing tasks across cups.
- π Delete β Remove the task from the cup. Only possible if conditions are met (typically: no submitted scores, or scores already removed).
Note: changing waypoint positions, radii, Land By time, or airspace settings is not done from the Admin panel. These edits are performed in the Task Manager (see below).
Editing a Task in Task Manager
To edit the actual content of a task (geometry, timing, airspace), use the Task Manager. You must be logged in with an account that has edit rights on the cup (owner or contributor).
From Task Manager, you can edit:
- Position and radius of turnpoints and the Goal
- Add or remove turnpoints
- SSS Time and Land By Time
- Some airspace-related parameters
Saving Edits β What Happens Depending on the Score Status
The behaviour when saving an edited task depends on whether the task already has submitted scores:
Task Visibility
Tasks are publicly visible in Task Manager for as long as the cup is active. Tasks disappear from public listing 90 days after the cup's end date, but the data is preserved in the database. You can still access tasks of previous cups via the admin panel.
Dynamic Airspace per Task
If your cup has dynamic airspace configured, each task automatically inherits the cup-level airspace settings. You can also override at the task level β for example, to exclude a specific NOTAM that affects only one day. See section 4. Dynamic Airspace.
β Back to topThe Scores Management panel lets you inspect the flights submitted to your cup, force-validate flights that were rejected automatically, and remove invalid entries. To use it, select a cup and a task β the list of submitted flights for that task appears.
Why a Flight Might Be Rejected
When a pilot submits a flight, the analyser runs three automatic checks that can block the submission:
- β Land By Time β The tracklog continues after the deadline defined for the task.
- πΊ Airspace β The flight enters a controlled or restricted airspace zone (R, P, CTR, TMZ, RMZ, or any zone defined by the cup's static or dynamic airspace configuration).
- π‘ G-Record β The IGC file does not contain a valid G-record (a cryptographic signature added automatically by certified GPS loggers like the AIRΒ³). Without a valid G-record, the system cannot guarantee the tracklog is unmodified β distance points are set to 0.
When any of these checks fail, the pilot is blocked from submitting and is asked to contact the organiser. As an organiser, you can review the situation and decide to override the check.
The Four Override Buttons
After selecting a cup and a task, four override buttons appear at the top of the score list. Each opens the Track Analyser in a new tab with the cup and task already pre-selected and the corresponding check disabled. The pilot's IGC tracklog can then be re-analysed and submitted with the override applied.
| Button | What it does |
|---|---|
| β Force LandBy | Bypasses the Land By Time check only. The flight will be accepted even if it ends after the deadline. Other checks (airspace, G-record) still apply. |
| πΊ Force Airspace | Bypasses the airspace violation check only. Other checks still apply. |
| π‘ Force G-Record | Bypasses the G-record check only. Distance points are restored. Use this when the pilot has a logger that does not produce a G-record but you trust the tracklog. Other checks still apply. |
| β πΊπ‘ Force All | Bypasses all three checks at once. Use as a last resort when you have verified the flight is acceptable. |
Override Reason
Whenever you submit a flight in override mode, the system asks you to provide a reason for the override. This reason is stored together with your name and the date/time, and a coloured badge appears next to the pilot's name on the public Scores page.
Pilots and other viewers can click the badge to see who applied the override, when, and why. This ensures full transparency around overrides.
| Badge | Meaning |
|---|---|
| β Land By NOK | The flight was submitted after the deadline, override applied. |
| πΊ Airspace NOK | The flight crossed a restricted airspace, override applied. |
| π‘ G-Record NOK | The flight has no valid G-record, override applied. |
Per-Score Actions
For each submitted flight in the list, three actions are available:
| Action | Description |
|---|---|
| βοΈ Edit pilot name | Change the pilot's name as displayed on the score. Useful when the name read automatically from the IGC header is wrong or formatted differently from how the pilot is known in the cup (e.g. BERTRAND F in the IGC, but the cup shows Bertrand Fontaine). The change applies only to this score entry; future submissions by the same pilot will use whatever name is in their IGC unless edited again. |
| π Edit XContest URL | Add or modify the XContest URL associated with this flight. Pilots usually paste their XContest link when submitting, but if they forgot, the organiser can add it here. The URL becomes a clickable link π XContest next to the pilot's name on the public Scores page and in the Tracklogs viewer. |
| π Delete this score | Permanently remove the score entry from the database. The IGC tracklog stored on the server is not deleted, but the score no longer appears anywhere. Use this when a flight was submitted by mistake or needs to be re-submitted with corrections. |
Bulk Deletion
The π Delete all scores for this task button at the top of the score list removes every single score attached to the selected task. Use with extreme care β this is typically only useful when re-running an Event task from scratch after correcting the task definition.
Tracklog Notifications
If the cup setting Notify on tracklog is enabled (toggle in the Cups list), you receive an email at the organiser contact address every time a pilot submits a tracklog to your cup. This is useful to monitor activity in real time during a competition.
π¦ Bulk Import β Importing Multiple Tracklogs at Once
The Bulk Import tool lets the organiser submit a large number of IGC files in one go. This is useful at the end of an Event cup day to process all flights at once, or when migrating tracklogs from another system.
The tool is accessed via the π¦ Bulk Import button that appears next to the π Delete all scores button in Scores Management once a cup is selected. Selecting a cup is enough β by default, Bulk Import will automatically detect the right task for each imported IGC file. You can also select a specific task if you want to force every flight to be analysed against the same task.
How it works β 3 steps
- Step 1 β Select Cup
Pick the cup the flights belong to. By default, the task selector is set to π€ Auto-detect task from IGC: the system will automatically identify, for each imported IGC file, which task of the cup the pilot was flying β based on the takeoff position and the waypoints crossed by the tracklog. This is the recommended mode and works perfectly even when importing a mixed batch of flights from different tasks of the same cup.
If you prefer, you can override this default and select a specific task from the dropdown. In that case, every imported file will be forced to be analysed against the chosen task. This can be useful when you know all the IGC files belong to the same task (e.g. an Event cup day where everyone flew the same task) and you want to skip the auto-detection step. - Step 2 β Drop IGC Files
Drag and drop one or several.igcfiles onto the drop zone, or click to open a file picker. Multiple files are supported. Each file will be processed independently in step 3. - Step 3 β Run Import
Click βΆ Start Import. The system processes each tracklog one by one: it parses the IGC, extracts the pilot name and date from the IGC header, identifies the task (auto-detected or pre-selected), runs the same task and airspace analysis as the regular Track Analyser, and submits the result to the cup. A live table shows the progress, the computed track points, XC distance, and any violations for each flight.
Auto-Detection Logic
When auto-detect is enabled, the system identifies the task in two steps:
- It looks at the takeoff position of the IGC tracklog and matches it against the SSS cylinder of each task in the cup.
- If multiple tasks have a matching takeoff area, the system disambiguates by checking which waypoints and Goal are actually crossed by the tracklog.
- If takeoff position and waypoints still leave more than one candidate tied, the system checks the TDD1 extension embedded in the tracklog, if present β added automatically when the task was originally shared as a .xctsk file, QR code, or Cloud code generated from Task Manager for a cup-linked task (see 2. Tasks). A match on the task slug or fingerprint breaks the tie.
If no task can be confidently identified, the file is reported as "No matching task" in the result table and is not submitted.
What is checked for each flight
Bulk Import applies the same rules as the regular submission flow:
- Pilot name is read from the IGC header (HFPLT field), or fallback to the file name if missing.
- Flight date is read from the IGC header (HFDTE field) and is used to load the correct dynamic airspace data for the day of the flight.
- Cup calendar β flights with a date outside the cup's startβend window are rejected, just like in the regular Track Analyser.
- G-Record β flights without a valid G-record are flagged. Distance points are set to 0, just like in the regular flow.
- Land By Time, Airspace
The Dynamic Airspace system automatically downloads, every day during the cup, the up-to-date airspace data (including active NOTAMs) for the countries of your competition. Pilots submitting flights are then checked against these daily zones.
This is the recommended configuration for any cup that runs over a long period β especially Season Cups β because it ensures the airspace check always reflects the latest published restrictions.
Configuration Levels
Dynamic Airspace can be configured at two levels:
- π Cup level β The configuration applies to all tasks of the cup. This is the default and recommended setting for a regional cup where all flights happen in the same area.
- π Task level β A specific task can have its own configuration that overrides the cup-level one. Useful when one task happens in a different region (e.g. a cup that visits multiple sites).
Required Cup Settings
Before configuring Dynamic Airspace for a cup, the cup must have a Start Date and an End Date defined. The Dynamic Airspace download is scheduled to run only during this period. Cups without dates cannot use Dynamic Airspace β set the dates first.
Choosing the Format: JSON vs OpenAir
You can choose between two formats for the airspace data:
Configuration Fields
| Field | Description |
|---|---|
| Cup | The cup to configure. |
| Level | Cup or Task. If Task is selected, you must also pick the specific task. |
| Type | π· JSON (recommended) or π OpenAir. JSON is selected by default. |
| Countries | Up to three countries whose airspace data will be downloaded. Country 1 is required, Countries 2 and 3 are optional. Useful for cups near a border (e.g. Belgium + Luxembourg + France). |
| π Start flying (local) | The earliest flying time of a typical day in your cup region, in local time. The system automatically converts and stores it in UTC. The UTC equivalent is displayed in real time below the input. Default: 10h local time. |
| π End flying (local) | The latest flying time of a typical day in your cup region, in local time. Automatically converted to UTC. Default: 19h local time. |
Defining the Flying Window
The flying window defined by Start Flying and End Flying tells the system which time range to consider when filtering zones. With JSON, only zones whose activation overlaps with this window are downloaded β this keeps the airspace data focused on what matters for your cup.
For example, with the Belgian default of 10hβ19h local (8hβ17h UTC in summer), a NOTAM active only at night between 22h and 06h will not be included, because it does not overlap with the cup's flying window.
Excluding a Specific Task
If your cup uses Dynamic Airspace at the cup level but you want to opt out for a single task (for example because that task uses a static OpenAir file instead, or because the airspace data is irrelevant for that flight), you can exclude the task from the dynamic check.
This is done from the Tasks panel: when a cup has Dynamic Airspace configured and a task does not have a static OpenAir file, an πβ Exclude button appears next to the task. Click it to confirm the exclusion. The task will no longer be checked against the dynamic data.
Manual Refresh β "Fetch Now"
The β‘ Fetch Now button triggers an immediate download of the configured airspace data, without waiting for the next scheduled refresh. In normal operation you should not need to use it β the system is designed to refresh the airspace automatically at the right moment so that submitted flights are always checked against an up-to-date file. The button is mainly there for two situations: verifying that everything works right after creating a new configuration, or troubleshooting if you suspect the automatic refresh did not run as expected.
Static vs Dynamic Airspace
If a task has a static OpenAir file attached (uploaded by the organiser), the static file takes priority over any cup-level dynamic configuration for that task. Use the static option when you want a fixed airspace definition that does not change daily β typically for short Event cups where the regulatory situation is known in advance.
β Back to topThe User Management panel in the Admin panel lets you look up the people connected to your cups β their contact details, their role, and which cups they are registered to.
Start by picking a role from the first dropdown: Contributor or Pilot. A Show list button then appears β the list stays hidden until you click it, since it can be long. A second dropdown lets you narrow things down to one of your cups, with current cups listed first and past ones grouped under π¦ Previous Cups.
What you get depends on the combination:
- A role, no cup β everyone with that role who is connected to at least one of your cups. You never see users unrelated to your cups.
- Contributor + a cup β the contributors on that specific cup.
- Pilot + a cup β everyone registered to that cup, whatever their platform role. An owner or contributor who signed up to fly your cup shows up here too, which is usually what you want when you're looking at who is actually flying.
Each entry shows the person's name, email, role, and when their account was created, plus a small π badge indicating whether they have an XContest UUID on file β handy when a pilot wonders why automatic submission isn't working for them (see 7. Automatic Flight Submission). Two buttons are available per entry: βοΈ Edit user to correct their details, and πͺ Registered cups to see which of your cups they have signed up to.
These settings live on the Cup Details page, in the same edit panel as the rest of the cup's organiser settings (that panel also includes the Notify on tracklog toggle described in section 1 β it is unrelated to pilot registration). They let you require pilots to sign up before flying, optionally charge a participation fee, and manage confirmations and payment reminders.
Configuration Settings
The Description (EN/FR) and Automatically send Registration email fields are always visible, regardless of the settings below β Description is simply informational text about the cup, and Registration e-mail sending is available whether or not registration is mandatory.
Everything else here only appears once Pilot registration required is enabled β and within that, the fee-related fields only appear once Enable participation fee is also checked:
| Pilot registration required | Registration itself stays open either way β pilots can register for a cup whether this is enabled or not. What this setting actually controls is whether registering is mandatory to submit a flight β see the warning below β and it reveals the rest of the settings in this table. |
| Automatically send Registration email | Always visible, checked by default. When checked, the Registration e-mail template (see below) is sent automatically to a pilot as soon as they register β uncheck it if you'd rather send it manually. |
| Enable participation fee | Optional, and only shown once Pilot registration required is enabled. Turns on the fee amount field below, and reveals the automatic Payment request e-mail option. |
| Fee amount | Only shown once Enable participation fee is checked. Shown as part of the cup's information for pilots to see before they register. The platform does not process the payment itself β payments are tracked and confirmed manually by the organiser (see "Managing Registered Pilots" below). |
| Automatically send Payment request upon registration | Only shown once Enable participation fee is checked, and unchecked by default. When checked, the Payment request e-mail template (see below) is sent automatically to a pilot as soon as they register. |
Email Templates
Three separate e-mail templates can be customised, each available in English and French β each becomes editable under different conditions:
- Registration β always available, regardless of the other settings below. Sent to a pilot when they register (manually by the organiser, or automatically via the toggle above). Sent as typed.
- Confirmation β only available once Pilot registration required is enabled. Sent when the organiser marks a pilot's registration as confirmed. Unlike the other two, this text is appended to a system-generated e-mail that already includes a summary of the cup and links to Task Manager, Track Analyser, Score, and Overall β you don't need to repeat those in your custom text.
- Payment request β only available once Pilot registration required and Enable participation fee are both enabled. Payment instructions (e.g. bank details, amount, deadline). Sent as typed, either automatically upon registration (if enabled) or manually as a reminder (see "Managing Registered Pilots" below).
How Pilots Register
A pilot must have an account to register β if they don't, they are redirected to create one (or log in) first. The registration form pre-fills from their profile (name, email, phone, WhatsApp/Telegram availability, XContest/XCTrack username); editing these fields here also updates their platform profile. The phone number is optional, but if one is entered it must be a valid international number.
Three checkboxes set the pilot's initial automatic-submission preferences β the same Auto-submit, Incl Livetracking and Notify settings described above, editable later from the pilot list (see 6. Automatic Flight Submission for the full mechanism):
- Auto-submit β the master switch, checked by default. It requires an XContest/XCTrack username filled in below and an XContest UUID saved in the pilot's My Account: if the UUID is missing, a warning with a link to My Account appears and the Register button stays disabled until they either add it or uncheck this box.
- Incl Livetracking and Notify β both checked by default, and greyed out as soon as Auto-submit is unchecked.
They must also accept the participant disclaimer to submit. Once registered, the form is replaced by a confirmation message and an β Unregister button β the three preferences above are from then on edited directly in the pilot list below, which shows their real stored values. A pilot cannot register twice for the same cup, and appears in the list with a Confirmed status of "no". The Registration and/or Payment request e-mails are sent automatically if the corresponding toggles are enabled.
Managing Registered Pilots
Owners and contributors see a full table of registered pilots: name, email, phone (with icons if WhatsApp/Telegram are available), and XContest/XCTrack username, plus a delete button. The pilot count next to the panel title shows 12 [8] β total registered, and confirmed in brackets β whenever Pilot registration required is enabled.
Two columns are conditional: Confirmed only appears if Pilot registration required is enabled, and Payment reminder only appears if Enable participation fee is enabled β independently of each other.
- Checking Confirmed opens a choice: send the Confirmation e-mail, confirm without sending an e-mail, or cancel. If you choose to send, the dialog then shows the actual result β β³ while sending, then β or β with the error, so you know whether the e-mail really went out. Unchecking it updates silently, with no e-mail and no prompt.
- Checking Payment reminder opens the same kind of choice, and β if you choose to send β re-sends the Payment request e-mail.
- π Delete removes the pilot from the cup's list entirely and unlinks it from their profile.
- π¬ Comment β a free-text note visible only to editors, for anything you want to remember about a pilot's registration. The icon changes appearance once a comment is saved, and shows it on hover.
The XContest/XCTrack username is directly editable in this table β not just at registration β by an editor, or by the pilot themselves on their own row in the public view. A small π badge next to it shows at a glance whether that pilot has an XContest UUID on file. Clearing the username automatically switches off Auto-submit below, since a username is required for it.
Three columns control automatic submission for each pilot individually (see 6. Automatic Flight Submission for the full mechanism), all editable here by an editor or by the pilot on their own row:
- Auto-submit β the master switch: whether this pilot's flights are picked up automatically at all. Requires both an XContest/XCTrack username and an XContest UUID on the pilot's profile; the checkbox refuses to be checked otherwise. Switching it off also switches off and greys out the two columns below.
- Incl Livetracking β only editable while Auto-submit is on. Does not affect whether the pilot shows up live on the cup's Live map β that only requires the XContest/XCTrack username to be set. It decides whether the pilot's live tracking positions can be used directly to detect landing, or whether the system should wait until the flight is claimed or uploaded to their XContest account before acting.
- Notify β only editable while Auto-submit is on. Purely a notification preference: whether this pilot receives an e-mail with the result of each automatic submission. It doesn't affect whether the flight is submitted.
Pilots and other visitors who cannot edit the cup see a simplified, read-only table (name, XContest Live with its π badge, Confirmed status, and the same three automatic-submission columns shown as β /β for other pilots), with those three columns and their username editable on their own row, plus a β Remove me button to self-unregister.
Messaging Pilots (WhatsApp & Email)
You can contact registered pilots directly from the pilot list. Selection works the same way for both channels: click the π¬ icon on a pilot's row (shown only if they flagged their number as WhatsApp), or the βοΈ icon on their email cell. The icons in the column headers select or deselect everyone at once. Two buttons appear next to π¨ Print PDF as soon as at least one pilot is selected: π± WhatsApp (n) and βοΈ Email (n), where n is the number selected.
π± WhatsApp β you write one message, then open each pilot's conversation one at a time from the list in the dialog. Nothing is sent automatically: each click opens WhatsApp with the message pre-filled, and you press send yourself. The οΌ {name} button inserts a placeholder that is replaced by each pilot's name when their conversation opens, so a single message can still be personalised.
βοΈ Email β same idea, with two modes:
- One email (BCC) β a single email opens in your mail client with every selected pilot in BCC. Recipients don't see each other's addresses. The οΌ {name} placeholder isn't available in this mode, since one text goes to everyone.
- Individually β one Open button per pilot, each producing a separate email with οΌ {name} replaced by that pilot's name.
In both cases the email opens in your own mail client and is sent from your own address β these messages don't go through the platform's mail system, so they aren't recorded anywhere on the platform.
Cup Log (ποΈ Admin Log)
The ποΈ Admin Log button, next to Print PDF, opens a printable log of everything the platform has recorded for this cup β both the e-mails it sent and the automatic submissions it processed. It's the place to look when a pilot says they never received something, or asks why a flight wasn't scored.
Entries are grouped by category, always in the same order: Registrations, Payment requests, Confirmations, Livetracking submissions, Pilot result notifications, and Submission failure notifications. Within each group they are listed oldest first, with four columns:
- Date β when the event happened, in your local time.
- Trigger β for e-mails, whether it was sent automatically or manually by you. For submissions, whether the flight came from Livetracking or was published on XContest by the pilot.
- Recipient / Pilot β the e-mail recipient (partly masked for privacy) or the pilot's name for a submission.
- Status β Sent/Failed for e-mails, Success/Failed for submissions, with the error message appended when there is one.
Note that messages you send yourself through the WhatsApp or Email buttons described above never appear here: they go out from your own device and mail client, so the platform has no record of them.
Pilots can have their flights scored automatically, without ever opening Track Analyser. This runs on a background service that checks XContest's Livedata API for the pilots registered to your cup, independent of your own actions as organiser β but it's useful to understand the mechanism, since pilots will sometimes ask you why a flight was (or wasn't) submitted automatically.
What a pilot needs, on their end:
- An XContest UUID saved in their My Account (requires joining XContest's "tdd" group first).
- An XContest/XCTrack username on their registration for your cup.
- Auto-submit enabled on that registration β on by default, and the switch the service actually filters on. A pilot with it off is simply skipped.
How detection works: the service checks, once a cycle, every pilot registered across all active cups who meets those conditions. Whether it acts on live tracking positions or waits for the flight to be claimed or uploaded to XContest depends on the pilot's own Incl Livetracking preference (see 5. Pilot Registration & Payments) β on by default, meaning landing is detected directly from live positions; if off, the service waits until the flight appears on the pilot's XContest account instead, whether through XCTrack's automatic claim or a manual upload. Neither preference affects the Live map, which only requires the pilot's XContest/XCTrack username to be set.
What happens on submission: the same checks apply as any other submission path (Land By time, airspace, G-record, task detection β see sections 2 and 3), and the outcome is handled differently depending on why a flight wasn't scored:
- No matching task, or a duplicate of an already-submitted flight β silently skipped. Neither the pilot nor you are notified, since these aren't really failures worth acting on.
- Multiple tasks matched and the system couldn't tell which one, or the flight was blocked (Land By time, airspace, or G-record) β both the pilot (if their Notify preference is on) and you (if Notify on tracklog is enabled for your cup) are notified, so the pilot knows to take action.
- Accepted β the usual organiser notification is sent if Notify on tracklog is enabled for your cup.
If a pilot's flight wasn't submitted automatically, they can always submit it manually via Track Analyser.