home documents terms contact shop (coming soon!)

Season Configuration

Edit

Configure season schedules and reset behavior.

Configure season behavior in season.yaml.

Basic Settings

# season.yaml
checkIntervalMinutes: 1
timezone: "Asia/Tokyo"

schedule:
  - name: "Season 1"
    startDate: "2025-01-01"
    endDate: "2025-03-31 23:59:59"
    preset: "default"
SettingDefaultDescription
checkIntervalMinutes1How often to check for season end
timezoneRequiredIANA timezone ID (e.g., Asia/Tokyo, UTC)
scheduleRequiredList of seasons in order

Season Schedule

Each season in the schedule has these properties:

PropertyRequiredDescription
nameYesUnique season identifier
startDateYesWhen season starts (YYYY-MM-DD)
endDateYesWhen season ends (YYYY-MM-DD HH:mm:ss)
presetYesWhich season preset to use
Multiple Seasons Example
schedule:
  - name: "Season 1"
    startDate: "2025-01-01"
    endDate: "2025-03-31 23:59:59"
    preset: "default"

  - name: "Season 2"
    startDate: "2025-04-01"
    endDate: "2025-06-30 23:59:59"
    preset: "smogon"

  - name: "Season 3"
    startDate: "2025-07-01"
    endDate: "2025-09-30 23:59:59"
    preset: "vgc"

Seasons activate automatically based on the current date and time.

Season End Settings

# season.yaml
onSeasonEnd:
  resetElo: false
  softResetElo: true
  softResetFactor: 0.5
  resetWinLoss: true
  resetStreak: true
Season End Settings Explained
SettingDefaultDescription
resetElofalseHard reset all ELO to starting value
softResetElotruePartial reset towards starting ELO
softResetFactor0.5How much to reset (0.5 = halfway to start)
resetWinLosstrueClear win/loss records
resetStreaktrueClear win/loss streaks

Soft Reset Example:

  • Player has 1800 ELO, starting ELO is 1500
  • softResetFactor: 0.5
  • New ELO = 1500 + (1800 - 1500) × 0.5 = 1650

When to use hard reset:

  • Complete fresh start each season
  • New players can compete with veterans

When to use soft reset:

  • Reward skilled players while compressing the ladder
  • Less frustrating for top players

Archive Settings

# season.yaml
archive:
  enabled: true
  keepAllPlayers: false
  topPlayersCount: 100
  includeStatistics: true
SettingDescription
keepAllPlayersArchive everyone (large database)
topPlayersCountOnly archive top N players
includeStatisticsInclude detailed stats in archive

Archive Behavior

When a season ends:

  1. Final leaderboard is determined
  2. Top players are archived (if enabled)
  3. Archived stats are viewable in GUI
  4. Players can see previous season rankings
Archive vs. Keep All

keepAllPlayers: false (Default)

  • Only top 100 players archived
  • Smaller database size
  • Faster queries

keepAllPlayers: true

  • Every player’s stats archived
  • Complete historical record
  • Larger database size

Use keepAllPlayers: true only if you need complete records for all players.

Off-Season Settings

# season.yaml
offSeason:
  allowCasual: true         # Allow casual battles during off-season
  allowRankedView: true     # Allow viewing rankings during off-season
SettingDefaultDescription
allowCasualtrueAllow casual battles between seasons
allowRankedViewtrueAllow viewing leaderboard/rankings

Season Pause/Resume

Admins can pause the active season to temporarily stop ranked queues without ending the season.

/rankedadmin season pause     # Pause — stops new ranked queue entries
/rankedadmin season resume    # Resume — re-enables ranked queues

When paused:

  • Ranked queue is disabled (players cannot join)
  • Existing matches continue normally
  • Casual battles still work (if allowCasual is true)
  • Season rotation is blocked (no automatic season end)
  • Rankings remain visible (if allowRankedView is true)

Timezone Reference

Use IANA timezone identifiers:

RegionExample Timezones
AsiaAsia/Tokyo, Asia/Seoul, Asia/Shanghai
EuropeEurope/London, Europe/Paris, Europe/Berlin
AmericasAmerica/New_York, America/Los_Angeles, America/Chicago
UTCUTC

📝 Important: Always use IANA format, NOT abbreviations like JST, EST, PST.


See Also