Season Config
Season Config
Section titled “Season Config”File: config/reverie/seasons.conf
Seasons provide recurring competitive periods with leaderboard rankings. When a season ends, rewards are distributed and a new season can automatically begin.
Settings
Section titled “Settings”| Field | Type | Default | Description |
|---|---|---|---|
enabled | Boolean | false | Enable the seasonal system |
mode | String | "duration" | End trigger: "duration", "calendar", or "cron" |
duration | String | "30 days" | Duration when mode is "duration" (supports "X days", "X weeks") |
calendarEnd | String | "" | End date when mode is "calendar" |
cron | String | "" | Cron expression when mode is "cron" |
namingPattern | String | "Season {number}" | Display name pattern |
autoRoll | Boolean | true | Auto-start next season when one ends |
leaderboardSize | Int | 100 | Maximum leaderboard entries |
historyRetention | Int | 12 | Number of past seasons to keep |
Pre-End Warnings
Section titled “Pre-End Warnings”Players are notified before a season ends at these intervals (in minutes):
60, 30, 10, 5, 1End-of-Season Rewards
Section titled “End-of-Season Rewards”Configure rewards by leaderboard placement:
endRewards { 1 = ["minecraft:netherite_ingot 5", "minecraft:nether_star 1"] 2 = ["minecraft:netherite_ingot 3"] 3 = ["minecraft:diamond 10"] 10 = ["minecraft:gold_ingot 5"] # Top 10 all receive this}Season Lifecycle
Section titled “Season Lifecycle”- Server starts and loads persisted season
- If no active season and
autoRoll = true, a new season begins - During the season, contest results update leaderboard entries
- Remaining time is checked every 30 seconds
- Pre-end warnings are broadcast at configured intervals
- When the season ends: final leaderboard compiled, rewards distributed, history saved, broadcast sent
- Next season auto-starts if
autoRoll = true
Data Persistence
Section titled “Data Persistence”config/reverie/seasons/ current_season.json # Active season state season_history/ season_001.json # Historical results player_stats/ {seasonId}/ {playerId}.json # Per-player seasonal statsNext Steps
Section titled “Next Steps”- Seasons & Leaderboards — How seasons and leaderboards work
- Tournaments — Tournament results feed into seasons