> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.ggcircuit.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Running a league in ggLeap

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_6zknz9.png)
A league is a long-form competition built from seasons: you create the league and a season, register participants, generate a schedule, record results, and run playoffs. This article is for admins and organizers.

## Find the Leagues dashboard
1. Sign in to ggLeap.
2. Scroll down the left sidebar and click **Tournaments** (below Events, with a medal icon).
3. In the Tournaments dashboard, click **Leagues** in the top right corner.

![The “Leagues” button in the navigation bar on the Tournaments dashboard](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_6imsj8.png)
## League terminology
| Term | Meaning |
| ---- | ---- |
| League | Top-level container for any number of seasons. Organize by game title, sponsor, or whatever suits your operation |
| Season | Where the competition happens. Organize by time period (Fall 2027), game (Valorant), a combination (Valorant - Fall 2027), or any custom scheme |
| Participants | Register for the **season** |
| Matches | Occur within the **season** |

|| Remember: The season is where all the action happens.
## Create a league
1. On the leagues dashboard, click **Create league**.
2. Enter the **display name** (shorter, used in most places) and the **official name**.

| Creating a league only sets up the parent. Next, add a season.

![The leagues dashboard with a league and some seasons already created](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1ajaq8k.png)
## Add a season
1. Click **New season** beneath the league.
2. Enter the display name (required) and official name if needed.
3. Set the start and end dates. The start date matters most if you plan to use automatic scheduling. You can update the start date later when you generate the schedule.
4. Set the season structure (below).

![Adding a new season](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_16cm11u.png)
### Season structure
| Setting | Details |
| ---- | ---- |
| Format | Only two are supported: **Round-robin** (every team plays each other once in the regular season) and **Double round-robin** (twice). You can change the format later |
| Groups and divisions | Keeps regular season matches within groups, such as by location or skill level. Manage group members later in the registration view |
| Games per match | Records scores for multiple games in a match series, like tournaments |

### Edit season details
Admins and organizers can change the season display name, official name, and description from the season dashboard.

## Season registration
Add participants by importing them or by enabling a registration form.

![The registration section for a season](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_18ponoj.png)
### Option 1: Import participants
Go to **Registration** and click **Import CSV**.

| Column | Status |
| ---- | ---- |
| `display_name` | Required |
| `email` | Recommended |
| `account_url` | Optional; links a player or team account |
| Any other column | Added as a custom field |

### Option 2: Public registration form
1. In **Registration**, toggle **Public registration form** on.
2. Click **Form settings** to customize.

| Setting | Details |
| ---- | ---- |
| Entry type | **Individual Players** or **Teams**. Teams requires a team or team name at signup |
| Entry Limit | Caps the number of form responses |
| Registration period | Allows responses only during a set time window |
| Custom fields | Click **Add Field** in the data collection section for text fields, dropdowns, or yes/no questions. Use the trash can to remove one. Full name and email are collected by default |

||| Warning: Adding or removing custom fields does not affect data already collected. You can still view a registrant's answer to a removed field.

![Configuring registration form settings](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1b0ai4h.png)
#### Advanced registration settings
| Setting | What it does |
| ---- | ---- |
| Require Sign-in | Blocks guest registration; players must sign in to their player accounts |
| Sign-in methods (after Require Sign-in) | Email magic link (default), ggCircuit OAuth (account tied to your center), Discord OAuth, FACEIT OAuth. To limit registration to existing center accounts, select only ggCircuit OAuth |
| Email domains | Limits registration to listed domains, comma separated (example: `example.edu`, `example.org`). Empty means any email can register |

||| Warning: Restricting sign-in methods or email domains adds friction and can lower registration conversion. Use these only for non-public events or when operations require it.

### Add participants from form responses
1. Open the **Form Responses** tab to see responses, including profile links, contact info, and custom field answers.
2. Responses not yet added appear in the **Pending** tab.
3. Press **Add** to make a response an official participant, or the **X** icon to discard spam.

## Schedule matches
Once all participants are added:
1. Open the **Schedule** tab and click **Generate Schedule**.
2. Confirm or update the base format (it defaults to your season format) and the season start date.
3. To set dates and times automatically, set **Scheduling Method** to **Weekly** and select the date and time ranges for matches.
4. After generation, change the date or time of individual matches manually if needed.

||| Warning: Regenerate schedule wipes all manual date and time changes. Use it with caution.

![A season with no schedule matches yet](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_4iyfci.png)
![Generating a weekly schedule](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_p8awis.png)
## Run the season
When the schedule is final, click **Start Season** to move the season to **Active**.

||| Warning: Starting the season may notify participants of match dates and times, and notifications that have already been sent cannot be recalled. You cannot regenerate the schedule while the season is active. Confirm you are ready first.

![Scheduled matches before the season is started](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1o78qua.png)
### Unstart a season
If you started a season by mistake or need to make a quick update, admins and organizers can unstart it. Unstarting reverts the changes made when the season was started, so you can update the schedule again.

| Note: Unstarting cannot recall notifications that have already been sent. Unstart currently reverses the start completely, but this may change as the feature grows (for example, when players are notified directly), so do not rely on it as a general undo.

### Record match results
Matches can only be managed after the season is started.
1. Click the vertical three-dot icon on the match and select **Manage**. The view shows as many games as your **Games per match** setting.
2. Use the **Game Results** container to set scores and winners per game.
3. Select a winner in **Match results** and click **Finalize Match**.

![Managing a match](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_18jr8f2.png)
### View standings
Open the **Results** section for regular season standings, including streaks and longest streaks.

![Example regular season standings](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_89k8b3.png)
### Finalize the regular season
Set every match to **Final** before moving to playoffs or any later phase.
## Playoffs
1. After the regular season is finalized, open the playoffs section.
2. Select the format, the seeding algorithm (for elimination formats), and games per match.
3. Click **Start Playoffs**.
4. Click **Manage Bracket** to run the bracket. See [**Running a tournament in ggLeap, section Run the tournament**](https://helpdesk.ggcircuit.com/ggleap/a/running-a-tournament-in-ggleap#run-the-tournament), for how to run it.
5. View results by clicking **View details** within the playoffs tournament, or in the league **Results** section once playoffs finish.

![Playoffs that have not been configured yet](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_q7ud5u.png)
### Change the playoff format after starting
Click **Edit Configuration**, then **Revert to Regular Season**, and update the format.

||| Warning: Revert to Regular Season clears all playoff match results.

![The “Revert to Regular Season” tooltip](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_523if9.png)
![Active playoffs with the “Manage Bracket” button](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_r4n2ip.png)
![Example playoffs standings](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1g8wiuh.png)
## Delete a season
Admins and organizers can delete a season from the season dashboard. A confirmation dialog appears every time you delete a season.

||| Warning: Deleting a season is permanent, and it also removes the season's participants and matches. You cannot restore a deleted season yourself; you must contact support.

![Advanced Settings - Delete Season](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_at14ck.png)

![Delete Confirmation Dialog](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_hw3dk0.png)
## Leagues API
A dedicated API is available for integrating leagues with other platforms. Contact tournament@ggcircuit.com or api@tourneybit.com.

## Related articles
* [**What is the Tournament Feature in ggLeap?**](https://helpdesk.ggcircuit.com/en/article/what-is-the-tournament-feature-in-ggleap-7w69eu/)
* [**How to enable the Tournament add-on in ggLeap**](https://helpdesk.ggcircuit.com/en/article/how-to-enable-the-tournament-add-on-in-ggleap-xxbliy/)
* [**Running a tournament in ggLeap**](https://helpdesk.ggcircuit.com/en/article/running-a-tournament-in-ggleap-dcu8eo/)
* [**Managing player profiles and teams for tournaments in ggLeap**](https://helpdesk.ggcircuit.com/en/article/managing-player-profiles-for-tournaments-in-ggleap-ju9nko/)